fill_ckeck.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. log "gogs.baozhida.cn/zoie/OAuth-core/logger"
  11. "gogs.baozhida.cn/zoie/OAuth-core/service"
  12. "gorm.io/gorm"
  13. )
  14. type FillCheck struct {
  15. service.Service
  16. }
  17. // GetPage 获取FillCheck列表
  18. func (e *FillCheck) GetPage(c *dto.FillCheckGetPageReq, list *[]model.FillCheck, count *int64, p *actions.DataPermission) error {
  19. var err error
  20. var data model.FillCheck
  21. err = e.Orm.Model(&data).
  22. Scopes(
  23. cDto.MakeCondition(c.GetNeedSearch()),
  24. cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
  25. actions.Permission(data.TableName(), p),
  26. ).
  27. Preload("User").
  28. Find(list).Limit(-1).Offset(-1).
  29. Count(count).Error
  30. if err != nil {
  31. e.Log.Errorf("db error: %s", err)
  32. return global.GetFailedErr
  33. }
  34. return nil
  35. }
  36. // Get 获取FillCheck对象
  37. func (e *FillCheck) Get(d *dto.FillCheckGetReq, carInfoModel *model.FillCheck, p *actions.DataPermission) error {
  38. err := e.Orm.
  39. Scopes(actions.Permission(carInfoModel.TableName(), p)).
  40. First(carInfoModel, d.GetId()).Error
  41. if err != nil {
  42. e.Log.Errorf("db error: %s", err)
  43. if errors.Is(err, gorm.ErrRecordNotFound) {
  44. return global.GetNotFoundOrNoPermissionErr
  45. }
  46. return global.GetFailedErr
  47. }
  48. return nil
  49. }
  50. // Insert 创建FillCheck对象
  51. func (e *FillCheck) Insert(c *dto.FillCheckInsertReq) error {
  52. var err error
  53. var data model.FillCheck
  54. tx := e.Orm.Begin()
  55. defer func() {
  56. if err != nil {
  57. tx.Rollback()
  58. } else {
  59. tx.Commit()
  60. }
  61. }()
  62. // 1、通过高频ID查询气瓶内编码
  63. var gasCylinder model.GasCylinder
  64. err = tx.Where("uid = ?", c.ChipUid).First(&gasCylinder).Error
  65. if err != nil {
  66. tx.Rollback()
  67. log.Errorf("db error: %s", err)
  68. return global.CreateFailedErr
  69. }
  70. // 添加充气前后检查
  71. c.Generate(&data)
  72. // TODO 同步省平台 1.1.1.19 充气前后检查
  73. //ipr := data.GenProvFillCheck()
  74. data.OperationLogId = util.NewUuid()
  75. data.InnerCode = gasCylinder.InnerCode
  76. err = tx.Create(&data).Error
  77. if err != nil {
  78. e.Log.Errorf("db error: %s", err)
  79. return global.CreateFailedErr
  80. }
  81. c.Id = data.Id
  82. return nil
  83. }