package repository import ( req "sghgogs.com/micro/shopping-service/domain/model/request" pb "sghgogs.com/micro/shopping-service/proto" ) func (u *Repository) GetCategoryList(query *pb.GetCategoryListRequest) ([]req.Category, int64, error) { tx := u.db.Model(&req.Category{}).Select("id, name, parent_category_id, created_at, updated_at"). Order("id desc") var totalCount int64 tx.Count(&totalCount) category := make([]req.Category, 0) return category, totalCount, tx.Limit(int(query.PageSize)).Offset(int((query.Page - 1) * query.PageSize)).Find(&category).Error } // GetAllCategories 获取所有 func (u *Repository) GetAllCategories() ([]req.Category, error) { categories := make([]req.Category, 0) return categories, u.db.Model(&req.Category{}).Select("id, name, parent_category_id"). Order("id desc").Find(&categories).Error } // CreateMultipleCategories 批量创建 func (u *Repository) CreateMultipleCategories(categories []req.Category) error { tx := u.db.Begin() // 错误处理 defer func() { if r := recover(); r != nil { tx.Rollback() } }() if err := tx.Create(&categories).Error; err != nil { tx.Rollback() return err } return tx.Commit().Error } func (u *Repository) DeleteCategory(categoryID int64) error { return u.db.Model(&req.Category{}).Delete(&req.Category{ID: categoryID}).Error }