inspect_record.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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.Generate(&data)
  85. // TODO 同步省平台 1.1.1.20 入户安全检查
  86. //ipr := data.GenProvInspectRecord()
  87. err = tx.Create(&data).Error
  88. if err != nil {
  89. e.Log.Errorf("db error: %s", err)
  90. return global.UpdateFailedErr
  91. }
  92. // 修改客户入户安全检查状态
  93. var CustomerModel model.Customer
  94. err = e.Orm.Where("id = ?", c.CreateBy).First(&CustomerModel).Error
  95. if err != nil {
  96. e.Log.Errorf("db error: %s", err)
  97. if errors.Is(err, gorm.ErrRecordNotFound) {
  98. return global.UpdateNotFoundOrNoPermissionErr
  99. }
  100. return global.UpdateFailedErr
  101. }
  102. CustomerModel.State = data.State
  103. err = tx.Save(&CustomerModel).Error
  104. if err != nil {
  105. e.Log.Errorf("db error: %s", err)
  106. return global.UpdateFailedErr
  107. }
  108. c.Id = data.Id
  109. return nil
  110. }
  111. // Update 修改InspectRecord对象
  112. func (e *InspectRecord) Update(c *dto.InspectRecordInsertReq) error {
  113. var err error
  114. tx := e.Orm.Begin()
  115. defer func() {
  116. if err != nil {
  117. tx.Rollback()
  118. } else {
  119. tx.Commit()
  120. }
  121. }()
  122. var inspectRecordModel = model.InspectRecord{}
  123. // 查询角色是否存在
  124. err = e.Orm.First(&inspectRecordModel, c.GetId()).Error
  125. if err != nil {
  126. e.Log.Errorf("db error: %s", err)
  127. if errors.Is(err, gorm.ErrRecordNotFound) {
  128. return global.UpdateNotFoundOrNoPermissionErr
  129. }
  130. return global.UpdateFailedErr
  131. }
  132. c.UpdateGenerate(&inspectRecordModel)
  133. err = tx.Save(&inspectRecordModel).Error
  134. if err != nil {
  135. e.Log.Errorf("db error: %s", err)
  136. return global.UpdateFailedErr
  137. }
  138. // 修改客户入户安全检查状态
  139. var CustomerModel model.Customer
  140. err = e.Orm.Where("id = ?", c.CreateBy).First(&CustomerModel).Error
  141. if err != nil {
  142. e.Log.Errorf("db error: %s", err)
  143. if errors.Is(err, gorm.ErrRecordNotFound) {
  144. return global.UpdateNotFoundOrNoPermissionErr
  145. }
  146. return global.UpdateFailedErr
  147. }
  148. CustomerModel.State = inspectRecordModel.State
  149. err = tx.Save(&CustomerModel).Error
  150. if err != nil {
  151. e.Log.Errorf("db error: %s", err)
  152. return global.UpdateFailedErr
  153. }
  154. c.Id = inspectRecordModel.Id
  155. return nil
  156. }