mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 10:12:59 +00:00
升级gf与gtoken到最新版本,更新gf生成的model为最新版本
This commit is contained in:
@@ -490,7 +490,7 @@ func (c *Auth) EditUser(r *ghttp.Request) {
|
|||||||
}
|
}
|
||||||
response.SusJson(true, r, "修改管理员成功")
|
response.SusJson(true, r, "修改管理员成功")
|
||||||
}
|
}
|
||||||
id := r.GetRequestInt("id")
|
id := r.GetUint64("id")
|
||||||
//用户用户信息
|
//用户用户信息
|
||||||
userEntity, err := user.Model.Where("id=?", id).One()
|
userEntity, err := user.Model.Where("id=?", id).One()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -511,7 +511,7 @@ func (c *Auth) EditUser(r *ghttp.Request) {
|
|||||||
response.FailJson(true, r, "获取用户角色数据失败")
|
response.FailJson(true, r, "获取用户角色数据失败")
|
||||||
}
|
}
|
||||||
if checkedRoleIds == nil {
|
if checkedRoleIds == nil {
|
||||||
checkedRoleIds = g.SliceInt{}
|
checkedRoleIds = []uint{}
|
||||||
}
|
}
|
||||||
//获取岗位信息
|
//获取岗位信息
|
||||||
posts, err := post_service.GetUsedPost()
|
posts, err := post_service.GetUsedPost()
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
"gfast/library/response"
|
"gfast/library/response"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
"github.com/gogf/gf/net/ghttp"
|
"github.com/gogf/gf/net/ghttp"
|
||||||
|
"github.com/gogf/gf/util/gconv"
|
||||||
"github.com/gogf/gf/util/gvalid"
|
"github.com/gogf/gf/util/gvalid"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -158,7 +159,7 @@ func (c *Dict) DataAdd(r *ghttp.Request) {
|
|||||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||||
}
|
}
|
||||||
userId := user_service.GetLoginID(r) //获取登陆用户id
|
userId := user_service.GetLoginID(r) //获取登陆用户id
|
||||||
_, err := dict_service.AddSaveData(req, userId)
|
_, err := dict_service.AddSaveData(req, gconv.Uint64(userId))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
response.FailJson(true, r, err.Error())
|
response.FailJson(true, r, err.Error())
|
||||||
}
|
}
|
||||||
@@ -183,7 +184,7 @@ func (c *Dict) DataEdit(r *ghttp.Request) {
|
|||||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||||
}
|
}
|
||||||
userId := user_service.GetLoginID(r)
|
userId := user_service.GetLoginID(r)
|
||||||
_, err := dict_service.EditSaveData(req, userId)
|
_, err := dict_service.EditSaveData(req, gconv.Uint64(userId))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
response.FailJson(true, r, err.Error())
|
response.FailJson(true, r, err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func (c *Dept) EditDept(r *ghttp.Request) {
|
|||||||
response.SusJson(true, r, "编辑成功")
|
response.SusJson(true, r, "编辑成功")
|
||||||
|
|
||||||
}
|
}
|
||||||
id := r.GetInt64("id")
|
id := r.GetUint64("id")
|
||||||
if id == 0 {
|
if id == 0 {
|
||||||
response.FailJson(true, r, "参数错误")
|
response.FailJson(true, r, "参数错误")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ func (c *Index) GetInfo(r *ghttp.Request) {
|
|||||||
roles, err := user_service.GetAdminRole(userId, allRoles)
|
roles, err := user_service.GetAdminRole(userId, allRoles)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
name := make([]string, len(roles))
|
name := make([]string, len(roles))
|
||||||
roleIds := make([]int, len(roles))
|
roleIds := make([]uint, len(roles))
|
||||||
for k, v := range roles {
|
for k, v := range roles {
|
||||||
name[k] = v.Name
|
name[k] = v.Name
|
||||||
roleIds[k] = v.Id
|
roleIds[k] = v.Id
|
||||||
@@ -79,7 +79,7 @@ func (c *Index) GetRouters(r *ghttp.Request) {
|
|||||||
|
|
||||||
//获取无需验证权限的用户id
|
//获取无需验证权限的用户id
|
||||||
for _, v := range service.NotCheckAuthAdminIds {
|
for _, v := range service.NotCheckAuthAdminIds {
|
||||||
if v == userId {
|
if gconv.Uint64(v) == userId {
|
||||||
isSuperAdmin = true
|
isSuperAdmin = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@@ -91,7 +91,7 @@ func (c *Index) GetRouters(r *ghttp.Request) {
|
|||||||
roles, err := user_service.GetAdminRole(userId, allRoles)
|
roles, err := user_service.GetAdminRole(userId, allRoles)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
name := make([]string, len(roles))
|
name := make([]string, len(roles))
|
||||||
roleIds := make([]int, len(roles))
|
roleIds := make([]uint, len(roles))
|
||||||
for k, v := range roles {
|
for k, v := range roles {
|
||||||
name[k] = v.Name
|
name[k] = v.Name
|
||||||
roleIds[k] = v.Id
|
roleIds[k] = v.Id
|
||||||
|
|||||||
@@ -11,22 +11,24 @@ import (
|
|||||||
|
|
||||||
// Entity is the golang structure for table auth_rule.
|
// Entity is the golang structure for table auth_rule.
|
||||||
type Entity struct {
|
type Entity struct {
|
||||||
Id uint `orm:"id,primary" json:"id"` //
|
Id uint `orm:"id,primary" json:"id"` //
|
||||||
Pid uint `orm:"pid" json:"pid"` // 父ID
|
Pid uint `orm:"pid" json:"pid"` // 父ID
|
||||||
Name string `orm:"name,unique" json:"name"` // 规则名称
|
Name string `orm:"name,unique" json:"name"` // 规则名称
|
||||||
Title string `orm:"title" json:"title"` // 规则名称
|
Title string `orm:"title" json:"title"` // 规则名称
|
||||||
Icon string `orm:"icon" json:"icon"` // 图标
|
Icon string `orm:"icon" json:"icon"` // 图标
|
||||||
Condition string `orm:"condition" json:"condition"` // 条件
|
Condition string `orm:"condition" json:"condition"` // 条件
|
||||||
Remark string `orm:"remark" json:"remark"` // 备注
|
Remark string `orm:"remark" json:"remark"` // 备注
|
||||||
MenuType uint `orm:"menu_type" json:"menu_type"` // 类型 0目录 1菜单 2按钮
|
MenuType uint `orm:"menu_type" json:"menu_type"` // 类型 0目录 1菜单 2按钮
|
||||||
Createtime uint `orm:"createtime" json:"createtime"` // 创建时间
|
Createtime uint `orm:"createtime" json:"createtime"` // 创建时间
|
||||||
Updatetime uint `orm:"updatetime" json:"updatetime"` // 更新时间
|
Updatetime uint `orm:"updatetime" json:"updatetime"` // 更新时间
|
||||||
Weigh int `orm:"weigh" json:"weigh"` // 权重
|
Weigh int `orm:"weigh" json:"weigh"` // 权重
|
||||||
Status uint `orm:"status" json:"status"` // 状态
|
Status uint `orm:"status" json:"status"` // 状态
|
||||||
AlwaysShow uint `orm:"always_show" json:"alwaysShow"` //显示状态 0隐藏 1显示
|
AlwaysShow uint `orm:"always_show" json:"always_show"` // 显示状态
|
||||||
Path string `orm:"path" json:"path"` //路由地址
|
Path string `orm:"path" json:"path"` // 路由地址
|
||||||
Component string `orm:"component" json:"component"` //组件路径
|
Component string `orm:"component" json:"component"` // 组件路径
|
||||||
IsFrame uint `orm:"is_frame" json:"isFrame"` //是否外链 1是 0否
|
IsFrame uint `orm:"is_frame" json:"is_frame"` // 是否外链 1是 0否
|
||||||
|
ModuleType string `orm:"module_type" json:"module_type"` // 所属模块
|
||||||
|
ModelId uint `orm:"model_id" json:"model_id"` // 模型ID
|
||||||
}
|
}
|
||||||
|
|
||||||
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
||||||
@@ -40,6 +42,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table auth_rule operations.
|
// arModel is a active record design model for table auth_rule operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,46 @@ var (
|
|||||||
Table = "auth_rule"
|
Table = "auth_rule"
|
||||||
// Model is the model object of auth_rule.
|
// Model is the model object of auth_rule.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table auth_rule.
|
||||||
|
Columns = struct {
|
||||||
|
Id string //
|
||||||
|
Pid string // 父ID
|
||||||
|
Name string // 规则名称
|
||||||
|
Title string // 规则名称
|
||||||
|
Icon string // 图标
|
||||||
|
Condition string // 条件
|
||||||
|
Remark string // 备注
|
||||||
|
MenuType string // 类型 0目录 1菜单 2按钮
|
||||||
|
Createtime string // 创建时间
|
||||||
|
Updatetime string // 更新时间
|
||||||
|
Weigh string // 权重
|
||||||
|
Status string // 状态
|
||||||
|
AlwaysShow string // 显示状态
|
||||||
|
Path string // 路由地址
|
||||||
|
Component string // 组件路径
|
||||||
|
IsFrame string // 是否外链 1是 0否
|
||||||
|
ModuleType string // 所属模块
|
||||||
|
ModelId string // 模型ID
|
||||||
|
}{
|
||||||
|
Id: "id",
|
||||||
|
Pid: "pid",
|
||||||
|
Name: "name",
|
||||||
|
Title: "title",
|
||||||
|
Icon: "icon",
|
||||||
|
Condition: "condition",
|
||||||
|
Remark: "remark",
|
||||||
|
MenuType: "menu_type",
|
||||||
|
Createtime: "createtime",
|
||||||
|
Updatetime: "updatetime",
|
||||||
|
Weigh: "weigh",
|
||||||
|
Status: "status",
|
||||||
|
AlwaysShow: "always_show",
|
||||||
|
Path: "path",
|
||||||
|
Component: "component",
|
||||||
|
IsFrame: "is_frame",
|
||||||
|
ModuleType: "module_type",
|
||||||
|
ModelId: "model_id",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +82,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +99,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +146,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +229,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +271,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +286,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +321,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +349,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +360,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table casbin_rule operations.
|
// arModel is a active record design model for table casbin_rule operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,24 @@ var (
|
|||||||
Table = "casbin_rule"
|
Table = "casbin_rule"
|
||||||
// Model is the model object of casbin_rule.
|
// Model is the model object of casbin_rule.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table casbin_rule.
|
||||||
|
Columns = struct {
|
||||||
|
Ptype string //
|
||||||
|
V0 string //
|
||||||
|
V1 string //
|
||||||
|
V2 string //
|
||||||
|
V3 string //
|
||||||
|
V4 string //
|
||||||
|
V5 string //
|
||||||
|
}{
|
||||||
|
Ptype: "ptype",
|
||||||
|
V0: "v0",
|
||||||
|
V1: "v1",
|
||||||
|
V2: "v2",
|
||||||
|
V3: "v3",
|
||||||
|
V4: "v4",
|
||||||
|
V5: "v5",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +60,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +77,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +124,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +207,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +249,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +264,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +299,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +327,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +338,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -13,12 +13,12 @@ import (
|
|||||||
type Entity struct {
|
type Entity struct {
|
||||||
Id uint64 `orm:"id,primary" json:"id"` // 分类id
|
Id uint64 `orm:"id,primary" json:"id"` // 分类id
|
||||||
ParentId int64 `orm:"parent_id" json:"parent_id"` // 分类父id
|
ParentId int64 `orm:"parent_id" json:"parent_id"` // 分类父id
|
||||||
ModelId uint `orm:"model_id" json:"model_id"` // 模型id
|
ModelId uint `orm:"model_id" json:"model_id"` // 模型ID
|
||||||
Status uint `orm:"status" json:"status"` // 状态,1:发布,0:不发布
|
Status uint `orm:"status" json:"status"` // 状态,1:发布,0:不发布
|
||||||
DeleteTime uint `orm:"delete_time" json:"delete_time"` // 删除时间
|
DeleteTime uint `orm:"delete_time" json:"delete_time"` // 删除时间
|
||||||
ListOrder float64 `orm:"list_order" json:"list_order"` // 排序
|
ListOrder float64 `orm:"list_order" json:"list_order"` // 排序
|
||||||
Name string `orm:"name" json:"name"` // 分类名称
|
Name string `orm:"name" json:"name"` // 分类名称
|
||||||
Alias string `orm:"alias" json:"alias"` // 分类别名
|
Alias string `orm:"alias" json:"alias"` // 栏目别名
|
||||||
Description string `orm:"description" json:"description"` // 分类描述
|
Description string `orm:"description" json:"description"` // 分类描述
|
||||||
SeoTitle string `orm:"seo_title" json:"seo_title"` //
|
SeoTitle string `orm:"seo_title" json:"seo_title"` //
|
||||||
SeoKeywords string `orm:"seo_keywords" json:"seo_keywords"` //
|
SeoKeywords string `orm:"seo_keywords" json:"seo_keywords"` //
|
||||||
@@ -42,6 +42,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table cms_category operations.
|
// arModel is a active record design model for table cms_category operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,46 @@ var (
|
|||||||
Table = "cms_category"
|
Table = "cms_category"
|
||||||
// Model is the model object of cms_category.
|
// Model is the model object of cms_category.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table cms_category.
|
||||||
|
Columns = struct {
|
||||||
|
Id string // 分类id
|
||||||
|
ParentId string // 分类父id
|
||||||
|
ModelId string // 模型ID
|
||||||
|
Status string // 状态,1:发布,0:不发布
|
||||||
|
DeleteTime string // 删除时间
|
||||||
|
ListOrder string // 排序
|
||||||
|
Name string // 分类名称
|
||||||
|
Alias string // 栏目别名
|
||||||
|
Description string // 分类描述
|
||||||
|
SeoTitle string //
|
||||||
|
SeoKeywords string //
|
||||||
|
SeoDescription string //
|
||||||
|
ListTpl string // 分类列表模板
|
||||||
|
OneTpl string // 分类文章页模板
|
||||||
|
More string // 扩展属性
|
||||||
|
CateType string // 分类类型
|
||||||
|
CateAddress string // 跳转地址
|
||||||
|
CateContent string // 单页内容
|
||||||
|
}{
|
||||||
|
Id: "id",
|
||||||
|
ParentId: "parent_id",
|
||||||
|
ModelId: "model_id",
|
||||||
|
Status: "status",
|
||||||
|
DeleteTime: "delete_time",
|
||||||
|
ListOrder: "list_order",
|
||||||
|
Name: "name",
|
||||||
|
Alias: "alias",
|
||||||
|
Description: "description",
|
||||||
|
SeoTitle: "seo_title",
|
||||||
|
SeoKeywords: "seo_keywords",
|
||||||
|
SeoDescription: "seo_description",
|
||||||
|
ListTpl: "list_tpl",
|
||||||
|
OneTpl: "one_tpl",
|
||||||
|
More: "more",
|
||||||
|
CateType: "cate_type",
|
||||||
|
CateAddress: "cate_address",
|
||||||
|
CateContent: "cate_content",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +82,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +99,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +146,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +229,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +271,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +286,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +321,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +349,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +360,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,6 +27,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table cms_category_news operations.
|
// arModel is a active record design model for table cms_category_news operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,16 @@ var (
|
|||||||
Table = "cms_category_news"
|
Table = "cms_category_news"
|
||||||
// Model is the model object of cms_category_news.
|
// Model is the model object of cms_category_news.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table cms_category_news.
|
||||||
|
Columns = struct {
|
||||||
|
Id string //
|
||||||
|
NewsId string // 文章id
|
||||||
|
CategoryId string // 分类id
|
||||||
|
}{
|
||||||
|
Id: "id",
|
||||||
|
NewsId: "news_id",
|
||||||
|
CategoryId: "category_id",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +52,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +69,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +116,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +199,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +241,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +256,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +291,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +319,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +330,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ type ReqEditParams struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//添加文章操作
|
//添加文章操作
|
||||||
func AddNews(req *ReqAddParams, cateIds []int, userId int, tx *gdb.TX) (insId int64, err error) {
|
func AddNews(req *ReqAddParams, cateIds []int, userId uint64, tx *gdb.TX) (insId int64, err error) {
|
||||||
if len(cateIds) == 0 {
|
if len(cateIds) == 0 {
|
||||||
err = gerror.New("栏目不能为空")
|
err = gerror.New("栏目不能为空")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ type AddReq struct {
|
|||||||
ModelTitle string `p:"modelTitle" v:"required#模型名称不能为空"`
|
ModelTitle string `p:"modelTitle" v:"required#模型名称不能为空"`
|
||||||
ModelStatus uint `p:"modelStatus" v:"required#状态不能为空"`
|
ModelStatus uint `p:"modelStatus" v:"required#状态不能为空"`
|
||||||
ModelEngine string `p:"modelEngine" `
|
ModelEngine string `p:"modelEngine" `
|
||||||
CreateBy int //添加人
|
CreateBy uint64 //添加人
|
||||||
}
|
}
|
||||||
|
|
||||||
// EditReq 用于存储修改请求参数
|
// EditReq 用于存储修改请求参数
|
||||||
@@ -32,7 +32,7 @@ type EditReq struct {
|
|||||||
ModelTitle string `p:"modelTitle" `
|
ModelTitle string `p:"modelTitle" `
|
||||||
ModelStatus int `p:"modelStatus" v:"required#状态不能为空"`
|
ModelStatus int `p:"modelStatus" v:"required#状态不能为空"`
|
||||||
ModelEngine string `p:"modelEngine" `
|
ModelEngine string `p:"modelEngine" `
|
||||||
UpdateBy int
|
UpdateBy uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
//模型字段属性修改请求参数
|
//模型字段属性修改请求参数
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ type SelectPageReq struct {
|
|||||||
//修改状态参数
|
//修改状态参数
|
||||||
type StatusSetReq struct {
|
type StatusSetReq struct {
|
||||||
RoleId uint `p:"roleId" v:"required#角色ID不能为空"`
|
RoleId uint `p:"roleId" v:"required#角色ID不能为空"`
|
||||||
Status int `p:"status" v:"required#状态不能为空"`
|
Status uint `p:"status" v:"required#状态不能为空"`
|
||||||
}
|
}
|
||||||
|
|
||||||
//角色数据授权参数
|
//角色数据授权参数
|
||||||
@@ -90,7 +90,7 @@ func GetList() (list []*Entity, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
//从数据库获取
|
//从数据库获取
|
||||||
list, err = Model.OrderBy("list_order asc,id asc").All()
|
list, err = Model.Order("list_order asc,id asc").All()
|
||||||
//缓存数据
|
//缓存数据
|
||||||
cache.Set(cache_service.AdminAuthRole, list, 0, cache_service.AdminAuthTag)
|
cache.Set(cache_service.AdminAuthRole, list, 0, cache_service.AdminAuthTag)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -9,21 +9,18 @@ import (
|
|||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Entity is the golang structure for table _role.
|
// Entity is the golang structure for table role.
|
||||||
type Entity struct {
|
type Entity struct {
|
||||||
Id int `orm:"id,primary" json:"id"` //
|
Id uint `orm:"id,primary" json:"id"` //
|
||||||
Status int `orm:"status" json:"status"` // 状态;0:禁用;1:正常
|
Status uint `orm:"status" json:"status"` // 状态;0:禁用;1:正常
|
||||||
CreateTime int `orm:"create_time" json:"create_time"` // 创建时间
|
CreateTime uint `orm:"create_time" json:"create_time"` // 创建时间
|
||||||
UpdateTime int `orm:"update_time" json:"update_time"` // 更新时间
|
UpdateTime uint `orm:"update_time" json:"update_time"` // 更新时间
|
||||||
ListOrder float64 `orm:"list_order" json:"list_order"` // 排序
|
ListOrder float64 `orm:"list_order" json:"list_order"` // 排序
|
||||||
Name string `orm:"name" json:"name"` // 角色名称
|
Name string `orm:"name" json:"name"` // 角色名称
|
||||||
Remark string `orm:"remark" json:"remark"` // 备注
|
Remark string `orm:"remark" json:"remark"` // 备注
|
||||||
DataScope int `orm:"data_scope" json:"data_scope"` // 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
|
DataScope uint `orm:"data_scope" json:"data_scope"` // 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Role is alias of Entity, which some developers say they just want.
|
|
||||||
type Role = Entity
|
|
||||||
|
|
||||||
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
||||||
// the data and where attributes for empty values.
|
// the data and where attributes for empty values.
|
||||||
func (r *Entity) OmitEmpty() *arModel {
|
func (r *Entity) OmitEmpty() *arModel {
|
||||||
@@ -35,6 +32,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,21 +8,107 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table _role operations.
|
// arModel is a active record design model for table role operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// Table is the table name of _role.
|
// Table is the table name of role.
|
||||||
Table = "role"
|
Table = "role"
|
||||||
// Model is the model object of _role.
|
// Model is the model object of role.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table role.
|
||||||
|
Columns = struct {
|
||||||
|
Id string //
|
||||||
|
Status string // 状态;0:禁用;1:正常
|
||||||
|
CreateTime string // 创建时间
|
||||||
|
UpdateTime string // 更新时间
|
||||||
|
ListOrder string // 排序
|
||||||
|
Name string // 角色名称
|
||||||
|
Remark string // 备注
|
||||||
|
DataScope string // 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
|
||||||
|
}{
|
||||||
|
Id: "id",
|
||||||
|
Status: "status",
|
||||||
|
CreateTime: "create_time",
|
||||||
|
UpdateTime: "update_time",
|
||||||
|
ListOrder: "list_order",
|
||||||
|
Name: "name",
|
||||||
|
Remark: "remark",
|
||||||
|
DataScope: "data_scope",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
|
// See Model.FindOne.
|
||||||
|
func FindOne(where ...interface{}) (*Entity, error) {
|
||||||
|
return Model.FindOne(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindAll is a convenience method for Model.FindAll.
|
||||||
|
// See Model.FindAll.
|
||||||
|
func FindAll(where ...interface{}) ([]*Entity, error) {
|
||||||
|
return Model.FindAll(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindValue is a convenience method for Model.FindValue.
|
||||||
|
// See Model.FindValue.
|
||||||
|
func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
||||||
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
|
// See Model.FindCount.
|
||||||
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
|
return Model.FindCount(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert is a convenience method for Model.Insert.
|
||||||
|
func Insert(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Insert(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace is a convenience method for Model.Replace.
|
||||||
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Replace(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save is a convenience method for Model.Save.
|
||||||
|
func Save(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Save(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is a convenience method for Model.Update.
|
||||||
|
func Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Update(dataAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete is a convenience method for Model.Delete.
|
||||||
|
func Delete(where ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Delete(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// As sets an alias name for current table.
|
||||||
|
func (m *arModel) As(as string) *arModel {
|
||||||
|
return &arModel{m.M.As(as)}
|
||||||
|
}
|
||||||
|
|
||||||
// TX sets the transaction for current operation.
|
// TX sets the transaction for current operation.
|
||||||
func (m *arModel) TX(tx *gdb.TX) *arModel {
|
func (m *arModel) TX(tx *gdb.TX) *arModel {
|
||||||
return &arModel{m.M.TX(tx)}
|
return &arModel{m.M.TX(tx)}
|
||||||
@@ -40,18 +126,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -105,14 +203,14 @@ func (m *arModel) Or(where interface{}, args ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Or(where, args...)}
|
return &arModel{m.M.Or(where, args...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupBy sets the "GROUP BY" statement for the model.
|
// Group sets the "GROUP BY" statement for the model.
|
||||||
func (m *arModel) GroupBy(groupBy string) *arModel {
|
func (m *arModel) Group(groupBy string) *arModel {
|
||||||
return &arModel{m.M.GroupBy(groupBy)}
|
return &arModel{m.M.Group(groupBy)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OrderBy sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) OrderBy(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.OrderBy(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -129,11 +227,11 @@ func (m *arModel) Offset(offset int) *arModel {
|
|||||||
return &arModel{m.M.Offset(offset)}
|
return &arModel{m.M.Offset(offset)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ForPage sets the paging number for the model.
|
// Page sets the paging number for the model.
|
||||||
// The parameter <page> is started from 1 for paging.
|
// The parameter <page> is started from 1 for paging.
|
||||||
// Note that, it differs that the Limit function start from 0 for "LIMIT" statement.
|
// Note that, it differs that the Limit function start from 0 for "LIMIT" statement.
|
||||||
func (m *arModel) ForPage(page, limit int) *arModel {
|
func (m *arModel) Page(page, limit int) *arModel {
|
||||||
return &arModel{m.M.ForPage(page, limit)}
|
return &arModel{m.M.Page(page, limit)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Batch sets the batch operation number for the model.
|
// Batch sets the batch operation number for the model.
|
||||||
@@ -153,8 +251,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -168,43 +266,14 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
func (m *arModel) Insert() (result sql.Result, err error) {
|
|
||||||
return m.M.Insert()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
func (m *arModel) Replace() (result sql.Result, err error) {
|
|
||||||
return m.M.Replace()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
func (m *arModel) Save() (result sql.Result, err error) {
|
|
||||||
return m.M.Save()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
func (m *arModel) Update() (result sql.Result, err error) {
|
|
||||||
return m.M.Update()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
func (m *arModel) Delete() (result sql.Result, err error) {
|
|
||||||
return m.M.Delete()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
func (m *arModel) Count() (int, error) {
|
|
||||||
return m.M.Count()
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
func (m *arModel) All() ([]*Entity, error) {
|
//
|
||||||
all, err := m.M.All()
|
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
||||||
|
// see Model.Where.
|
||||||
|
func (m *arModel) All(where ...interface{}) ([]*Entity, error) {
|
||||||
|
all, err := m.M.All(where...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -217,8 +286,11 @@ func (m *arModel) All() ([]*Entity, error) {
|
|||||||
|
|
||||||
// One retrieves one record from table and returns the result as *Entity.
|
// One retrieves one record from table and returns the result as *Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
func (m *arModel) One() (*Entity, error) {
|
//
|
||||||
one, err := m.M.One()
|
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
||||||
|
// see Model.Where.
|
||||||
|
func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
||||||
|
one, err := m.M.One(where...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -229,10 +301,32 @@ func (m *arModel) One() (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) Value() (gdb.Value, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
return m.M.Value()
|
one, err := m.M.FindOne(where...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var entity *Entity
|
||||||
|
if err = one.Struct(&entity); err != nil && err != sql.ErrNoRows {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return entity, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindAll retrieves and returns Result by by Model.WherePri and Model.All.
|
||||||
|
// Also see Model.WherePri and Model.All.
|
||||||
|
func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
||||||
|
all, err := m.M.FindAll(where...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var entities []*Entity
|
||||||
|
if err = all.Structs(&entities); err != nil && err != sql.ErrNoRows {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
@@ -247,14 +341,17 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Page sets the paging number for the model.
|
// LockUpdate sets the lock for update for current operation.
|
||||||
// The parameter <page> is started from 1 for paging.
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
// Note that, it differs that the Limit function start from 0 for "LIMIT" statement.
|
return &arModel{m.M.LockUpdate()}
|
||||||
func (m *arModel) Page(page, limit int) *arModel {
|
|
||||||
return &arModel{m.M.Page(page, limit)}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// LockShared sets the lock in share mode for current operation.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) LockShared() *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ type SelectPageReq struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//保存参数
|
//保存参数
|
||||||
func AddSave(req *AddReq, userId int) (id int64, err error) {
|
func AddSave(req *AddReq, userId uint64) (id int64, err error) {
|
||||||
var entity Entity
|
var entity Entity
|
||||||
entity.ConfigName = req.ConfigName
|
entity.ConfigName = req.ConfigName
|
||||||
entity.ConfigKey = req.ConfigKey
|
entity.ConfigKey = req.ConfigKey
|
||||||
@@ -62,7 +62,7 @@ func AddSave(req *AddReq, userId int) (id int64, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//修改保存
|
//修改保存
|
||||||
func EditSave(req *EditReq, userId int) (int64, error) {
|
func EditSave(req *EditReq, userId uint64) (int64, error) {
|
||||||
entity, err := GetParamsById(gconv.Int(req.ConfigId))
|
entity, err := GetParamsById(gconv.Int(req.ConfigId))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
type Entity struct {
|
type Entity struct {
|
||||||
ConfigId uint `orm:"config_id,primary" json:"config_id"` // 参数主键
|
ConfigId uint `orm:"config_id,primary" json:"config_id"` // 参数主键
|
||||||
ConfigName string `orm:"config_name" json:"config_name"` // 参数名称
|
ConfigName string `orm:"config_name" json:"config_name"` // 参数名称
|
||||||
ConfigKey string `orm:"config_key" json:"config_key"` // 参数键名
|
ConfigKey string `orm:"config_key,unique" json:"config_key"` // 参数键名
|
||||||
ConfigValue string `orm:"config_value" json:"config_value"` // 参数键值
|
ConfigValue string `orm:"config_value" json:"config_value"` // 参数键值
|
||||||
ConfigType int `orm:"config_type" json:"config_type"` // 系统内置(Y是 N否)
|
ConfigType int `orm:"config_type" json:"config_type"` // 系统内置(Y是 N否)
|
||||||
CreateBy uint `orm:"create_by" json:"create_by"` // 创建者
|
CreateBy uint `orm:"create_by" json:"create_by"` // 创建者
|
||||||
@@ -34,6 +34,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table sys_config operations.
|
// arModel is a active record design model for table sys_config operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,30 @@ var (
|
|||||||
Table = "sys_config"
|
Table = "sys_config"
|
||||||
// Model is the model object of sys_config.
|
// Model is the model object of sys_config.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table sys_config.
|
||||||
|
Columns = struct {
|
||||||
|
ConfigId string // 参数主键
|
||||||
|
ConfigName string // 参数名称
|
||||||
|
ConfigKey string // 参数键名
|
||||||
|
ConfigValue string // 参数键值
|
||||||
|
ConfigType string // 系统内置(Y是 N否)
|
||||||
|
CreateBy string // 创建者
|
||||||
|
CreateTime string // 创建时间
|
||||||
|
UpdateBy string // 更新者
|
||||||
|
UpdateTime string // 更新时间
|
||||||
|
Remark string // 备注
|
||||||
|
}{
|
||||||
|
ConfigId: "config_id",
|
||||||
|
ConfigName: "config_name",
|
||||||
|
ConfigKey: "config_key",
|
||||||
|
ConfigValue: "config_value",
|
||||||
|
ConfigType: "config_type",
|
||||||
|
CreateBy: "create_by",
|
||||||
|
CreateTime: "create_time",
|
||||||
|
UpdateBy: "update_by",
|
||||||
|
UpdateTime: "update_time",
|
||||||
|
Remark: "remark",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +66,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +83,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +130,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +213,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +255,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +270,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +305,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +333,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +344,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ type Dept struct {
|
|||||||
Remark string `json:"remark"`
|
Remark string `json:"remark"`
|
||||||
DataScope interface{} `json:"dataScope"`
|
DataScope interface{} `json:"dataScope"`
|
||||||
Params map[string]interface{} `json:"params"`
|
Params map[string]interface{} `json:"params"`
|
||||||
DeptID int64 `json:"deptId" orm:"dept_id"`
|
DeptID uint64 `json:"deptId" orm:"dept_id"`
|
||||||
ParentID int64 `json:"parentId" orm:"parent_id"`
|
ParentID int64 `json:"parentId" orm:"parent_id"`
|
||||||
Ancestors string `json:"ancestors" orm:"ancestors"`
|
Ancestors string `json:"ancestors" orm:"ancestors"`
|
||||||
DeptName string `json:"deptName" orm:"dept_name"`
|
DeptName string `json:"deptName" orm:"dept_name"`
|
||||||
@@ -120,7 +120,7 @@ func DelDept(id int64) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//根据部门id获取部门信息
|
//根据部门id获取部门信息
|
||||||
func GetDeptById(id int64) (*Dept, error) {
|
func GetDeptById(id uint64) (*Dept, error) {
|
||||||
|
|
||||||
dept := (*Dept)(nil)
|
dept := (*Dept)(nil)
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type SelectDataPageReq struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//添加字典数据操作
|
//添加字典数据操作
|
||||||
func AddSaveData(req *AddDataReq, userId int) (int64, error) {
|
func AddSaveData(req *AddDataReq, userId uint64) (int64, error) {
|
||||||
var entity Entity
|
var entity Entity
|
||||||
entity.DictType = req.DictType
|
entity.DictType = req.DictType
|
||||||
entity.Status = req.Status
|
entity.Status = req.Status
|
||||||
@@ -80,7 +80,7 @@ func GetById(dictCode int) (*Entity, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//修改字典数据操作
|
//修改字典数据操作
|
||||||
func EditSaveData(req *EditDataReq, userId int) (int64, error) {
|
func EditSaveData(req *EditDataReq, userId uint64) (int64, error) {
|
||||||
entity, err := GetById(req.DictCode)
|
entity, err := GetById(req.DictCode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ type Entity struct {
|
|||||||
ListClass string `orm:"list_class" json:"list_class"` // 表格回显样式
|
ListClass string `orm:"list_class" json:"list_class"` // 表格回显样式
|
||||||
IsDefault int `orm:"is_default" json:"is_default"` // 是否默认(1是 0否)
|
IsDefault int `orm:"is_default" json:"is_default"` // 是否默认(1是 0否)
|
||||||
Status int `orm:"status" json:"status"` // 状态(0正常 1停用)
|
Status int `orm:"status" json:"status"` // 状态(0正常 1停用)
|
||||||
CreateBy int `orm:"create_by" json:"create_by"` // 创建者
|
CreateBy uint64 `orm:"create_by" json:"create_by"` // 创建者
|
||||||
CreateTime uint64 `orm:"create_time" json:"create_time"` // 创建时间
|
CreateTime uint64 `orm:"create_time" json:"create_time"` // 创建时间
|
||||||
UpdateBy int `orm:"update_by" json:"update_by"` // 更新者
|
UpdateBy uint64 `orm:"update_by" json:"update_by"` // 更新者
|
||||||
UpdateTime uint64 `orm:"update_time" json:"update_time"` // 更新时间
|
UpdateTime uint64 `orm:"update_time" json:"update_time"` // 更新时间
|
||||||
Remark string `orm:"remark" json:"remark"` // 备注
|
Remark string `orm:"remark" json:"remark"` // 备注
|
||||||
}
|
}
|
||||||
@@ -38,6 +38,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table sys_dict_data operations.
|
// arModel is a active record design model for table sys_dict_data operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,38 @@ var (
|
|||||||
Table = "sys_dict_data"
|
Table = "sys_dict_data"
|
||||||
// Model is the model object of sys_dict_data.
|
// Model is the model object of sys_dict_data.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table sys_dict_data.
|
||||||
|
Columns = struct {
|
||||||
|
DictCode string // 字典编码
|
||||||
|
DictSort string // 字典排序
|
||||||
|
DictLabel string // 字典标签
|
||||||
|
DictValue string // 字典键值
|
||||||
|
DictType string // 字典类型
|
||||||
|
CssClass string // 样式属性(其他样式扩展)
|
||||||
|
ListClass string // 表格回显样式
|
||||||
|
IsDefault string // 是否默认(1是 0否)
|
||||||
|
Status string // 状态(0正常 1停用)
|
||||||
|
CreateBy string // 创建者
|
||||||
|
CreateTime string // 创建时间
|
||||||
|
UpdateBy string // 更新者
|
||||||
|
UpdateTime string // 更新时间
|
||||||
|
Remark string // 备注
|
||||||
|
}{
|
||||||
|
DictCode: "dict_code",
|
||||||
|
DictSort: "dict_sort",
|
||||||
|
DictLabel: "dict_label",
|
||||||
|
DictValue: "dict_value",
|
||||||
|
DictType: "dict_type",
|
||||||
|
CssClass: "css_class",
|
||||||
|
ListClass: "list_class",
|
||||||
|
IsDefault: "is_default",
|
||||||
|
Status: "status",
|
||||||
|
CreateBy: "create_by",
|
||||||
|
CreateTime: "create_time",
|
||||||
|
UpdateBy: "update_by",
|
||||||
|
UpdateTime: "update_time",
|
||||||
|
Remark: "remark",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +74,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +91,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +138,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +221,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +263,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +278,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +313,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +341,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +352,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ type SelectPageReq struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//添加数据
|
//添加数据
|
||||||
func AddSave(req *AddReq, userId int) (int64, error) {
|
func AddSave(req *AddReq, userId uint64) (int64, error) {
|
||||||
var entity Entity
|
var entity Entity
|
||||||
entity.Status = req.Status
|
entity.Status = req.Status
|
||||||
entity.DictType = req.DictType
|
entity.DictType = req.DictType
|
||||||
@@ -76,7 +76,7 @@ func GetDictById(id int) (dict *Entity, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//修改保存字典类型
|
//修改保存字典类型
|
||||||
func EditSave(req *EditReq, userId int) (int64, error) {
|
func EditSave(req *EditReq, userId uint64) (int64, error) {
|
||||||
entity, err := GetDictById(gconv.Int(req.DictId))
|
entity, err := GetDictById(gconv.Int(req.DictId))
|
||||||
if err != nil || entity == nil {
|
if err != nil || entity == nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table sys_dict_type operations.
|
// arModel is a active record design model for table sys_dict_type operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,28 @@ var (
|
|||||||
Table = "sys_dict_type"
|
Table = "sys_dict_type"
|
||||||
// Model is the model object of sys_dict_type.
|
// Model is the model object of sys_dict_type.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table sys_dict_type.
|
||||||
|
Columns = struct {
|
||||||
|
DictId string // 字典主键
|
||||||
|
DictName string // 字典名称
|
||||||
|
DictType string // 字典类型
|
||||||
|
Status string // 状态(0正常 1停用)
|
||||||
|
CreateBy string // 创建者
|
||||||
|
CreateTime string // 创建时间
|
||||||
|
UpdateBy string // 更新者
|
||||||
|
UpdateTime string // 更新时间
|
||||||
|
Remark string // 备注
|
||||||
|
}{
|
||||||
|
DictId: "dict_id",
|
||||||
|
DictName: "dict_name",
|
||||||
|
DictType: "dict_type",
|
||||||
|
Status: "status",
|
||||||
|
CreateBy: "create_by",
|
||||||
|
CreateTime: "create_time",
|
||||||
|
UpdateBy: "update_by",
|
||||||
|
UpdateTime: "update_time",
|
||||||
|
Remark: "remark",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +64,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +81,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +128,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +211,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +253,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +268,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +303,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +331,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +342,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ func GetJobs() (jobs []*Entity, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//添加计划任务
|
//添加计划任务
|
||||||
func Add(req *ReqAdd, userId int) (id int64, err error) {
|
func Add(req *ReqAdd, userId uint64) (id int64, err error) {
|
||||||
entity := new(Entity)
|
entity := new(Entity)
|
||||||
entity.JobName = req.JobName
|
entity.JobName = req.JobName
|
||||||
entity.JobGroup = req.JobGroup
|
entity.JobGroup = req.JobGroup
|
||||||
@@ -90,7 +90,7 @@ func GetJobInfoById(id int64) (job *Entity, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//修改计划任务
|
//修改计划任务
|
||||||
func Edit(req *ReqEdit, userId int) (rows int64, err error) {
|
func Edit(req *ReqEdit, userId uint64) (rows int64, err error) {
|
||||||
entity, err := GetJobInfoById(req.JobId)
|
entity, err := GetJobInfoById(req.JobId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -38,6 +38,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table sys_job operations.
|
// arModel is a active record design model for table sys_job operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,38 @@ var (
|
|||||||
Table = "sys_job"
|
Table = "sys_job"
|
||||||
// Model is the model object of sys_job.
|
// Model is the model object of sys_job.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table sys_job.
|
||||||
|
Columns = struct {
|
||||||
|
JobId string // 任务ID
|
||||||
|
JobName string // 任务名称
|
||||||
|
JobParams string // 参数
|
||||||
|
JobGroup string // 任务组名
|
||||||
|
InvokeTarget string // 调用目标字符串
|
||||||
|
CronExpression string // cron执行表达式
|
||||||
|
MisfirePolicy string // 计划执行策略(1多次执行 2执行一次)
|
||||||
|
Concurrent string // 是否并发执行(0允许 1禁止)
|
||||||
|
Status string // 状态(0正常 1暂停)
|
||||||
|
CreateBy string // 创建者
|
||||||
|
CreateTime string // 创建时间
|
||||||
|
UpdateBy string // 更新者
|
||||||
|
UpdateTime string // 更新时间
|
||||||
|
Remark string // 备注信息
|
||||||
|
}{
|
||||||
|
JobId: "job_id",
|
||||||
|
JobName: "job_name",
|
||||||
|
JobParams: "job_params",
|
||||||
|
JobGroup: "job_group",
|
||||||
|
InvokeTarget: "invoke_target",
|
||||||
|
CronExpression: "cron_expression",
|
||||||
|
MisfirePolicy: "misfire_policy",
|
||||||
|
Concurrent: "concurrent",
|
||||||
|
Status: "status",
|
||||||
|
CreateBy: "create_by",
|
||||||
|
CreateTime: "create_time",
|
||||||
|
UpdateBy: "update_by",
|
||||||
|
UpdateTime: "update_time",
|
||||||
|
Remark: "remark",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +74,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +91,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +138,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +221,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +263,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +278,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +313,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +341,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +352,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ type Entity struct {
|
|||||||
Status int `orm:"status" json:"status"` // 登录状态(0成功 1失败)
|
Status int `orm:"status" json:"status"` // 登录状态(0成功 1失败)
|
||||||
Msg string `orm:"msg" json:"msg"` // 提示消息
|
Msg string `orm:"msg" json:"msg"` // 提示消息
|
||||||
LoginTime int64 `orm:"login_time" json:"login_time"` // 访问时间
|
LoginTime int64 `orm:"login_time" json:"login_time"` // 访问时间
|
||||||
Module string `orm:"module" json:"module"` //登录模块
|
Module string `orm:"module" json:"module"` // 登录模块
|
||||||
}
|
}
|
||||||
|
|
||||||
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
||||||
@@ -34,6 +34,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table sys_login_log operations.
|
// arModel is a active record design model for table sys_login_log operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,30 @@ var (
|
|||||||
Table = "sys_login_log"
|
Table = "sys_login_log"
|
||||||
// Model is the model object of sys_login_log.
|
// Model is the model object of sys_login_log.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table sys_login_log.
|
||||||
|
Columns = struct {
|
||||||
|
InfoId string // 访问ID
|
||||||
|
LoginName string // 登录账号
|
||||||
|
Ipaddr string // 登录IP地址
|
||||||
|
LoginLocation string // 登录地点
|
||||||
|
Browser string // 浏览器类型
|
||||||
|
Os string // 操作系统
|
||||||
|
Status string // 登录状态(0成功 1失败)
|
||||||
|
Msg string // 提示消息
|
||||||
|
LoginTime string // 访问时间
|
||||||
|
Module string // 登录模块
|
||||||
|
}{
|
||||||
|
InfoId: "info_id",
|
||||||
|
LoginName: "login_name",
|
||||||
|
Ipaddr: "ipaddr",
|
||||||
|
LoginLocation: "login_location",
|
||||||
|
Browser: "browser",
|
||||||
|
Os: "os",
|
||||||
|
Status: "status",
|
||||||
|
Msg: "msg",
|
||||||
|
LoginTime: "login_time",
|
||||||
|
Module: "module",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +66,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +83,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +130,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +213,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +255,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +270,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +305,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +333,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +344,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -40,6 +40,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table sys_oper_log operations.
|
// arModel is a active record design model for table sys_oper_log operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
M *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,6 +22,42 @@ var (
|
|||||||
Table = "sys_oper_log"
|
Table = "sys_oper_log"
|
||||||
// Model is the model object of sys_oper_log.
|
// Model is the model object of sys_oper_log.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table sys_oper_log.
|
||||||
|
Columns = struct {
|
||||||
|
OperId string // 日志主键
|
||||||
|
Title string // 模块标题
|
||||||
|
BusinessType string // 业务类型(0其它 1新增 2修改 3删除)
|
||||||
|
Method string // 方法名称
|
||||||
|
RequestMethod string // 请求方式
|
||||||
|
OperatorType string // 操作类别(0其它 1后台用户 2手机端用户)
|
||||||
|
OperName string // 操作人员
|
||||||
|
DeptName string // 部门名称
|
||||||
|
OperUrl string // 请求URL
|
||||||
|
OperIp string // 主机地址
|
||||||
|
OperLocation string // 操作地点
|
||||||
|
OperParam string // 请求参数
|
||||||
|
JsonResult string // 返回参数
|
||||||
|
Status string // 操作状态(0正常 1异常)
|
||||||
|
ErrorMsg string // 错误消息
|
||||||
|
OperTime string // 操作时间
|
||||||
|
}{
|
||||||
|
OperId: "oper_id",
|
||||||
|
Title: "title",
|
||||||
|
BusinessType: "business_type",
|
||||||
|
Method: "method",
|
||||||
|
RequestMethod: "request_method",
|
||||||
|
OperatorType: "operator_type",
|
||||||
|
OperName: "oper_name",
|
||||||
|
DeptName: "dept_name",
|
||||||
|
OperUrl: "oper_url",
|
||||||
|
OperIp: "oper_ip",
|
||||||
|
OperLocation: "oper_location",
|
||||||
|
OperParam: "oper_param",
|
||||||
|
JsonResult: "json_result",
|
||||||
|
Status: "status",
|
||||||
|
ErrorMsg: "error_msg",
|
||||||
|
OperTime: "oper_time",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindOne is a convenience method for Model.FindOne.
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
@@ -41,6 +78,12 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|||||||
return Model.FindValue(fieldsAndWhere...)
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
// FindCount is a convenience method for Model.FindCount.
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
// See Model.FindCount.
|
// See Model.FindCount.
|
||||||
func FindCount(where ...interface{}) (int, error) {
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
@@ -52,6 +95,11 @@ func Insert(data ...interface{}) (result sql.Result, err error) {
|
|||||||
return Model.Insert(data...)
|
return Model.Insert(data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
// Replace is a convenience method for Model.Replace.
|
// Replace is a convenience method for Model.Replace.
|
||||||
func Replace(data ...interface{}) (result sql.Result, err error) {
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
return Model.Replace(data...)
|
return Model.Replace(data...)
|
||||||
@@ -94,18 +142,30 @@ func (m *arModel) Slave() *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.M.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
@@ -165,8 +225,8 @@ func (m *arModel) Group(groupBy string) *arModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) Order(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.M.Order(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -207,8 +267,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.M.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -222,53 +282,6 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
|||||||
return &arModel{m.M.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Insert(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Replace(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
//
|
|
||||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
|
||||||
// see Model.Data.
|
|
||||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Save(data...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
//
|
|
||||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
|
||||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Data and Model.Where functions.
|
|
||||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Update(dataAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
|
||||||
return m.M.Delete(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
|
||||||
// see Model.Where.
|
|
||||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
|
||||||
return m.M.Count(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
@@ -304,16 +317,6 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
|
||||||
//
|
|
||||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
|
||||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
|
||||||
// Also see Model.Fields and Model.Where functions.
|
|
||||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.Value(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// Also see Model.WherePri and Model.One.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
@@ -342,18 +345,6 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
|||||||
return entities, nil
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
|
||||||
// Also see Model.WherePri and Model.Value.
|
|
||||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
|
||||||
return m.M.FindValue(fieldsAndWhere...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
|
||||||
// Also see Model.WherePri and Model.Count.
|
|
||||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
|
||||||
return m.M.FindCount(where...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
@@ -365,3 +356,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -39,13 +39,13 @@ type AddParams struct {
|
|||||||
PostSort int `p:"postSort" v:"required#岗位排序不能为空"`
|
PostSort int `p:"postSort" v:"required#岗位排序不能为空"`
|
||||||
Status string `p:"status" v:"required#状态不能为空"`
|
Status string `p:"status" v:"required#状态不能为空"`
|
||||||
Remark string `p:"remark"`
|
Remark string `p:"remark"`
|
||||||
AddUser int
|
AddUser uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type EditParams struct {
|
type EditParams struct {
|
||||||
PostId int64 `p:"postId" v:"required#id必须"`
|
PostId int64 `p:"postId" v:"required#id必须"`
|
||||||
AddParams
|
AddParams
|
||||||
UpUser int
|
UpUser uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func List(req *SearchParams) (total, page int, list gdb.Result, err error) {
|
func List(req *SearchParams) (total, page int, list gdb.Result, err error) {
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
|
|
||||||
//设置用户状态参数
|
//设置用户状态参数
|
||||||
type StatusReq struct {
|
type StatusReq struct {
|
||||||
Id int `p:"userId" v:"required#用户id不能为空"`
|
Id int `p:"userId" v:"required#用户id不能为空"`
|
||||||
UserStatus int `p:"status" v:"required#用户状态不能为空"`
|
UserStatus uint `p:"status" v:"required#用户状态不能为空"`
|
||||||
}
|
}
|
||||||
|
|
||||||
//重置用户密码状态参数
|
//重置用户密码状态参数
|
||||||
@@ -35,7 +35,7 @@ type SearchReq struct {
|
|||||||
|
|
||||||
//添加修改用户公用请求字段
|
//添加修改用户公用请求字段
|
||||||
type SetUserReq struct {
|
type SetUserReq struct {
|
||||||
DeptId int64 `p:"deptId" v:"required#用户部门不能为空"` //所属部门
|
DeptId uint64 `p:"deptId" v:"required#用户部门不能为空"` //所属部门
|
||||||
Email string `p:"email" v:"email#邮箱格式错误"` //邮箱
|
Email string `p:"email" v:"email#邮箱格式错误"` //邮箱
|
||||||
NickName string `p:"nickName" v:"required#用户昵称不能为空"`
|
NickName string `p:"nickName" v:"required#用户昵称不能为空"`
|
||||||
Phonenumber string `p:"phonenumber" v:"required|phone#手机号不能为空|手机号格式错误"`
|
Phonenumber string `p:"phonenumber" v:"required|phone#手机号不能为空|手机号格式错误"`
|
||||||
@@ -43,7 +43,7 @@ type SetUserReq struct {
|
|||||||
Remark string `p:"remark"`
|
Remark string `p:"remark"`
|
||||||
RoleIds []int64 `p:"roleIds"`
|
RoleIds []int64 `p:"roleIds"`
|
||||||
Sex int `p:"sex"`
|
Sex int `p:"sex"`
|
||||||
Status int `p:"status"`
|
Status uint `p:"status"`
|
||||||
IsAdmin int `p:"is_admin"` // 是否后台管理员 1 是 0 否
|
IsAdmin int `p:"is_admin"` // 是否后台管理员 1 是 0 否
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ type EditUserReq struct {
|
|||||||
UserId int `p:"userId" v:"required#用户id不能为空"`
|
UserId int `p:"userId" v:"required#用户id不能为空"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserById(id int) (*Entity, error) {
|
func GetUserById(id uint64) (*Entity, error) {
|
||||||
return Model.Where("id", id).One()
|
return Model.Where("id", id).One()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ func GetAdminList(req *SearchReq) (total, page int, userList []*Entity, err erro
|
|||||||
req.PageNum = 1
|
req.PageNum = 1
|
||||||
}
|
}
|
||||||
page = req.PageNum
|
page = req.PageNum
|
||||||
userList, err = userModel.ForPage(page, req.PageSize).OrderBy("id asc").All()
|
userList, err = userModel.Page(page, req.PageSize).Order("id asc").All()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,27 +11,24 @@ import (
|
|||||||
|
|
||||||
// Entity is the golang structure for table user.
|
// Entity is the golang structure for table user.
|
||||||
type Entity struct {
|
type Entity struct {
|
||||||
Id int `orm:"id,primary" json:"id"` //
|
Id uint64 `orm:"id,primary" json:"id"` //
|
||||||
UserName string `orm:"user_name,unique" json:"user_name"` // 用户名
|
UserName string `orm:"user_name,unique" json:"user_name"` // 用户名
|
||||||
Mobile string `orm:"mobile,unique" json:"mobile"` // 中国手机不带国家代码,国际手机号格式为:国家代码-手机号
|
Mobile string `orm:"mobile,unique" json:"mobile"` // 中国手机不带国家代码,国际手机号格式为:国家代码-手机号
|
||||||
UserNickname string `orm:"user_nickname" json:"user_nickname"` // 用户昵称
|
UserNickname string `orm:"user_nickname" json:"user_nickname"` // 用户昵称
|
||||||
Birthday int `orm:"birthday" json:"birthday"` // 生日
|
Birthday int `orm:"birthday" json:"birthday"` // 生日
|
||||||
CreateTime int `orm:"create_time" json:"create_time"` // 注册时间
|
CreateTime int `orm:"create_time" json:"create_time"` // 注册时间
|
||||||
UserPassword string `orm:"user_password" json:"user_password"` // 登录密码;cmf_password加密
|
UserPassword string `orm:"user_password" json:"user_password"` // 登录密码;cmf_password加密
|
||||||
UserStatus int `orm:"user_status" json:"user_status"` // 用户状态;0:禁用,1:正常,2:未验证
|
UserStatus uint `orm:"user_status" json:"user_status"` // 用户状态;0:禁用,1:正常,2:未验证
|
||||||
UserEmail string `orm:"user_email" json:"user_email"` // 用户登录邮箱
|
UserEmail string `orm:"user_email" json:"user_email"` // 用户登录邮箱
|
||||||
Sex int `orm:"sex" json:"sex"` // 性别;0:保密,1:男,2:女
|
Sex int `orm:"sex" json:"sex"` // 性别;0:保密,1:男,2:女
|
||||||
Avatar string `orm:"avatar" json:"avatar"` // 用户头像
|
Avatar string `orm:"avatar" json:"avatar"` // 用户头像
|
||||||
LastLoginTime int `orm:"last_login_time" json:"last_login_time"` // 最后登录时间
|
LastLoginTime int `orm:"last_login_time" json:"last_login_time"` // 最后登录时间
|
||||||
LastLoginIp string `orm:"last_login_ip" json:"last_login_ip"` // 最后登录ip
|
LastLoginIp string `orm:"last_login_ip" json:"last_login_ip"` // 最后登录ip
|
||||||
DeptId int64 `orm:"dept_id" json:"dept_id"` //所属部门id
|
DeptId uint64 `orm:"dept_id" json:"dept_id"` // 部门id
|
||||||
Remark string `orm:"remark" json:"remark"` // 备注
|
Remark string `orm:"remark" json:"remark"` // 备注
|
||||||
IsAdmin int `orm:"is_admin" json:"is_admin"` // 是否后台管理员 1 是 0 否
|
IsAdmin int `orm:"is_admin" json:"is_admin"` // 是否后台管理员 1 是 0 否
|
||||||
}
|
}
|
||||||
|
|
||||||
// User is alias of Entity, which some developers say they just want.
|
|
||||||
type User = Entity
|
|
||||||
|
|
||||||
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
||||||
// the data and where attributes for empty values.
|
// the data and where attributes for empty values.
|
||||||
func (r *Entity) OmitEmpty() *arModel {
|
func (r *Entity) OmitEmpty() *arModel {
|
||||||
@@ -43,6 +40,11 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
|||||||
return Model.Data(r).Insert()
|
return Model.Data(r).Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||||
|
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||||
|
return Model.Data(r).InsertIgnore()
|
||||||
|
}
|
||||||
|
|
||||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||||
// it deletes it and insert this one.
|
// it deletes it and insert this one.
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"github.com/gogf/gf/database/gdb"
|
"github.com/gogf/gf/database/gdb"
|
||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
|
"github.com/gogf/gf/frame/gmvc"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// arModel is a active record design model for table user operations.
|
// arModel is a active record design model for table user operations.
|
||||||
type arModel struct {
|
type arModel struct {
|
||||||
Model *gdb.Model
|
gmvc.M
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -21,63 +22,176 @@ var (
|
|||||||
Table = "user"
|
Table = "user"
|
||||||
// Model is the model object of user.
|
// Model is the model object of user.
|
||||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||||
|
// Columns defines and stores column names for table user.
|
||||||
|
Columns = struct {
|
||||||
|
Id string //
|
||||||
|
UserName string // 用户名
|
||||||
|
Mobile string // 中国手机不带国家代码,国际手机号格式为:国家代码-手机号
|
||||||
|
UserNickname string // 用户昵称
|
||||||
|
Birthday string // 生日
|
||||||
|
CreateTime string // 注册时间
|
||||||
|
UserPassword string // 登录密码;cmf_password加密
|
||||||
|
UserStatus string // 用户状态;0:禁用,1:正常,2:未验证
|
||||||
|
UserEmail string // 用户登录邮箱
|
||||||
|
Sex string // 性别;0:保密,1:男,2:女
|
||||||
|
Avatar string // 用户头像
|
||||||
|
LastLoginTime string // 最后登录时间
|
||||||
|
LastLoginIp string // 最后登录ip
|
||||||
|
DeptId string // 部门id
|
||||||
|
Remark string // 备注
|
||||||
|
IsAdmin string // 是否后台管理员 1 是 0 否
|
||||||
|
}{
|
||||||
|
Id: "id",
|
||||||
|
UserName: "user_name",
|
||||||
|
Mobile: "mobile",
|
||||||
|
UserNickname: "user_nickname",
|
||||||
|
Birthday: "birthday",
|
||||||
|
CreateTime: "create_time",
|
||||||
|
UserPassword: "user_password",
|
||||||
|
UserStatus: "user_status",
|
||||||
|
UserEmail: "user_email",
|
||||||
|
Sex: "sex",
|
||||||
|
Avatar: "avatar",
|
||||||
|
LastLoginTime: "last_login_time",
|
||||||
|
LastLoginIp: "last_login_ip",
|
||||||
|
DeptId: "dept_id",
|
||||||
|
Remark: "remark",
|
||||||
|
IsAdmin: "is_admin",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// FindOne is a convenience method for Model.FindOne.
|
||||||
|
// See Model.FindOne.
|
||||||
|
func FindOne(where ...interface{}) (*Entity, error) {
|
||||||
|
return Model.FindOne(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindAll is a convenience method for Model.FindAll.
|
||||||
|
// See Model.FindAll.
|
||||||
|
func FindAll(where ...interface{}) ([]*Entity, error) {
|
||||||
|
return Model.FindAll(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindValue is a convenience method for Model.FindValue.
|
||||||
|
// See Model.FindValue.
|
||||||
|
func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
||||||
|
return Model.FindValue(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindArray is a convenience method for Model.FindArray.
|
||||||
|
// See Model.FindArray.
|
||||||
|
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||||
|
return Model.FindArray(fieldsAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindCount is a convenience method for Model.FindCount.
|
||||||
|
// See Model.FindCount.
|
||||||
|
func FindCount(where ...interface{}) (int, error) {
|
||||||
|
return Model.FindCount(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert is a convenience method for Model.Insert.
|
||||||
|
func Insert(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Insert(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// InsertIgnore is a convenience method for Model.InsertIgnore.
|
||||||
|
func InsertIgnore(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.InsertIgnore(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace is a convenience method for Model.Replace.
|
||||||
|
func Replace(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Replace(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save is a convenience method for Model.Save.
|
||||||
|
func Save(data ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Save(data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is a convenience method for Model.Update.
|
||||||
|
func Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Update(dataAndWhere...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete is a convenience method for Model.Delete.
|
||||||
|
func Delete(where ...interface{}) (result sql.Result, err error) {
|
||||||
|
return Model.Delete(where...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// As sets an alias name for current table.
|
||||||
|
func (m *arModel) As(as string) *arModel {
|
||||||
|
return &arModel{m.M.As(as)}
|
||||||
|
}
|
||||||
|
|
||||||
// TX sets the transaction for current operation.
|
// TX sets the transaction for current operation.
|
||||||
func (m *arModel) TX(tx *gdb.TX) *arModel {
|
func (m *arModel) TX(tx *gdb.TX) *arModel {
|
||||||
return &arModel{m.Model.TX(tx)}
|
return &arModel{m.M.TX(tx)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Master marks the following operation on master node.
|
// Master marks the following operation on master node.
|
||||||
func (m *arModel) Master() *arModel {
|
func (m *arModel) Master() *arModel {
|
||||||
return &arModel{m.Model.Master()}
|
return &arModel{m.M.Master()}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Slave marks the following operation on slave node.
|
// Slave marks the following operation on slave node.
|
||||||
// Note that it makes sense only if there's any slave node configured.
|
// Note that it makes sense only if there's any slave node configured.
|
||||||
func (m *arModel) Slave() *arModel {
|
func (m *arModel) Slave() *arModel {
|
||||||
return &arModel{m.Model.Slave()}
|
return &arModel{m.M.Slave()}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
// LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) LeftJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.Model.LeftJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").LeftJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").LeftJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) LeftJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.LeftJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
// RightJoin does "RIGHT JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) RightJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.Model.RightJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").RightJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").RightJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) RightJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.RightJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
// InnerJoin does "INNER JOIN ... ON ..." statement on the model.
|
||||||
func (m *arModel) InnerJoin(joinTable string, on string) *arModel {
|
// The parameter <table> can be joined table and its joined condition,
|
||||||
return &arModel{m.Model.InnerJoin(joinTable, on)}
|
// and also with its alias name, like:
|
||||||
|
// Table("user").InnerJoin("user_detail", "user_detail.uid=user.uid")
|
||||||
|
// Table("user", "u").InnerJoin("user_detail", "ud", "ud.uid=u.uid")
|
||||||
|
func (m *arModel) InnerJoin(table ...string) *arModel {
|
||||||
|
return &arModel{m.M.InnerJoin(table...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
// Fields sets the operation fields of the model, multiple fields joined using char ','.
|
||||||
func (m *arModel) Fields(fields string) *arModel {
|
func (m *arModel) Fields(fields string) *arModel {
|
||||||
return &arModel{m.Model.Fields(fields)}
|
return &arModel{m.M.Fields(fields)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FieldsEx sets the excluded operation fields of the model, multiple fields joined using char ','.
|
// FieldsEx sets the excluded operation fields of the model, multiple fields joined using char ','.
|
||||||
func (m *arModel) FieldsEx(fields string) *arModel {
|
func (m *arModel) FieldsEx(fields string) *arModel {
|
||||||
return &arModel{m.Model.FieldsEx(fields)}
|
return &arModel{m.M.FieldsEx(fields)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option sets the extra operation option for the model.
|
// Option sets the extra operation option for the model.
|
||||||
func (m *arModel) Option(option int) *arModel {
|
func (m *arModel) Option(option int) *arModel {
|
||||||
return &arModel{m.Model.Option(option)}
|
return &arModel{m.M.Option(option)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
// OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
|
||||||
// the data and where attributes for empty values.
|
// the data and where attributes for empty values.
|
||||||
func (m *arModel) OmitEmpty() *arModel {
|
func (m *arModel) OmitEmpty() *arModel {
|
||||||
return &arModel{m.Model.OmitEmpty()}
|
return &arModel{m.M.OmitEmpty()}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filter marks filtering the fields which does not exist in the fields of the operated table.
|
// Filter marks filtering the fields which does not exist in the fields of the operated table.
|
||||||
func (m *arModel) Filter() *arModel {
|
func (m *arModel) Filter() *arModel {
|
||||||
return &arModel{m.Model.Filter()}
|
return &arModel{m.M.Filter()}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Where sets the condition statement for the model. The parameter <where> can be type of
|
// Where sets the condition statement for the model. The parameter <where> can be type of
|
||||||
@@ -92,27 +206,27 @@ func (m *arModel) Filter() *arModel {
|
|||||||
// Where("age IN(?,?)", 18, 50)
|
// Where("age IN(?,?)", 18, 50)
|
||||||
// Where(User{ Id : 1, UserName : "john"})
|
// Where(User{ Id : 1, UserName : "john"})
|
||||||
func (m *arModel) Where(where interface{}, args ...interface{}) *arModel {
|
func (m *arModel) Where(where interface{}, args ...interface{}) *arModel {
|
||||||
return &arModel{m.Model.Where(where, args...)}
|
return &arModel{m.M.Where(where, args...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// And adds "AND" condition to the where statement.
|
// And adds "AND" condition to the where statement.
|
||||||
func (m *arModel) And(where interface{}, args ...interface{}) *arModel {
|
func (m *arModel) And(where interface{}, args ...interface{}) *arModel {
|
||||||
return &arModel{m.Model.And(where, args...)}
|
return &arModel{m.M.And(where, args...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Or adds "OR" condition to the where statement.
|
// Or adds "OR" condition to the where statement.
|
||||||
func (m *arModel) Or(where interface{}, args ...interface{}) *arModel {
|
func (m *arModel) Or(where interface{}, args ...interface{}) *arModel {
|
||||||
return &arModel{m.Model.Or(where, args...)}
|
return &arModel{m.M.Or(where, args...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupBy sets the "GROUP BY" statement for the model.
|
// Group sets the "GROUP BY" statement for the model.
|
||||||
func (m *arModel) GroupBy(groupBy string) *arModel {
|
func (m *arModel) Group(groupBy string) *arModel {
|
||||||
return &arModel{m.Model.GroupBy(groupBy)}
|
return &arModel{m.M.Group(groupBy)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OrderBy sets the "ORDER BY" statement for the model.
|
// Order sets the "ORDER BY" statement for the model.
|
||||||
func (m *arModel) OrderBy(orderBy string) *arModel {
|
func (m *arModel) Order(orderBy ...string) *arModel {
|
||||||
return &arModel{m.Model.OrderBy(orderBy)}
|
return &arModel{m.M.Order(orderBy...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit sets the "LIMIT" statement for the model.
|
// Limit sets the "LIMIT" statement for the model.
|
||||||
@@ -120,25 +234,25 @@ func (m *arModel) OrderBy(orderBy string) *arModel {
|
|||||||
// it then sets "LIMIT limit[0],limit[1]" statement for the model, or else it sets "LIMIT limit[0]"
|
// it then sets "LIMIT limit[0],limit[1]" statement for the model, or else it sets "LIMIT limit[0]"
|
||||||
// statement.
|
// statement.
|
||||||
func (m *arModel) Limit(limit ...int) *arModel {
|
func (m *arModel) Limit(limit ...int) *arModel {
|
||||||
return &arModel{m.Model.Limit(limit...)}
|
return &arModel{m.M.Limit(limit...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Offset sets the "OFFSET" statement for the model.
|
// Offset sets the "OFFSET" statement for the model.
|
||||||
// It only makes sense for some databases like SQLServer, PostgreSQL, etc.
|
// It only makes sense for some databases like SQLServer, PostgreSQL, etc.
|
||||||
func (m *arModel) Offset(offset int) *arModel {
|
func (m *arModel) Offset(offset int) *arModel {
|
||||||
return &arModel{m.Model.Offset(offset)}
|
return &arModel{m.M.Offset(offset)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ForPage sets the paging number for the model.
|
// Page sets the paging number for the model.
|
||||||
// The parameter <page> is started from 1 for paging.
|
// The parameter <page> is started from 1 for paging.
|
||||||
// Note that, it differs that the Limit function start from 0 for "LIMIT" statement.
|
// Note that, it differs that the Limit function start from 0 for "LIMIT" statement.
|
||||||
func (m *arModel) ForPage(page, limit int) *arModel {
|
func (m *arModel) Page(page, limit int) *arModel {
|
||||||
return &arModel{m.Model.Page(page, limit)}
|
return &arModel{m.M.Page(page, limit)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Batch sets the batch operation number for the model.
|
// Batch sets the batch operation number for the model.
|
||||||
func (m *arModel) Batch(batch int) *arModel {
|
func (m *arModel) Batch(batch int) *arModel {
|
||||||
return &arModel{m.Model.Batch(batch)}
|
return &arModel{m.M.Batch(batch)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cache sets the cache feature for the model. It caches the result of the sql, which means
|
// Cache sets the cache feature for the model. It caches the result of the sql, which means
|
||||||
@@ -153,8 +267,8 @@ func (m *arModel) Batch(batch int) *arModel {
|
|||||||
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
// control the cache like changing the <duration> or clearing the cache with specified <name>.
|
||||||
//
|
//
|
||||||
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
// Note that, the cache feature is disabled if the model is operating on a transaction.
|
||||||
func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
func (m *arModel) Cache(duration time.Duration, name ...string) *arModel {
|
||||||
return &arModel{m.Model.Cache(expire, name...)}
|
return &arModel{m.M.Cache(duration, name...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data sets the operation data for the model.
|
// Data sets the operation data for the model.
|
||||||
@@ -165,46 +279,17 @@ func (m *arModel) Cache(expire time.Duration, name ...string) *arModel {
|
|||||||
// Data(g.Map{"uid": 10000, "name":"john"})
|
// Data(g.Map{"uid": 10000, "name":"john"})
|
||||||
// Data(g.Slice{g.Map{"uid": 10000, "name":"john"}, g.Map{"uid": 20000, "name":"smith"})
|
// Data(g.Slice{g.Map{"uid": 10000, "name":"john"}, g.Map{"uid": 20000, "name":"smith"})
|
||||||
func (m *arModel) Data(data ...interface{}) *arModel {
|
func (m *arModel) Data(data ...interface{}) *arModel {
|
||||||
return &arModel{m.Model.Data(data...)}
|
return &arModel{m.M.Data(data...)}
|
||||||
}
|
|
||||||
|
|
||||||
// Insert does "INSERT INTO ..." statement for the model.
|
|
||||||
func (m *arModel) Insert() (result sql.Result, err error) {
|
|
||||||
return m.Model.Insert()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace does "REPLACE INTO ..." statement for the model.
|
|
||||||
func (m *arModel) Replace() (result sql.Result, err error) {
|
|
||||||
return m.Model.Replace()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
|
||||||
// It updates the record if there's primary or unique index in the saving data,
|
|
||||||
// or else it inserts a new record into the table.
|
|
||||||
func (m *arModel) Save() (result sql.Result, err error) {
|
|
||||||
return m.Model.Save()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update does "UPDATE ... " statement for the model.
|
|
||||||
func (m *arModel) Update() (result sql.Result, err error) {
|
|
||||||
return m.Model.Update()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete does "DELETE FROM ... " statement for the model.
|
|
||||||
func (m *arModel) Delete() (result sql.Result, err error) {
|
|
||||||
return m.Model.Delete()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
|
||||||
func (m *arModel) Count() (int, error) {
|
|
||||||
return m.Model.Count()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// All does "SELECT FROM ..." statement for the model.
|
// All does "SELECT FROM ..." statement for the model.
|
||||||
// It retrieves the records from table and returns the result as []*Entity.
|
// It retrieves the records from table and returns the result as []*Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
func (m *arModel) All() ([]*Entity, error) {
|
//
|
||||||
all, err := m.Model.All()
|
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
||||||
|
// see Model.Where.
|
||||||
|
func (m *arModel) All(where ...interface{}) ([]*Entity, error) {
|
||||||
|
all, err := m.M.All(where...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -217,8 +302,11 @@ func (m *arModel) All() ([]*Entity, error) {
|
|||||||
|
|
||||||
// One retrieves one record from table and returns the result as *Entity.
|
// One retrieves one record from table and returns the result as *Entity.
|
||||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||||
func (m *arModel) One() (*Entity, error) {
|
//
|
||||||
one, err := m.Model.One()
|
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
||||||
|
// see Model.Where.
|
||||||
|
func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
||||||
|
one, err := m.M.One(where...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -229,15 +317,37 @@ func (m *arModel) One() (*Entity, error) {
|
|||||||
return entity, nil
|
return entity, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||||
// It returns nil if there's no record found with the given conditions from table.
|
// Also see Model.WherePri and Model.One.
|
||||||
func (m *arModel) Value() (gdb.Value, error) {
|
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||||
return m.Model.Value()
|
one, err := m.M.FindOne(where...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var entity *Entity
|
||||||
|
if err = one.Struct(&entity); err != nil && err != sql.ErrNoRows {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return entity, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindAll retrieves and returns Result by by Model.WherePri and Model.All.
|
||||||
|
// Also see Model.WherePri and Model.All.
|
||||||
|
func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
||||||
|
all, err := m.M.FindAll(where...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var entities []*Entity
|
||||||
|
if err = all.Structs(&entities); err != nil && err != sql.ErrNoRows {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return entities, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Chunk iterates the table with given size and callback function.
|
// Chunk iterates the table with given size and callback function.
|
||||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||||
m.Model.Chunk(limit, func(result gdb.Result, err error) bool {
|
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||||
var entities []*Entity
|
var entities []*Entity
|
||||||
err = result.Structs(&entities)
|
err = result.Structs(&entities)
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
@@ -246,3 +356,18 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
|
|||||||
return callback(entities, err)
|
return callback(entities, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LockUpdate sets the lock for update for current operation.
|
||||||
|
func (m *arModel) LockUpdate() *arModel {
|
||||||
|
return &arModel{m.M.LockUpdate()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LockShared sets the lock in share mode for current operation.
|
||||||
|
func (m *arModel) LockShared() *arModel {
|
||||||
|
return &arModel{m.M.LockShared()}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unscoped enables/disables the soft deleting feature.
|
||||||
|
func (m *arModel) Unscoped() *arModel {
|
||||||
|
return &arModel{m.M.Unscoped()}
|
||||||
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ func AddUserPost(postIds []int64, userId int64) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取用户岗位
|
//获取用户岗位
|
||||||
func GetAdminPosts(userId int) (postIds []int64, err error) {
|
func GetAdminPosts(userId uint64) (postIds []int64, err error) {
|
||||||
list, e := Model.All(Columns.UserId, userId)
|
list, e := Model.All(Columns.UserId, userId)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
g.Log().Error(e)
|
g.Log().Error(e)
|
||||||
@@ -44,7 +44,7 @@ func GetAdminPosts(userId int) (postIds []int64, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//根据用户id获取岗位信息详情
|
//根据用户id获取岗位信息详情
|
||||||
func GetPostsByUserId(userId int) ([]*sys_post.Entity, error) {
|
func GetPostsByUserId(userId uint64) ([]*sys_post.Entity, error) {
|
||||||
model := g.DB().Table(Table)
|
model := g.DB().Table(Table)
|
||||||
datas := ([]*sys_post.Entity)(nil)
|
datas := ([]*sys_post.Entity)(nil)
|
||||||
err := model.As("a").InnerJoin("sys_post b", "a.post_id = b.post_id").Fields("b.*").Where(Columns.UserId, userId).Structs(&datas)
|
err := model.As("a").InnerJoin("sys_post b", "a.post_id = b.post_id").Fields("b.*").Where(Columns.UserId, userId).Structs(&datas)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
//添加文章操作
|
//添加文章操作
|
||||||
func AddNews(req *cms_news.ReqAddParams, cateIds []int, userId int) (insId int64, err error) {
|
func AddNews(req *cms_news.ReqAddParams, cateIds []int, userId uint64) (insId int64, err error) {
|
||||||
cateIds, err = getPubCateIds(cateIds)
|
cateIds, err = getPubCateIds(cateIds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func EditDept(data *sys_dept.EditParams) error {
|
|||||||
return sys_dept.EditDept(data)
|
return sys_dept.EditDept(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDeptById(id int64) (*sys_dept.Dept, error) {
|
func GetDeptById(id uint64) (*sys_dept.Dept, error) {
|
||||||
return sys_dept.GetDeptById(id)
|
return sys_dept.GetDeptById(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
//添加字典数据操作
|
//添加字典数据操作
|
||||||
func AddSaveData(req *sys_dict_data.AddDataReq, userId int) (int64, error) {
|
func AddSaveData(req *sys_dict_data.AddDataReq, userId uint64) (int64, error) {
|
||||||
return sys_dict_data.AddSaveData(req, userId)
|
return sys_dict_data.AddSaveData(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改字典数据操作
|
//修改字典数据操作
|
||||||
func EditSaveData(req *sys_dict_data.EditDataReq, userId int) (int64, error) {
|
func EditSaveData(req *sys_dict_data.EditDataReq, userId uint64) (int64, error) {
|
||||||
return sys_dict_data.EditSaveData(req, userId)
|
return sys_dict_data.EditSaveData(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,12 +19,12 @@ func CheckDictTypeUnique(dictType *sys_dict_type.EditReq) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//添加数据
|
//添加数据
|
||||||
func AddSave(req *sys_dict_type.AddReq, userId int) (int64, error) {
|
func AddSave(req *sys_dict_type.AddReq, userId uint64) (int64, error) {
|
||||||
return sys_dict_type.AddSave(req, userId)
|
return sys_dict_type.AddSave(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改保存字典类型
|
//修改保存字典类型
|
||||||
func EditSave(req *sys_dict_type.EditReq, userId int) (int64, error) {
|
func EditSave(req *sys_dict_type.EditReq, userId uint64) (int64, error) {
|
||||||
return sys_dict_type.EditSave(req, userId)
|
return sys_dict_type.EditSave(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//添加计划任务
|
//添加计划任务
|
||||||
func AddJob(req *sys_job.ReqAdd, userId int) (id int64, err error) {
|
func AddJob(req *sys_job.ReqAdd, userId uint64) (id int64, err error) {
|
||||||
return sys_job.Add(req, userId)
|
return sys_job.Add(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改计划任务
|
//修改计划任务
|
||||||
func EditJob(req *sys_job.ReqEdit, userId int) (rows int64, err error) {
|
func EditJob(req *sys_job.ReqEdit, userId uint64) (rows int64, err error) {
|
||||||
return sys_job.Edit(req, userId)
|
return sys_job.Edit(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
//保存参数
|
//保存参数
|
||||||
func AddSave(req *sys_config.AddReq, userId int) (id int64, err error) {
|
func AddSave(req *sys_config.AddReq, userId uint64) (id int64, err error) {
|
||||||
return sys_config.AddSave(req, userId)
|
return sys_config.AddSave(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改保存
|
//修改保存
|
||||||
func EditSave(req *sys_config.EditReq, userId int) (int64, error) {
|
func EditSave(req *sys_config.EditReq, userId uint64) (int64, error) {
|
||||||
return sys_config.EditSave(req, userId)
|
return sys_config.EditSave(req, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,12 +104,12 @@ func GetCurrentUserInfo(r *ghttp.Request) (map[string]interface{}, error) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPostsByUserId(id int) ([]*sys_post.Entity, error) {
|
func GetPostsByUserId(id uint64) ([]*sys_post.Entity, error) {
|
||||||
return user_post.GetPostsByUserId(id)
|
return user_post.GetPostsByUserId(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取登陆用户ID
|
//获取登陆用户ID
|
||||||
func GetLoginID(r *ghttp.Request) (userId int) {
|
func GetLoginID(r *ghttp.Request) (userId uint64) {
|
||||||
userInfo := GetLoginAdminInfo(r)
|
userInfo := GetLoginAdminInfo(r)
|
||||||
if userInfo != nil {
|
if userInfo != nil {
|
||||||
userId = userInfo.Id
|
userId = userInfo.Id
|
||||||
@@ -156,7 +156,7 @@ func GetAdminList(req *user.SearchReq) (total, page int, userList []*user.Entity
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取管理员的角色信息
|
//获取管理员的角色信息
|
||||||
func GetAdminRole(userId int, allRoleList []*role.Entity) (roles []*role.Entity, err error) {
|
func GetAdminRole(userId uint64, allRoleList []*role.Entity) (roles []*role.Entity, err error) {
|
||||||
roleIds, err := GetAdminRoleIds(userId)
|
roleIds, err := GetAdminRoleIds(userId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@@ -173,7 +173,7 @@ func GetAdminRole(userId int, allRoleList []*role.Entity) (roles []*role.Entity,
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取管理员对应的角色ids
|
//获取管理员对应的角色ids
|
||||||
func GetAdminRoleIds(userId int) (roleIds []int, err error) {
|
func GetAdminRoleIds(userId uint64) (roleIds []uint, err error) {
|
||||||
enforcer, e := casbin_adapter_service.GetEnforcer()
|
enforcer, e := casbin_adapter_service.GetEnforcer()
|
||||||
if e != nil {
|
if e != nil {
|
||||||
err = e
|
err = e
|
||||||
@@ -182,16 +182,16 @@ func GetAdminRoleIds(userId int) (roleIds []int, err error) {
|
|||||||
//查询关联角色规则
|
//查询关联角色规则
|
||||||
groupPolicy := enforcer.GetFilteredGroupingPolicy(0, fmt.Sprintf("u_%d", userId))
|
groupPolicy := enforcer.GetFilteredGroupingPolicy(0, fmt.Sprintf("u_%d", userId))
|
||||||
if len(groupPolicy) > 0 {
|
if len(groupPolicy) > 0 {
|
||||||
roleIds = make([]int, len(groupPolicy))
|
roleIds = make([]uint, len(groupPolicy))
|
||||||
//得到角色id的切片
|
//得到角色id的切片
|
||||||
for k, v := range groupPolicy {
|
for k, v := range groupPolicy {
|
||||||
roleIds[k] = gconv.Int(gstr.SubStr(v[1], 2))
|
roleIds[k] = gconv.Uint(gstr.SubStr(v[1], 2))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAdminPosts(userId int) (postIds []int64, err error) {
|
func GetAdminPosts(userId uint64) (postIds []int64, err error) {
|
||||||
return user_post.GetAdminPosts(userId)
|
return user_post.GetAdminPosts(userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@ func GetAllMenus() (menus g.List, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取管理员所属角色菜单
|
//获取管理员所属角色菜单
|
||||||
func GetAdminMenusByRoleIds(roleIds []int) (menus g.List, err error) {
|
func GetAdminMenusByRoleIds(roleIds []uint) (menus g.List, err error) {
|
||||||
//获取角色对应的菜单id
|
//获取角色对应的菜单id
|
||||||
enforcer, e := casbin_adapter_service.GetEnforcer()
|
enforcer, e := casbin_adapter_service.GetEnforcer()
|
||||||
if e != nil {
|
if e != nil {
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ require (
|
|||||||
github.com/go-ole/go-ole v1.2.4 // indirect
|
github.com/go-ole/go-ole v1.2.4 // indirect
|
||||||
github.com/go-openapi/spec v0.19.8 // indirect
|
github.com/go-openapi/spec v0.19.8 // indirect
|
||||||
github.com/go-openapi/swag v0.19.9 // indirect
|
github.com/go-openapi/swag v0.19.9 // indirect
|
||||||
github.com/goflyfox/gtoken v1.3.18
|
github.com/goflyfox/gtoken v1.3.19
|
||||||
github.com/gogf/gf v1.13.3
|
github.com/gogf/gf v1.13.6
|
||||||
github.com/mailru/easyjson v0.7.1 // indirect
|
github.com/mailru/easyjson v0.7.1 // indirect
|
||||||
github.com/mojocn/base64Captcha v1.3.1
|
github.com/mojocn/base64Captcha v1.3.1
|
||||||
github.com/mssola/user_agent v0.5.1
|
github.com/mssola/user_agent v0.5.1
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafo
|
|||||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
github.com/casbin/casbin/v2 v2.1.2 h1:bTwon/ECRx9dwBy2ewRVr5OiqjeXSGiTUY74sDPQi/g=
|
github.com/casbin/casbin/v2 v2.1.2 h1:bTwon/ECRx9dwBy2ewRVr5OiqjeXSGiTUY74sDPQi/g=
|
||||||
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
|
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
|
||||||
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
|
|
||||||
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
|
||||||
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28 h1:LdXxtjzvZYhhUaonAaAKArG3pyC67kGL3YY+6hGG8G4=
|
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28 h1:LdXxtjzvZYhhUaonAaAKArG3pyC67kGL3YY+6hGG8G4=
|
||||||
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||||
@@ -24,12 +22,8 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8
|
|||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
|
|
||||||
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
|
|
||||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/gf-third/yaml v1.0.1 h1:pqD4ix+65DqGphU1MDnToPZfGYk0tuuwRzuTSl3g0d0=
|
|
||||||
github.com/gf-third/yaml v1.0.1/go.mod h1:t443vj0txEw3+E0MOtkr83kt+PrZg2I8SRuYfn85NM0=
|
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w=
|
github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w=
|
||||||
github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
|
github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
|
||||||
@@ -61,11 +55,11 @@ github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4az
|
|||||||
github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||||
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
|
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
|
||||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||||
github.com/goflyfox/gtoken v1.3.18 h1:LD9FFWJxYRVlCw+Xw07UT/PBkLJC60hD3kQr+9KVF2A=
|
github.com/goflyfox/gtoken v1.3.19 h1:p0fhXybMNwB1sFn+DnCOQkE/IbLaNE31rRLIGZ+qShk=
|
||||||
github.com/goflyfox/gtoken v1.3.18/go.mod h1:a9Q08qaHzoS+ko/AFrCBnq4KCesnRFZ/3eLIiERRhtU=
|
github.com/goflyfox/gtoken v1.3.19/go.mod h1:b1ffjYH5cBEtiEGwLsRxtl0s0ler06hAvbYKa9IkbR4=
|
||||||
github.com/gogf/gf v1.12.1/go.mod h1:5ItmC5B/St8P4hp0/waKmnvHwAfAJ1uspMvR2wUD4UA=
|
github.com/gogf/gf v1.13.4/go.mod h1:dGX0/BElXDBYbdJGascqfrWScj8IMeOietDjVD6/5Fc=
|
||||||
github.com/gogf/gf v1.13.3 h1:wdyNAzOSztDkabTEqRmPeJJT93p2qBK/jPK5x+8CRSE=
|
github.com/gogf/gf v1.13.6 h1:wm/eaVdViAcO7KqZCOCc/lzgGdBSDTRn7cDQ5gWMddw=
|
||||||
github.com/gogf/gf v1.13.3/go.mod h1:dGX0/BElXDBYbdJGascqfrWScj8IMeOietDjVD6/5Fc=
|
github.com/gogf/gf v1.13.6/go.mod h1:dGX0/BElXDBYbdJGascqfrWScj8IMeOietDjVD6/5Fc=
|
||||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
||||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
@@ -73,8 +67,6 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
|
|||||||
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
|
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
|
||||||
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
||||||
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/gqcn/structs v1.1.1 h1:cyzGRwfmn3d1d54fwW3KUNyG9QxR0ldIeqwFGeBt638=
|
github.com/gqcn/structs v1.1.1 h1:cyzGRwfmn3d1d54fwW3KUNyG9QxR0ldIeqwFGeBt638=
|
||||||
@@ -100,8 +92,6 @@ github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7
|
|||||||
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54=
|
|
||||||
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
|
||||||
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
|
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
|
||||||
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
@@ -174,8 +164,6 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e h1:9vRrk9YW2BTzLP0VCB9ZDjU4cPqkg+IDWL7XgxA1yxQ=
|
|
||||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo=
|
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo=
|
||||||
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ func LoginOut(r *ghttp.Request) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 用户登录,成功返回用户信息,否则返回nil
|
// 用户登录,成功返回用户信息,否则返回nil
|
||||||
func signIn(username, password string, r *ghttp.Request) (error, *user.User) {
|
func signIn(username, password string, r *ghttp.Request) (error, *user.Entity) {
|
||||||
user, err := user.Model.Where("user_name=? and user_password=?", username, password).One()
|
user, err := user.Model.Where("user_name=? and user_password=?", username, password).One()
|
||||||
if err != nil && err != sql.ErrNoRows {
|
if err != nil && err != sql.ErrNoRows {
|
||||||
return err, nil
|
return err, nil
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import (
|
|||||||
"github.com/gogf/gf/frame/g"
|
"github.com/gogf/gf/frame/g"
|
||||||
"github.com/gogf/gf/net/ghttp"
|
"github.com/gogf/gf/net/ghttp"
|
||||||
"github.com/gogf/gf/text/gstr"
|
"github.com/gogf/gf/text/gstr"
|
||||||
|
"github.com/gogf/gf/util/gconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
//跨域处理中间件
|
//跨域处理中间件
|
||||||
@@ -28,7 +29,7 @@ func Auth(r *ghttp.Request) {
|
|||||||
adminId := user_service.GetLoginID(r)
|
adminId := user_service.GetLoginID(r)
|
||||||
//获取无需验证权限的用户id
|
//获取无需验证权限的用户id
|
||||||
for _, v := range service.NotCheckAuthAdminIds {
|
for _, v := range service.NotCheckAuthAdminIds {
|
||||||
if v == adminId {
|
if gconv.Uint64(v) == adminId {
|
||||||
r.Middleware.Next()
|
r.Middleware.Next()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user