fill_ckeck.go 2.2 KB

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