public_host
4 years ago
2 changed files with 223 additions and 19 deletions
@ -1,5 +1,199 @@ |
|||
package main |
|||
|
|||
import ( |
|||
"fmt" |
|||
|
|||
"git.ouxuan.net/hasaki-service/hasaki-sdk/hskdb" |
|||
"git.ouxuan.net/hasaki-service/hasaki-sdk/hskgin" |
|||
) |
|||
|
|||
type MyTestr struct { |
|||
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