2 changed files with 223 additions and 19 deletions
@ -1,5 +1,199 @@ |
|||||
package main |
package main |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
|
||||
|
"git.ouxuan.net/hasaki-service/hasaki-sdk/hskdb" |
||||
|
"git.ouxuan.net/hasaki-service/hasaki-sdk/hskgin" |
||||
|
) |
||||
|
|
||||
type MyTestr struct { |
type MyTestr struct { |
||||
Id int |
Id int |
||||
} |
} |
||||
|
|
||||
|
func (that *MyTestr) where() (q interface{}, args []interface{}) { |
||||
|
//todo 根据需求修改
|
||||
|
return "`id`=?", []interface{}{ |
||||
|
that.Id, |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr) Save(isAllCols ...bool) (err error) { |
||||
|
tmp := MyTestr{} |
||||
|
whereQuery, whereArgs := that.where() |
||||
|
hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Get(&tmp) |
||||
|
if tmp.Id == 0 { |
||||
|
_, err = hskdb.GetXormAuto().Insert(that) |
||||
|
} else { |
||||
|
if len(isAllCols) > 0 && isAllCols[0] { |
||||
|
_, err = hskdb.GetXormAuto().AllCols().Where(whereQuery, whereArgs...).Update(that) |
||||
|
} else { |
||||
|
_, err = hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Update(that) |
||||
|
} |
||||
|
} |
||||
|
return err |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr) Load() (err error) { |
||||
|
whereQuery, whereArgs := that.where() |
||||
|
_, err = hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Get(&that) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr) Data() (data []MyTestr) { |
||||
|
hskdb.GetXormAuto().OrderBy("id desc").Find(&data) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr) PageData(page, pageSize int) (data []MyTestr, count int64) { |
||||
|
count, _ = hskdb.GetXormAuto().OrderBy("id desc").Limit(pageSize, page*pageSize).FindAndCount(&data) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr) Delete() (err error) { |
||||
|
whereQuery, whereArgs := that.where() |
||||
|
_, err = hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Delete(&that) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//该方法请不要放在db文件中
|
||||
|
func InitializationMyTestr(router *hskgin.GinHelper) { |
||||
|
var authority = func(ctx *hskgin.GinContextHelper) { |
||||
|
//todo 权限控制
|
||||
|
} |
||||
|
|
||||
|
router.Any("/?????/MyTestr/get", func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr{} |
||||
|
ctx.Bind(&req) |
||||
|
err := req.Load() |
||||
|
ctx.CheckErrDisplayByError(err) |
||||
|
ctx.DisplayByData(req) |
||||
|
}) |
||||
|
|
||||
|
router.Any("/?????/MyTestr/save", func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr{} |
||||
|
ctx.Bind(&req) |
||||
|
err := req.Save() |
||||
|
ctx.CheckErrDisplayByError(err) |
||||
|
err = req.Load() |
||||
|
ctx.CheckErrDisplayByError(err) |
||||
|
ctx.DisplayByData(req) |
||||
|
}) |
||||
|
|
||||
|
router.Any("/?????/MyTestr/data", func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr{} |
||||
|
ctx.Bind(&req) |
||||
|
data := req.Data() |
||||
|
ctx.DisplayByData(data) |
||||
|
}) |
||||
|
|
||||
|
router.Any("/?????/MyTestr/list", func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr{} |
||||
|
ctx.Bind(&req) |
||||
|
page := ctx.ParamRequired2Page(true) |
||||
|
data, count := req.PageData(page, 10) |
||||
|
ctx.DisplayByPage(data, count) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
type MyTestr2 struct { |
||||
|
Id int |
||||
|
} |
||||
|
|
||||
|
type MyTestr3 struct { |
||||
|
Id int |
||||
|
Mi int |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr3) where() (q interface{}, args []interface{}) { |
||||
|
//todo 根据需求修改
|
||||
|
return "`id`=?", []interface{}{ |
||||
|
that.Id, |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr3) Save(isAllCols ...bool) (err error) { |
||||
|
tmp := MyTestr3{} |
||||
|
whereQuery, whereArgs := that.where() |
||||
|
hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Get(&tmp) |
||||
|
if tmp.Id == 0 { |
||||
|
_, err = hskdb.GetXormAuto().Insert(that) |
||||
|
} else { |
||||
|
if len(isAllCols) > 0 && isAllCols[0] { |
||||
|
_, err = hskdb.GetXormAuto().AllCols().Where(whereQuery, whereArgs...).Update(that) |
||||
|
} else { |
||||
|
_, err = hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Update(that) |
||||
|
} |
||||
|
} |
||||
|
return err |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr3) Load() (err error) { |
||||
|
whereQuery, whereArgs := that.where() |
||||
|
_, err = hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Get(&that) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr3) Data() (data []MyTestr3) { |
||||
|
hskdb.GetXormAuto().OrderBy("id desc").Find(&data) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr3) PageData(page, pageSize int) (data []MyTestr3, count int64) { |
||||
|
count, _ = hskdb.GetXormAuto().OrderBy("id desc").Limit(pageSize, page*pageSize).FindAndCount(&data) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (that *MyTestr3) Delete() (err error) { |
||||
|
whereQuery, whereArgs := that.where() |
||||
|
_, err = hskdb.GetXormAuto().Where(whereQuery, whereArgs...).Delete(&that) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//该方法请不要放在db文件中
|
||||
|
func InitializationMyTestr3(prefix string, router *hskgin.GinHelper) { |
||||
|
var authority = func(ctx *hskgin.GinContextHelper) { |
||||
|
//todo 权限控制
|
||||
|
} |
||||
|
|
||||
|
router.Any(fmt.Sprintf("/%s/MyTestr3/get", prefix), func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr3{} |
||||
|
ctx.Bind(&req) |
||||
|
err := req.Load() |
||||
|
ctx.CheckErrDisplayByError(err) |
||||
|
ctx.DisplayByData(req) |
||||
|
}) |
||||
|
|
||||
|
router.Any(fmt.Sprintf("/%s/MyTestr3/save", prefix), func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr3{} |
||||
|
ctx.Bind(&req) |
||||
|
err := req.Save() |
||||
|
ctx.CheckErrDisplayByError(err) |
||||
|
err = req.Load() |
||||
|
ctx.CheckErrDisplayByError(err) |
||||
|
ctx.DisplayByData(req) |
||||
|
}) |
||||
|
|
||||
|
router.Any(fmt.Sprintf("/%s/MyTestr3/data", prefix), func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr3{} |
||||
|
ctx.Bind(&req) |
||||
|
data := req.Data() |
||||
|
ctx.DisplayByData(data) |
||||
|
}) |
||||
|
|
||||
|
router.Any(fmt.Sprintf("/%s/MyTestr3/list", prefix), func(ctx *hskgin.GinContextHelper) { |
||||
|
authority(ctx) |
||||
|
req := MyTestr3{} |
||||
|
ctx.Bind(&req) |
||||
|
page := ctx.ParamRequired2Page(true) |
||||
|
data, count := req.PageData(page, 10) |
||||
|
ctx.DisplayByPage(data, count) |
||||
|
}) |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue