提交 91f4cb28 编写于 作者: m0_50812349's avatar m0_50812349

Merge branch 'master' of https://github.com/flipped-aurora/gin-vue-admin into gva_gormv2_dev

...@@ -56,7 +56,7 @@ mysql: ...@@ -56,7 +56,7 @@ mysql:
config: 'charset=utf8mb4&parseTime=True&loc=Local' config: 'charset=utf8mb4&parseTime=True&loc=Local'
db-name: 'qmPlus' db-name: 'qmPlus'
username: 'root' username: 'root'
password: 'root123' password: 'Aa@6447985'
max-idle-conns: 10 max-idle-conns: 10
max-open-conns: 100 max-open-conns: 100
log-mode: false log-mode: false
......
...@@ -29,7 +29,7 @@ func RunWindowsServer() { ...@@ -29,7 +29,7 @@ func RunWindowsServer() {
fmt.Printf(` fmt.Printf(`
欢迎使用 Gin-Vue-Admin 欢迎使用 Gin-Vue-Admin
当前版本:V2.3.6 当前版本:V2.3.7
默认自动化文档地址:http://127.0.0.1%s/swagger/index.html 默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
默认前端文件运行地址:http://127.0.0.1:8080 默认前端文件运行地址:http://127.0.0.1:8080
如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/docs/coffee 如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/docs/coffee
......
...@@ -29,7 +29,7 @@ func Routers() *gin.Engine { ...@@ -29,7 +29,7 @@ func Routers() *gin.Engine {
router.InitBaseRouter(PublicGroup) // 注册基础功能路由 不做鉴权 router.InitBaseRouter(PublicGroup) // 注册基础功能路由 不做鉴权
} }
PrivateGroup := Router.Group("") PrivateGroup := Router.Group("")
PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler()).Use(middleware.OperationRecord()) PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
{ {
router.InitApiRouter(PrivateGroup) // 注册功能api路由 router.InitApiRouter(PrivateGroup) // 注册功能api路由
router.InitJwtRouter(PrivateGroup) // jwt相关路由 router.InitJwtRouter(PrivateGroup) // jwt相关路由
......
...@@ -11,7 +11,6 @@ import ( ...@@ -11,7 +11,6 @@ import (
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"strconv" "strconv"
"strings"
"time" "time"
) )
...@@ -31,7 +30,7 @@ func OperationRecord() gin.HandlerFunc { ...@@ -31,7 +30,7 @@ func OperationRecord() gin.HandlerFunc {
if claims, ok := c.Get("claims"); ok { if claims, ok := c.Get("claims"); ok {
waitUse := claims.(*request.CustomClaims) waitUse := claims.(*request.CustomClaims)
userId = int(waitUse.ID) userId = int(waitUse.ID)
}else { } else {
id, err := strconv.Atoi(c.Request.Header.Get("x-user-id")) id, err := strconv.Atoi(c.Request.Header.Get("x-user-id"))
if err != nil { if err != nil {
userId = 0 userId = 0
...@@ -46,10 +45,11 @@ func OperationRecord() gin.HandlerFunc { ...@@ -46,10 +45,11 @@ func OperationRecord() gin.HandlerFunc {
Body: string(body), Body: string(body),
UserID: userId, UserID: userId,
} }
values := c.Request.Header.Values("content-type") // 存在某些未知错误 TODO
if len(values) >0 && strings.Contains(values[0], "boundary") { //values := c.Request.Header.Values("content-type")
record.Body = "file" //if len(values) >0 && strings.Contains(values[0], "boundary") {
} // record.Body = "file"
//}
writer := responseBodyWriter{ writer := responseBodyWriter{
ResponseWriter: c.Writer, ResponseWriter: c.Writer,
body: &bytes.Buffer{}, body: &bytes.Buffer{},
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitCustomerRouter(Router *gin.RouterGroup) { func InitCustomerRouter(Router *gin.RouterGroup) {
ApiRouter := Router.Group("customer") ApiRouter := Router.Group("customer").Use(middleware.OperationRecord())
{ {
ApiRouter.POST("customer", v1.CreateExaCustomer) // 创建客户 ApiRouter.POST("customer", v1.CreateExaCustomer) // 创建客户
ApiRouter.PUT("customer", v1.UpdateExaCustomer) // 更新客户 ApiRouter.PUT("customer", v1.UpdateExaCustomer) // 更新客户
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitApiRouter(Router *gin.RouterGroup) { func InitApiRouter(Router *gin.RouterGroup) {
ApiRouter := Router.Group("api") ApiRouter := Router.Group("api").Use(middleware.OperationRecord())
{ {
ApiRouter.POST("createApi", v1.CreateApi) // 创建Api ApiRouter.POST("createApi", v1.CreateApi) // 创建Api
ApiRouter.POST("deleteApi", v1.DeleteApi) // 删除Api ApiRouter.POST("deleteApi", v1.DeleteApi) // 删除Api
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitAuthorityRouter(Router *gin.RouterGroup) { func InitAuthorityRouter(Router *gin.RouterGroup) {
AuthorityRouter := Router.Group("authority") AuthorityRouter := Router.Group("authority").Use(middleware.OperationRecord())
{ {
AuthorityRouter.POST("createAuthority", v1.CreateAuthority) // 创建角色 AuthorityRouter.POST("createAuthority", v1.CreateAuthority) // 创建角色
AuthorityRouter.POST("deleteAuthority", v1.DeleteAuthority) // 删除角色 AuthorityRouter.POST("deleteAuthority", v1.DeleteAuthority) // 删除角色
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitCasbinRouter(Router *gin.RouterGroup) { func InitCasbinRouter(Router *gin.RouterGroup) {
CasbinRouter := Router.Group("casbin") CasbinRouter := Router.Group("casbin").Use(middleware.OperationRecord())
{ {
CasbinRouter.POST("updateCasbin", v1.UpdateCasbin) CasbinRouter.POST("updateCasbin", v1.UpdateCasbin)
CasbinRouter.POST("getPolicyPathByAuthorityId", v1.GetPolicyPathByAuthorityId) CasbinRouter.POST("getPolicyPathByAuthorityId", v1.GetPolicyPathByAuthorityId)
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitSysDictionaryRouter(Router *gin.RouterGroup) { func InitSysDictionaryRouter(Router *gin.RouterGroup) {
SysDictionaryRouter := Router.Group("sysDictionary") SysDictionaryRouter := Router.Group("sysDictionary").Use(middleware.OperationRecord())
{ {
SysDictionaryRouter.POST("createSysDictionary", v1.CreateSysDictionary) // 新建SysDictionary SysDictionaryRouter.POST("createSysDictionary", v1.CreateSysDictionary) // 新建SysDictionary
SysDictionaryRouter.DELETE("deleteSysDictionary", v1.DeleteSysDictionary) // 删除SysDictionary SysDictionaryRouter.DELETE("deleteSysDictionary", v1.DeleteSysDictionary) // 删除SysDictionary
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitSysDictionaryDetailRouter(Router *gin.RouterGroup) { func InitSysDictionaryDetailRouter(Router *gin.RouterGroup) {
SysDictionaryDetailRouter := Router.Group("sysDictionaryDetail") SysDictionaryDetailRouter := Router.Group("sysDictionaryDetail").Use(middleware.OperationRecord())
{ {
SysDictionaryDetailRouter.POST("createSysDictionaryDetail", v1.CreateSysDictionaryDetail) // 新建SysDictionaryDetail SysDictionaryDetailRouter.POST("createSysDictionaryDetail", v1.CreateSysDictionaryDetail) // 新建SysDictionaryDetail
SysDictionaryDetailRouter.DELETE("deleteSysDictionaryDetail", v1.DeleteSysDictionaryDetail) // 删除SysDictionaryDetail SysDictionaryDetailRouter.DELETE("deleteSysDictionaryDetail", v1.DeleteSysDictionaryDetail) // 删除SysDictionaryDetail
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitEmailRouter(Router *gin.RouterGroup) { func InitEmailRouter(Router *gin.RouterGroup) {
UserRouter := Router.Group("email") UserRouter := Router.Group("email").Use(middleware.OperationRecord())
{ {
UserRouter.POST("emailTest", v1.EmailTest) // 发送测试邮件 UserRouter.POST("emailTest", v1.EmailTest) // 发送测试邮件
} }
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitJwtRouter(Router *gin.RouterGroup) { func InitJwtRouter(Router *gin.RouterGroup) {
ApiRouter := Router.Group("jwt") ApiRouter := Router.Group("jwt").Use(middleware.OperationRecord())
{ {
ApiRouter.POST("jsonInBlacklist", v1.JsonInBlacklist) // jwt加入黑名单 ApiRouter.POST("jsonInBlacklist", v1.JsonInBlacklist) // jwt加入黑名单
} }
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitMenuRouter(Router *gin.RouterGroup) (R gin.IRoutes) { func InitMenuRouter(Router *gin.RouterGroup) (R gin.IRoutes) {
MenuRouter := Router.Group("menu") MenuRouter := Router.Group("menu").Use(middleware.OperationRecord())
{ {
MenuRouter.POST("getMenu", v1.GetMenu) // 获取菜单树 MenuRouter.POST("getMenu", v1.GetMenu) // 获取菜单树
MenuRouter.POST("getMenuList", v1.GetMenuList) // 分页获取基础menu列表 MenuRouter.POST("getMenuList", v1.GetMenuList) // 分页获取基础menu列表
......
...@@ -2,17 +2,18 @@ package router ...@@ -2,17 +2,18 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitSysOperationRecordRouter(Router *gin.RouterGroup) { func InitSysOperationRecordRouter(Router *gin.RouterGroup) {
SysOperationRecordRouter := Router.Group("sysOperationRecord") SysOperationRecordRouter := Router.Group("sysOperationRecord").Use(middleware.OperationRecord())
{ {
SysOperationRecordRouter.POST("createSysOperationRecord", v1.CreateSysOperationRecord) // 新建SysOperationRecord SysOperationRecordRouter.POST("createSysOperationRecord", v1.CreateSysOperationRecord) // 新建SysOperationRecord
SysOperationRecordRouter.DELETE("deleteSysOperationRecord", v1.DeleteSysOperationRecord) // 删除SysOperationRecord SysOperationRecordRouter.DELETE("deleteSysOperationRecord", v1.DeleteSysOperationRecord) // 删除SysOperationRecord
SysOperationRecordRouter.DELETE("deleteSysOperationRecordByIds", v1.DeleteSysOperationRecordByIds) // 批量删除SysOperationRecord SysOperationRecordRouter.DELETE("deleteSysOperationRecordByIds", v1.DeleteSysOperationRecordByIds) // 批量删除SysOperationRecord
SysOperationRecordRouter.GET("findSysOperationRecord", v1.FindSysOperationRecord) // 根据ID获取SysOperationRecord SysOperationRecordRouter.GET("findSysOperationRecord", v1.FindSysOperationRecord) // 根据ID获取SysOperationRecord
SysOperationRecordRouter.GET("getSysOperationRecordList", v1.GetSysOperationRecordList) // 获取SysOperationRecord列表 SysOperationRecordRouter.GET("getSysOperationRecordList", v1.GetSysOperationRecordList) // 获取SysOperationRecord列表
} }
} }
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitSystemRouter(Router *gin.RouterGroup) { func InitSystemRouter(Router *gin.RouterGroup) {
SystemRouter := Router.Group("system") SystemRouter := Router.Group("system").Use(middleware.OperationRecord())
{ {
SystemRouter.POST("getSystemConfig", v1.GetSystemConfig) // 获取配置文件内容 SystemRouter.POST("getSystemConfig", v1.GetSystemConfig) // 获取配置文件内容
SystemRouter.POST("setSystemConfig", v1.SetSystemConfig) // 设置配置文件内容 SystemRouter.POST("setSystemConfig", v1.SetSystemConfig) // 设置配置文件内容
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitUserRouter(Router *gin.RouterGroup) { func InitUserRouter(Router *gin.RouterGroup) {
UserRouter := Router.Group("user") UserRouter := Router.Group("user").Use(middleware.OperationRecord())
{ {
UserRouter.POST("register", v1.Register) UserRouter.POST("register", v1.Register)
UserRouter.POST("changePassword", v1.ChangePassword) // 修改密码 UserRouter.POST("changePassword", v1.ChangePassword) // 修改密码
......
...@@ -2,11 +2,12 @@ package router ...@@ -2,11 +2,12 @@ package router
import ( import (
"gin-vue-admin/api/v1" "gin-vue-admin/api/v1"
"gin-vue-admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
func InitWorkflowRouter(Router *gin.RouterGroup) { func InitWorkflowRouter(Router *gin.RouterGroup) {
WorkflowRouter := Router.Group("workflow") WorkflowRouter := Router.Group("workflow").Use(middleware.OperationRecord())
{ {
WorkflowRouter.POST("createWorkFlow", v1.CreateWorkFlow) // 创建工作流 WorkflowRouter.POST("createWorkFlow", v1.CreateWorkFlow) // 创建工作流
} }
......
...@@ -209,7 +209,6 @@ func addAutoMoveFile(data *tplData) { ...@@ -209,7 +209,6 @@ func addAutoMoveFile(data *tplData) {
} }
} }
//@author: [piexlmax](https://github.com/piexlmax) //@author: [piexlmax](https://github.com/piexlmax)
//@author: [SliverHorn](https://github.com/SliverHorn) //@author: [SliverHorn](https://github.com/SliverHorn)
//@function: CreateApi //@function: CreateApi
...@@ -259,14 +258,13 @@ func AutoCreateApi(a *model.AutoCodeStruct) (err error) { ...@@ -259,14 +258,13 @@ func AutoCreateApi(a *model.AutoCodeStruct) (err error) {
err = global.GVA_DB.Transaction(func(tx *gorm.DB) error { err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
for _, v := range apiList { for _, v := range apiList {
var api model.SysApi var api model.SysApi
if err := tx.Where("path = ? AND method = ?", v.Path, v.Method).First(&api).Error; err != nil { if errors.Is(tx.Where("path = ? AND method = ?", v.Path, v.Method).First(&api).Error, gorm.ErrRecordNotFound) {
return err if err := tx.Create(&v).Error; err != nil { // 遇到错误时回滚事务
} return err
if err := tx.Create(&v).Error; err != nil { // 遇到错误时回滚事务 }
return err
} }
} }
return nil return nil
}) })
return err return err
} }
\ No newline at end of file
...@@ -66,7 +66,7 @@ Vue.prototype.$echarts = echarts; ...@@ -66,7 +66,7 @@ Vue.prototype.$echarts = echarts;
console.log(` console.log(`
欢迎使用 Gin-Vue-Admin 欢迎使用 Gin-Vue-Admin
当前版本:V2.3.6 当前版本:V2.3.7
默认自动化文档地址:http://127.0.0.1%s/swagger/index.html 默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
默认前端文件运行地址:http://127.0.0.1:8080 默认前端文件运行地址:http://127.0.0.1:8080
如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/docs/coffee 如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/docs/coffee
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册