package dao import ( "acme-mana-server-go/db" "acme-mana-server-go/model" "acme-mana-server-go/vo" ) type AcmeUserDao struct { } func (dao *AcmeUserDao) Add(user *model.AcmeUser) *model.AcmeUser { conn := db.Db() conn.Create(user) return user } func (dao *AcmeUserDao) Get(id int) *model.AcmeUser { res := &model.AcmeUser{} conn := db.Db() tx := conn.First(res, id) if tx.Error != nil { panic(tx.Error) } return res } func (dao *AcmeUserDao) List() *[]model.AcmeUser { conn := db.Db() var res []model.AcmeUser conn.Find(&res) return &res } func (dao *AcmeUserDao) Edit(acmeUser *model.AcmeUser) *model.AcmeUser { conn := db.Db() conn.Save(acmeUser) return acmeUser } func (dao *AcmeUserDao) Delete(id int) { conn := db.Db() conn.Delete(&model.AcmeUser{}, id) } func (dao *AcmeUserDao) Page(req *vo.AcmeUserPageReq) (int64, *[]model.AcmeUser) { var total int64 var list []model.AcmeUser conn := db.Db() bean := req.Bean query := conn.Model(&model.Domain{}) if bean.Email != "" { query = query.Where("email like ?", "%"+bean.Email+"%") } query.Count(&total) if total == 0 { return total, &list } page := req.Page query.Offset(page.Size * (page.Page - 1)).Limit(page.Size) query.Find(&list) return total, &list }