inspect_record.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package service
  2. import (
  3. "errors"
  4. "gas-cylinder-api/app/admin/model"
  5. "gas-cylinder-api/app/admin/service/dto"
  6. "gas-cylinder-api/common/actions"
  7. cDto "gas-cylinder-api/common/dto"
  8. "gas-cylinder-api/common/global"
  9. "github.com/alibaba/sentinel-golang/util"
  10. "gogs.baozhida.cn/zoie/OAuth-core/service"
  11. "gorm.io/gorm"
  12. )
  13. type InspectRecord struct {
  14. service.Service
  15. }
  16. // GetPage 获取InspectRecord列表
  17. func (e *InspectRecord) GetPage(c *dto.InspectRecordGetPageReq, list *[]model.InspectRecord, count *int64, p *actions.DataPermission) error {
  18. var err error
  19. var data model.InspectRecord
  20. err = e.Orm.Model(&data).
  21. Joins("Customer").
  22. Joins("User").
  23. Scopes(
  24. cDto.MakeCondition(c.GetNeedSearch()),
  25. cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
  26. actions.Permission(data.TableName(), p),
  27. ).
  28. Where("principal_name like ?", "%"+c.CustomerName+"%").
  29. Where("nick_name like ?", "%"+c.InspectorName+"%").
  30. Find(list).Limit(-1).Offset(-1).
  31. Count(count).Error
  32. if err != nil {
  33. e.Log.Errorf("db error: %s", err)
  34. return global.GetFailedErr
  35. }
  36. return nil
  37. }
  38. // Get 获取InspectRecord对象
  39. func (e *InspectRecord) Get(d *dto.InspectRecordGetReq, inspectRecordModel *model.InspectRecord, p *actions.DataPermission) error {
  40. err := e.Orm.
  41. Scopes(actions.Permission(inspectRecordModel.TableName(), p)).
  42. First(inspectRecordModel, d.GetId()).Error
  43. if err != nil {
  44. e.Log.Errorf("db error: %s", err)
  45. if errors.Is(err, gorm.ErrRecordNotFound) {
  46. return global.GetNotFoundOrNoPermissionErr
  47. }
  48. return global.GetFailedErr
  49. }
  50. return nil
  51. }
  52. // Insert 创建InspectRecord对象
  53. func (e *InspectRecord) Insert(c *dto.InspectRecordInsertReq) error {
  54. var err error
  55. var data model.InspectRecord
  56. tx := e.Orm.Begin()
  57. defer func() {
  58. if err != nil {
  59. tx.Rollback()
  60. } else {
  61. tx.Commit()
  62. }
  63. }()
  64. err = e.Orm.Where("order_id = ?", c.OrderId).First(&data).Error
  65. if err != nil {
  66. if errors.Is(err, gorm.ErrRecordNotFound) {
  67. // 添加入户安全检查
  68. c.Generate(&data)
  69. // TODO 同步省平台 1.1.1.20 入户安全检查
  70. //ipr := data.GenProvInspectRecord()
  71. data.OperationLogId = util.NewUuid()
  72. err = tx.Create(&data).Error
  73. if err != nil {
  74. e.Log.Errorf("db error: %s", err)
  75. return global.CreateFailedErr
  76. }
  77. c.Id = data.Id
  78. return nil
  79. } else {
  80. e.Log.Errorf("db error: %s", err)
  81. return global.CreateFailedErr
  82. }
  83. }
  84. c.UpdateGenerate(&data)
  85. // TODO 同步省平台 1.1.1.20 入户安全检查
  86. //ipr := data.GenProvInspectRecord()
  87. err = tx.Save(&data).Error
  88. if err != nil {
  89. e.Log.Errorf("db error: %s", err)
  90. return global.UpdateFailedErr
  91. }
  92. c.Id = data.Id
  93. return nil
  94. }
  95. // Update 修改InspectRecord对象
  96. func (e *InspectRecord) Update(c *dto.InspectRecordInsertReq) error {
  97. var err error
  98. tx := e.Orm.Begin()
  99. defer func() {
  100. if err != nil {
  101. tx.Rollback()
  102. } else {
  103. tx.Commit()
  104. }
  105. }()
  106. var inspectRecordModel = model.InspectRecord{}
  107. // 查询角色是否存在
  108. err = e.Orm.First(&inspectRecordModel, c.GetId()).Error
  109. if err != nil {
  110. e.Log.Errorf("db error: %s", err)
  111. if errors.Is(err, gorm.ErrRecordNotFound) {
  112. return global.UpdateNotFoundOrNoPermissionErr
  113. }
  114. return global.UpdateFailedErr
  115. }
  116. c.UpdateGenerate(&inspectRecordModel)
  117. err = tx.Save(&inspectRecordModel).Error
  118. if err != nil {
  119. e.Log.Errorf("db error: %s", err)
  120. return global.UpdateFailedErr
  121. }
  122. c.Id = inspectRecordModel.Id
  123. return nil
  124. }