ServiceItem.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package services
  2. import (
  3. "ERP_storage/dto"
  4. db "ERP_storage/initialize"
  5. "ERP_storage/logs"
  6. models "ERP_storage/models/ContractReview"
  7. "errors"
  8. "git.baozhida.cn/ERP_libs/lib"
  9. "gorm.io/gorm"
  10. )
  11. type ServiceItem struct {
  12. }
  13. func (e *ServiceItem) GetPage(c *dto.ServiceItemPageReq) (list []models.ServiceItem, cnt int64) {
  14. var err error
  15. if c.GetPageSize() == 9999 {
  16. err = db.DB.Model(&models.ServiceItem{}).
  17. Scopes(
  18. dto.MakeCondition(c.GetNeedSearch()),
  19. dto.WithNormalState(),
  20. ).
  21. Preload("ServiceType").
  22. Find(&list).Limit(-1).Offset(-1).
  23. Count(&cnt).Error
  24. } else {
  25. err = db.DB.Model(&models.ServiceItem{}).
  26. Scopes(
  27. dto.MakeCondition(c.GetNeedSearch()),
  28. dto.Paginate(c.GetPageSize(), c.GetPageIndex()),
  29. dto.WithNormalState(),
  30. ).
  31. Preload("ServiceType").
  32. Find(&list).Limit(-1).Offset(-1).
  33. Count(&cnt).Error
  34. }
  35. if err != nil {
  36. logs.Error("db error: %s ", err)
  37. return
  38. }
  39. return
  40. }
  41. func (e *ServiceItem) Get(Id int) (r models.ServiceItem, err error) {
  42. err = db.DB.Scopes(dto.WithNormalState()).First(&r, Id).Error
  43. if err != nil {
  44. logs.Error("db error: %s", err)
  45. return
  46. }
  47. return
  48. }
  49. // 添加
  50. func (e *ServiceItem) Insert(c *dto.ServiceItemInsertReq) (id int, err error) {
  51. var data models.ServiceItem
  52. err = db.DB.Scopes(dto.WithNormalState()).Where("t_name = ?", c.T_name).First(&data).Error
  53. if err != nil {
  54. // 没有则创建
  55. if errors.Is(err, gorm.ErrRecordNotFound) {
  56. c.Generate(&data)
  57. err = db.DB.Create(&data).Error
  58. if err != nil {
  59. logs.Error("db error: %s", err)
  60. return
  61. }
  62. id = data.Id
  63. return
  64. }
  65. logs.Error("db error: %s", err)
  66. return
  67. }
  68. id = data.Id
  69. return
  70. }
  71. // 修改
  72. func (e *ServiceItem) Update(c *dto.ServiceItemUpdateReq) error {
  73. var serviceItem = models.ServiceItem{}
  74. err := db.DB.Scopes(dto.WithNormalState()).First(&serviceItem, c.GetId()).Error
  75. if err != nil {
  76. logs.Error("db error: %s", err)
  77. return err
  78. }
  79. c.Generate(&serviceItem)
  80. err = db.DB.Save(&serviceItem).Error
  81. if err != nil {
  82. logs.Error("db error: %s", err)
  83. return err
  84. }
  85. return nil
  86. }
  87. // 删除
  88. func (e *ServiceItem) Delete(c *dto.ServiceItemDeleteReq) error {
  89. var serviceItem = models.ServiceItem{}
  90. err := db.DB.Scopes(dto.WithNormalState()).First(&serviceItem, c.GetId()).Error
  91. if err != nil {
  92. logs.Error("db error: %s", err)
  93. return err
  94. }
  95. serviceItem.T_State = 0
  96. err = db.DB.Save(&serviceItem).Error
  97. if err != nil {
  98. logs.Error(lib.FuncName(), err)
  99. }
  100. return err
  101. }