category.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package repository
  2. import (
  3. req "sghgogs.com/micro/shopping-service/domain/model/request"
  4. pb "sghgogs.com/micro/shopping-service/proto"
  5. )
  6. func (u *Repository) GetCategoryList(query *pb.GetCategoryListRequest) ([]req.Category, int64, error) {
  7. tx := u.db.Model(&req.Category{}).Select("id, name, parent_category_id, created_at, updated_at").
  8. Order("id desc")
  9. var totalCount int64
  10. tx.Count(&totalCount)
  11. category := make([]req.Category, 0)
  12. return category, totalCount, tx.Limit(int(query.PageSize)).Offset(int((query.Page - 1) * query.PageSize)).Find(&category).Error
  13. }
  14. // GetAllCategories 获取所有
  15. func (u *Repository) GetAllCategories() ([]req.Category, error) {
  16. categories := make([]req.Category, 0)
  17. return categories, u.db.Model(&req.Category{}).Select("id, name, parent_category_id").
  18. Order("id desc").Find(&categories).Error
  19. }
  20. // CreateMultipleCategories 批量创建
  21. func (u *Repository) CreateMultipleCategories(categories []req.Category) error {
  22. tx := u.db.Begin()
  23. // 错误处理
  24. defer func() {
  25. if r := recover(); r != nil {
  26. tx.Rollback()
  27. }
  28. }()
  29. if err := tx.Create(&categories).Error; err != nil {
  30. tx.Rollback()
  31. return err
  32. }
  33. return tx.Commit().Error
  34. }
  35. func (u *Repository) DeleteCategory(categoryID int64) error {
  36. return u.db.Model(&req.Category{}).Delete(&req.Category{ID: categoryID}).Error
  37. }