diff --git a/apis/actions/create.go b/apis/actions/create.go index 5bfc7dfc..d33555ac 100644 --- a/apis/actions/create.go +++ b/apis/actions/create.go @@ -31,7 +31,7 @@ func CreateAction(control dto.Control) gin.HandlerFunc { var object model.ActiveRecord object, err = req.GenerateM() tools.HasError(err, "模型生成失败", 422) - object.SetCreateBy(tools.GetUserIdStr(c)) + object.SetCreateBy(tools.GetUserIdUint(c)) err = db.WithContext(c).Create(object).Error tools.HasError(err, "创建失败", 500) app.OK(c, object.GetId(), "创建成功") diff --git a/apis/actions/delete.go b/apis/actions/delete.go index b753a651..b6e739b2 100644 --- a/apis/actions/delete.go +++ b/apis/actions/delete.go @@ -32,7 +32,7 @@ func DeleteAction(control dto.Control) gin.HandlerFunc { object, err = req.GenerateM() tools.HasError(err, "模型生成失败", 500) - object.SetUpdateBy(tools.GetUserIdStr(c)) + object.SetUpdateBy(tools.GetUserIdUint(c)) //数据权限检查 p := getPermissionFromContext(c) diff --git a/apis/actions/update.go b/apis/actions/update.go index fe4dd555..d552a93a 100644 --- a/apis/actions/update.go +++ b/apis/actions/update.go @@ -31,7 +31,7 @@ func UpdateAction(control dto.Control) gin.HandlerFunc { var object model.ActiveRecord object, err = req.GenerateM() tools.HasError(err, "参数验证失败", 422) - object.SetUpdateBy(tools.GetUserIdStr(c)) + object.SetUpdateBy(tools.GetUserIdUint(c)) //数据权限检查 p := getPermissionFromContext(c) diff --git a/models/sysjob.go b/models/sysjob.go index 473a8a58..828e0707 100644 --- a/models/sysjob.go +++ b/models/sysjob.go @@ -4,6 +4,7 @@ import ( orm "go-admin/global" "go-admin/tools" "go-admin/tools/model" + "strconv" ) type SysJob struct { @@ -37,12 +38,12 @@ func (e *SysJob) GetId() interface{} { return e.JobId } -func (e *SysJob) SetCreateBy(createBy string) { - e.CreateBy = createBy +func (e *SysJob) SetCreateBy(createBy uint) { + e.CreateBy = strconv.Itoa(int(createBy)) } -func (e *SysJob) SetUpdateBy(updateBy string) { - e.UpdateBy = updateBy +func (e *SysJob) SetUpdateBy(updateBy uint) { + e.UpdateBy = strconv.Itoa(int(updateBy)) } // 创建SysJob diff --git a/tools/model/by.go b/tools/model/by.go new file mode 100644 index 00000000..48ae8065 --- /dev/null +++ b/tools/model/by.go @@ -0,0 +1,6 @@ +package model + +type ByModel struct { + CreateBy uint `gorm:"index;"` // 创建者 + UpdateBy uint `gorm:"index;"` // 更新者 +} diff --git a/tools/model/type.go b/tools/model/type.go index 2599d1e8..1e209c22 100644 --- a/tools/model/type.go +++ b/tools/model/type.go @@ -4,8 +4,8 @@ import "gorm.io/gorm/schema" type ActiveRecord interface { schema.Tabler - SetCreateBy(createBy string) - SetUpdateBy(updateBy string) + SetCreateBy(createBy uint) + SetUpdateBy(updateBy uint) Generate() ActiveRecord GetId() interface{} } diff --git a/tools/user.go b/tools/user.go index 909dcef7..d9a4c015 100644 --- a/tools/user.go +++ b/tools/user.go @@ -17,6 +17,15 @@ func ExtractClaims(c *gin.Context) jwt.MapClaims { return claims.(jwt.MapClaims) } +func GetUserIdUint(c *gin.Context) uint { + data := ExtractClaims(c) + if data["identity"] != nil { + return uint((data["identity"]).(float64)) + } + fmt.Println(GetCurrentTimeStr() + " [WARING] " + c.Request.Method + " " + c.Request.URL.Path + " GetUserId 缺少identity") + return 0 +} + func GetUserId(c *gin.Context) int { data := ExtractClaims(c) if data["identity"] != nil {