team_buying_dao.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package dao
  2. import (
  3. "errors"
  4. "gorm.io/gorm"
  5. "youngee_b_api/app/entity"
  6. )
  7. type TeamBuyingDao struct{}
  8. func (d TeamBuyingDao) CreateTeamBuying(teamBuying entity.TeamBuying) (int64, error) {
  9. err := Db.Model(&entity.TeamBuying{}).Create(&teamBuying).Error
  10. if err != nil {
  11. return 0, err
  12. }
  13. return teamBuying.TeamBuyingID, nil
  14. }
  15. func (d TeamBuyingDao) UpdateTeamBuying(teamBuying entity.TeamBuying) (int64, error) {
  16. err := Db.Model(&entity.TeamBuying{}).Where("team_buying_id = ?", teamBuying.TeamBuyingID).Updates(teamBuying).Error
  17. if err != nil {
  18. return 0, err
  19. }
  20. return teamBuying.TeamBuyingID, nil
  21. }
  22. func (d TeamBuyingDao) DeleteTeamBuying(teamBuyingId int64) error {
  23. err := Db.Where("team_buying_id = ?", teamBuyingId).Delete(&entity.TeamBuying{}).Error
  24. return err
  25. }
  26. func (d TeamBuyingDao) GetTeamBuyingByID(teamBuyingId int64) (*entity.TeamBuying, error) {
  27. var teamBuying entity.TeamBuying
  28. err := Db.Debug().Where("team_buying_id = ?", teamBuyingId).First(&teamBuying).Error
  29. if err != nil {
  30. if errors.Is(err, gorm.ErrRecordNotFound) {
  31. return nil, nil
  32. } else {
  33. return nil, err
  34. }
  35. }
  36. return &teamBuying, nil
  37. }
  38. func (d TeamBuyingDao) GetTeamBuyingsByStoreId(storeId int64, page int, pageSize int) ([]entity.TeamBuying, int64, error) {
  39. var teamBuyings []entity.TeamBuying
  40. var total int64
  41. query := Db.Model(&entity.TeamBuying{}).Where("store_id = ? AND is_deleted = ?", storeId, 0)
  42. query.Count(&total)
  43. // 计算偏移量
  44. offset := (page - 1) * pageSize
  45. // 分页查询
  46. err := Db.Model(&entity.TeamBuying{}).Where("store_id = ? AND is_deleted = ?", storeId, 0).Order("created_at desc").Offset(offset).Limit(pageSize).Find(&teamBuyings).Error
  47. if err != nil {
  48. return nil, 0, err
  49. }
  50. return teamBuyings, total, nil
  51. }
  52. func (d TeamBuyingDao) GetTeamBuyingsByStoreIdAndTeamBuyingTitle(storeId int64, teamBuyingTitle string, page int, pageSize int) ([]entity.TeamBuying, int64, error) {
  53. var teamBuyings []entity.TeamBuying
  54. var total int64
  55. query := Db.Model(&entity.TeamBuying{}).Where("store_id = ? AND is_deleted = ?", storeId, 0)
  56. if teamBuyingTitle != "" {
  57. query = query.Where("team_buying_name LIKE ?", "%"+teamBuyingTitle+"%")
  58. }
  59. query.Count(&total)
  60. // 计算偏移量
  61. offset := (page - 1) * pageSize
  62. // 分页查询
  63. err := Db.Model(&entity.TeamBuying{}).Where("store_id = ? AND is_deleted = ?", storeId, 0).Order("created_at desc").Offset(offset).Limit(pageSize).Find(&teamBuyings).Error
  64. if err != nil {
  65. return nil, 0, err
  66. }
  67. return teamBuyings, total, nil
  68. }