inspect_record.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  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. "gogs.baozhida.cn/zoie/OAuth-core/service"
  10. "gorm.io/gorm"
  11. )
  12. type InspectRecord struct {
  13. service.Service
  14. }
  15. // GetPage 获取InspectRecord列表
  16. func (e *InspectRecord) GetPage(c *dto.InspectRecordGetPageReq, list *[]model.InspectRecord, count *int64, p *actions.DataPermission) error {
  17. var err error
  18. var data model.InspectRecord
  19. err = e.Orm.Model(&data).
  20. Joins("Customer").
  21. Joins("User").
  22. Scopes(
  23. cDto.MakeCondition(c.GetNeedSearch()),
  24. cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
  25. actions.Permission(data.TableName(), p),
  26. ).
  27. Where("name like ?", "%"+c.CustomerName+"%").
  28. Where("nick_name like ?", "%"+c.InspectorName+"%").
  29. Find(list).Limit(-1).Offset(-1).
  30. Count(count).Error
  31. if err != nil {
  32. e.Log.Errorf("db error: %s", err)
  33. return global.GetFailedErr
  34. }
  35. return nil
  36. }
  37. // Get 获取InspectRecord对象
  38. func (e *InspectRecord) Get(d *dto.InspectRecordGetReq, inspectRecordModel *model.InspectRecord, p *actions.DataPermission) error {
  39. err := e.Orm.
  40. Scopes(actions.Permission(inspectRecordModel.TableName(), p)).
  41. First(inspectRecordModel, d.GetId()).Error
  42. if err != nil {
  43. e.Log.Errorf("db error: %s", err)
  44. if errors.Is(err, gorm.ErrRecordNotFound) {
  45. return global.GetNotFoundOrNoPermissionErr
  46. }
  47. return global.GetFailedErr
  48. }
  49. return nil
  50. }
  51. func (e *InspectRecord) GetByOrder(d *dto.InspectRecordGetByOrderReq, inspectRecordModel *model.InspectRecord, p *actions.DataPermission) error {
  52. err := e.Orm.
  53. Scopes(
  54. cDto.MakeCondition(d.GetNeedSearch()),
  55. ).
  56. First(inspectRecordModel).Error
  57. if err != nil {
  58. e.Log.Errorf("db error: %s", err)
  59. if errors.Is(err, gorm.ErrRecordNotFound) {
  60. return global.GetNotFoundOrNoPermissionErr
  61. }
  62. return global.GetFailedErr
  63. }
  64. return nil
  65. }
  66. // Insert 创建InspectRecord对象
  67. func (e *InspectRecord) Insert(c *dto.InspectRecordInsertReq) error {
  68. var err error
  69. var data model.InspectRecord
  70. tx := e.Orm.Begin()
  71. defer func() {
  72. if err != nil {
  73. tx.Rollback()
  74. } else {
  75. tx.Commit()
  76. }
  77. }()
  78. //err = e.Orm.Where("order_id = ?", c.OrderId).First(&data).Error
  79. //if err != nil {
  80. // if errors.Is(err, gorm.ErrRecordNotFound) {
  81. // // 添加入户安全检查
  82. // c.Generate(&data)
  83. // // TODO 同步省平台 1.1.1.20 入户安全检查
  84. // //ipr := data.GenProvInspectRecord()
  85. // data.OperationLogId = util.NewUuid()
  86. // err = tx.Create(&data).Error
  87. // if err != nil {
  88. // e.Log.Errorf("db error: %s", err)
  89. // return global.CreateFailedErr
  90. // }
  91. // c.Id = data.Id
  92. // return nil
  93. // } else {
  94. // e.Log.Errorf("db error: %s", err)
  95. // return global.CreateFailedErr
  96. // }
  97. //
  98. //}
  99. c.Generate(&data)
  100. // TODO 同步省平台 1.1.1.20 入户安全检查
  101. //ipr := data.GenProvInspectRecord()
  102. err = tx.Create(&data).Error
  103. if err != nil {
  104. e.Log.Errorf("db error: %s", err)
  105. return global.UpdateFailedErr
  106. }
  107. //修改客户入户安全检查状态 0-待整改 1-整改中 2-已整改 -1 合格
  108. var CustomerModel model.Customer
  109. err = e.Orm.Where("id = ?", c.CustomerId).First(&CustomerModel).Error
  110. if err != nil {
  111. e.Log.Errorf("db error: %s", err)
  112. if errors.Is(err, gorm.ErrRecordNotFound) {
  113. return global.UpdateNotFoundOrNoPermissionErr
  114. }
  115. return global.UpdateFailedErr
  116. }
  117. CustomerModel.State = data.State
  118. err = tx.Save(&CustomerModel).Error
  119. if err != nil {
  120. e.Log.Errorf("db error: %s", err)
  121. return global.UpdateFailedErr
  122. }
  123. // 订单为配送中 已检查
  124. var orderModel model.Order
  125. // 查询订单是否存在
  126. err = e.Orm.Where("order_id = ?", c.OrderId).First(&orderModel).Error
  127. if err != nil {
  128. e.Log.Errorf("db error: %s", err)
  129. if errors.Is(err, gorm.ErrRecordNotFound) {
  130. return global.CreateFailedErr
  131. }
  132. return global.CreateFailedErr
  133. }
  134. orderModel.State = 6
  135. err = tx.Save(&orderModel).Error
  136. if err != nil {
  137. e.Log.Errorf("db error: %s", err)
  138. return global.UpdateFailedErr
  139. }
  140. c.Id = data.Id
  141. return nil
  142. }
  143. // Update 修改InspectRecord对象
  144. func (e *InspectRecord) Update(c *dto.InspectRecordInsertReq) error {
  145. var err error
  146. tx := e.Orm.Begin()
  147. defer func() {
  148. if err != nil {
  149. tx.Rollback()
  150. } else {
  151. tx.Commit()
  152. }
  153. }()
  154. var inspectRecordModel = model.InspectRecord{}
  155. // 查询入户安全检查是否存在
  156. err = e.Orm.First(&inspectRecordModel, c.GetId()).Error
  157. if err != nil {
  158. e.Log.Errorf("db error: %s", err)
  159. if errors.Is(err, gorm.ErrRecordNotFound) {
  160. return global.UpdateNotFoundOrNoPermissionErr
  161. }
  162. return global.UpdateFailedErr
  163. }
  164. c.UpdateGenerate(&inspectRecordModel)
  165. err = tx.Save(&inspectRecordModel).Error
  166. if err != nil {
  167. e.Log.Errorf("db error: %s", err)
  168. return global.UpdateFailedErr
  169. }
  170. // 修改客户入户安全检查状态
  171. var CustomerModel model.Customer
  172. err = e.Orm.Where("id = ?", inspectRecordModel.CustomerId).First(&CustomerModel).Error
  173. if err != nil {
  174. e.Log.Errorf("db error: %s", err)
  175. if errors.Is(err, gorm.ErrRecordNotFound) {
  176. return global.UpdateNotFoundOrNoPermissionErr
  177. }
  178. return global.UpdateFailedErr
  179. }
  180. CustomerModel.State = inspectRecordModel.State
  181. err = tx.Save(&CustomerModel).Error
  182. if err != nil {
  183. e.Log.Errorf("db error: %s", err)
  184. return global.UpdateFailedErr
  185. }
  186. c.Id = inspectRecordModel.Id
  187. return nil
  188. }