gas_cylinder.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package service
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "gas-cylinder-api/app/admin/model"
  6. "gas-cylinder-api/app/admin/service/dto"
  7. "gas-cylinder-api/common/actions"
  8. cDto "gas-cylinder-api/common/dto"
  9. "gas-cylinder-api/common/global"
  10. model2 "gas-cylinder-api/common/model"
  11. "github.com/go-resty/resty/v2"
  12. "gogs.baozhida.cn/zoie/OAuth-core/service"
  13. "gorm.io/gorm"
  14. )
  15. type GasCylinder struct {
  16. service.Service
  17. }
  18. // GetPage 获取GasCylinder列表
  19. func (e *GasCylinder) GetPage(c *dto.GasCylinderGetPageReq, list *[]model.GasCylinder, count *int64, p *actions.DataPermission) error {
  20. var err error
  21. var data model.GasCylinder
  22. err = e.Orm.Model(&data).
  23. Scopes(
  24. cDto.MakeCondition(c.GetNeedSearch()),
  25. cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
  26. actions.Permission(data.TableName(), p),
  27. ).
  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 获取GasCylinder对象
  37. func (e *GasCylinder) Get(d *dto.GasCylinderGetReq, data *model.ProvGasCylinder, p *actions.DataPermission) error {
  38. // TODO 通过省平台获取气瓶详情
  39. client := resty.New()
  40. resp, err := client.R().Get("https://mock.apifox.com/m2/4037076-0-default/151344663")
  41. if err != nil {
  42. e.Log.Errorf("db error: %s", err)
  43. return global.GetFailedErr
  44. }
  45. err = json.Unmarshal(resp.Body(), data)
  46. if err != nil {
  47. e.Log.Errorf("json Unmarshal err: %s", err)
  48. return global.GetFailedErr
  49. }
  50. obj := model.GasCylinder{
  51. ProVariety: data.ProVariety,
  52. ProName: data.ProName,
  53. ProNo: data.ProNo,
  54. FillMedia: data.FillMedia,
  55. MakeUnit: data.MakeUnit,
  56. MakeTime: data.MakeTime,
  57. WorkPressure: data.WorkPressure,
  58. //InnerCode: data.InnerCode,
  59. Volume: data.Volume,
  60. CheckTime: data.CheckTime,
  61. NextCheckTime: data.NextCheckTime,
  62. ProUuid: data.ProUuid,
  63. Uid: data.Uid,
  64. ProductId: data.ProductId,
  65. DeadlineTime: data.DeadlineTime,
  66. CheckInTime: data.CheckInTime,
  67. DeptBy: model2.DeptBy{
  68. DeptId: p.DeptId,
  69. },
  70. }
  71. //e.Orm.Create(&obj)
  72. err = e.Orm.Where("inner_code = ?", d.GetInnerCode()).Updates(&obj).Error
  73. if err != nil {
  74. e.Log.Errorf("db error: %s", err)
  75. if errors.Is(err, gorm.ErrRecordNotFound) {
  76. return global.GetNotFoundOrNoPermissionErr
  77. }
  78. return global.GetFailedErr
  79. }
  80. data.InnerCode = d.InnerCode
  81. return nil
  82. }