curd.go 851 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package model
  2. type Curd struct {
  3. Model interface{}
  4. }
  5. func NewCurd(Model interface{}) *Curd {
  6. return &Curd{Model: Model}
  7. }
  8. func (c *Curd) GetList(dest interface{}) (err error) {
  9. err = db.Model(c.Model).Scan(dest).Error
  10. return
  11. }
  12. func (c *Curd) First(dest interface{}, conds ...interface{}) (err error) {
  13. err = db.Model(c.Model).First(dest, conds).Error
  14. return
  15. }
  16. func (c *Curd) Add(value interface{}) (err error) {
  17. err = db.Model(c.Model).Create(value).Error
  18. if err != nil {
  19. return err
  20. }
  21. err = db.Find(value).Error
  22. return
  23. }
  24. func (c *Curd) Edit(orig interface{}, new interface{}) (err error) {
  25. err = db.Model(orig).Updates(new).Error
  26. return
  27. }
  28. func (c *Curd) Delete(value interface{}, conds ...interface{}) (err error) {
  29. err = db.Model(c.Model).Delete(value, conds).Error
  30. return
  31. }