70 lines
1.5 KiB
Go
70 lines
1.5 KiB
Go
|
package repo
|
||
|
|
||
|
import (
|
||
|
"admin/apps/mockpro/domain/entity"
|
||
|
"admin/apps/mockpro/internal/model"
|
||
|
"admin/internal/errcode"
|
||
|
"gorm.io/gorm"
|
||
|
)
|
||
|
|
||
|
type IBanRepo interface {
|
||
|
List(pageNo, pageLen int) ([]*entity.Ban, error)
|
||
|
Create(et *entity.Ban) error
|
||
|
Edit(et *entity.Ban) error
|
||
|
Delete(id int) error
|
||
|
}
|
||
|
|
||
|
func NewBanRepo(db *gorm.DB) IBanRepo {
|
||
|
return newBanRepoImpl(db)
|
||
|
}
|
||
|
|
||
|
type BanRepoImpl struct {
|
||
|
db *gorm.DB
|
||
|
}
|
||
|
|
||
|
func newBanRepoImpl(db *gorm.DB) *BanRepoImpl {
|
||
|
return &BanRepoImpl{db: db}
|
||
|
}
|
||
|
|
||
|
func (repo *BanRepoImpl) List(pageNo, pageLen int) ([]*entity.Ban, error) {
|
||
|
list := make([]*model.Ban, 0)
|
||
|
err := repo.db.Find(&list).Error
|
||
|
if err != nil {
|
||
|
return nil, errcode.New(errcode.DBError, "find Ban error:%v", err)
|
||
|
}
|
||
|
|
||
|
entityList := make([]*entity.Ban, 0, len(list))
|
||
|
for _, Ban := range list {
|
||
|
entityList = append(entityList, entity.FromBanPo(Ban))
|
||
|
}
|
||
|
|
||
|
return entityList, nil
|
||
|
}
|
||
|
|
||
|
func (repo *BanRepoImpl) Create(et *entity.Ban) error {
|
||
|
po := et.ToPo()
|
||
|
err := repo.db.Create(po).Error
|
||
|
if err != nil {
|
||
|
return errcode.New(errcode.DBError, "create obj:%+v error:%v", et, err)
|
||
|
}
|
||
|
et.Id = po.ID
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (repo *BanRepoImpl) Edit(et *entity.Ban) error {
|
||
|
po := et.ToPo()
|
||
|
err := repo.db.Where("id=?", et.Id).Updates(po).Error
|
||
|
if err != nil {
|
||
|
return errcode.New(errcode.DBError, "edit obj:%+v error:%v", et, err)
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (repo *BanRepoImpl) Delete(id int) error {
|
||
|
err := repo.db.Where("id=?", id).Unscoped().Delete(&model.Ban{}).Error
|
||
|
if err != nil {
|
||
|
return errcode.New(errcode.DBError, "delete obj:%+v error:%v", id, err)
|
||
|
}
|
||
|
return nil
|
||
|
}
|