123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- package service
- import (
- "encoding/json"
- "errors"
- "fmt"
- "gas-cylinder-api/app/admin/model"
- "gas-cylinder-api/app/admin/service/dto"
- "gas-cylinder-api/common/actions"
- cDto "gas-cylinder-api/common/dto"
- "gas-cylinder-api/common/global"
- model2 "gas-cylinder-api/common/model"
- "github.com/go-resty/resty/v2"
- "gogs.baozhida.cn/zoie/OAuth-core/service"
- "gorm.io/gorm"
- "math/rand"
- "time"
- )
- type GasCylinder struct {
- service.Service
- }
- // GetPage 获取GasCylinder列表
- func (e *GasCylinder) GetPage(c *dto.GasCylinderGetPageReq, list *[]model.GasCylinder, count *int64, p *actions.DataPermission) error {
- var err error
- var data model.GasCylinder
- err = e.Orm.Model(&data).
- Scopes(
- cDto.MakeCondition(c.GetNeedSearch()),
- cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
- actions.Permission(data.TableName(), p),
- ).
- Find(list).Limit(-1).Offset(-1).
- Count(count).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.GetFailedErr
- }
- return nil
- }
- // Get 获取GasCylinder对象
- func (e *GasCylinder) Get(d *dto.GasCylinderGetReq, data *model.ProvGasCylinder, p *actions.DataPermission) error {
- // TODO 通过省平台获取气瓶详情
- client := resty.New()
- resp, err := client.R().Get("https://mock.apifox.com/m2/4037076-0-default/151344663")
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.GetFailedErr
- }
- err = json.Unmarshal(resp.Body(), data)
- if err != nil {
- e.Log.Errorf("json Unmarshal err: %s", err)
- return global.GetFailedErr
- }
- obj := model.GasCylinder{
- ProVariety: data.ProVariety,
- ProName: data.ProName,
- ProNo: data.ProNo,
- FillMedia: data.FillMedia,
- MakeUnit: data.MakeUnit,
- MakeTime: data.MakeTime,
- WorkPressure: data.WorkPressure,
- //InnerCode: data.InnerCode,
- Volume: data.Volume,
- CheckTime: data.CheckTime,
- NextCheckTime: data.NextCheckTime,
- ProUuid: data.ProUuid,
- //Uid: data.Uid,
- ProductId: data.ProductId,
- DeadlineTime: data.DeadlineTime,
- CheckInTime: data.CheckInTime,
- DeptBy: model2.DeptBy{
- DeptId: p.DeptId,
- },
- }
- //e.Orm.Create(&obj)
- err = e.Orm.Where("inner_code = ?", d.GetInnerCode()).Updates(&obj).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- if errors.Is(err, gorm.ErrRecordNotFound) {
- return global.GetNotFoundOrNoPermissionErr
- }
- return global.GetFailedErr
- }
- data.InnerCode = d.InnerCode
- return nil
- }
- func (e *GasCylinder) GetByUid(d *dto.GasCylinderGetByUidReq, data *model.ProvGasCylinder, p *actions.DataPermission) error {
- // TODO 通过省平台获取气瓶详情
- client := resty.New()
- // 1、通过高频ID查询气瓶内编码
- var gasCylinder model.GasCylinder
- err := e.Orm.Where("uid = ?", d.ChipUid).First(&gasCylinder).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.CreateFailedErr
- }
- resp, err := client.R().Get("https://mock.apifox.com/m2/4037076-0-default/151344663")
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.GetFailedErr
- }
- err = json.Unmarshal(resp.Body(), data)
- if err != nil {
- e.Log.Errorf("json Unmarshal err: %s", err)
- return global.GetFailedErr
- }
- obj := model.GasCylinder{
- ProVariety: data.ProVariety,
- ProName: data.ProName,
- ProNo: data.ProNo,
- FillMedia: data.FillMedia,
- MakeUnit: data.MakeUnit,
- MakeTime: data.MakeTime,
- WorkPressure: data.WorkPressure,
- //InnerCode: data.InnerCode,
- Volume: data.Volume,
- CheckTime: data.CheckTime,
- NextCheckTime: data.NextCheckTime,
- ProUuid: data.ProUuid,
- //Uid: data.Uid,
- ProductId: data.ProductId,
- DeadlineTime: data.DeadlineTime,
- CheckInTime: data.CheckInTime,
- DeptBy: model2.DeptBy{
- DeptId: p.DeptId,
- },
- }
- //e.Orm.Create(&obj)
- err = e.Orm.Where("inner_code = ?", gasCylinder.InnerCode).Updates(&obj).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- if errors.Is(err, gorm.ErrRecordNotFound) {
- return global.GetNotFoundOrNoPermissionErr
- }
- return global.GetFailedErr
- }
- data.InnerCode = gasCylinder.InnerCode
- data.Uid = gasCylinder.Uid
- return nil
- }
- func (e *GasCylinder) Mock(d *dto.GasCylinderMockReq) error {
- // TODO 通过省平台获取气瓶详情
- for i := 0; i < 20; i++ {
- rand.New(rand.NewSource(time.Now().UnixNano()))
- // 生成随机数后八位
- randomSuffix := rand.Intn(9999999999999999)
- randomSuffix2 := rand.Intn(999999999999)
- // 组合成16位随机数
- InnerCode := fmt.Sprintf("%16d", randomSuffix)
- uid := fmt.Sprintf("%12d", randomSuffix2)
- client := resty.New()
- resp, err := client.R().Get("https://mock.apifox.com/m2/4037076-0-default/151344663")
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.GetFailedErr
- }
- var data model.GasCylinder
- err = json.Unmarshal(resp.Body(), &data)
- if err != nil {
- e.Log.Errorf("json Unmarshal err: %s", err)
- return global.GetFailedErr
- }
- obj := model.GasCylinder{
- ProVariety: data.ProVariety,
- ProName: data.ProName,
- ProNo: data.ProNo,
- FillMedia: data.FillMedia,
- MakeUnit: data.MakeUnit,
- MakeTime: data.MakeTime,
- WorkPressure: data.WorkPressure,
- InnerCode: InnerCode,
- Volume: data.Volume,
- CheckTime: data.CheckTime,
- NextCheckTime: data.NextCheckTime,
- ProUuid: data.ProUuid,
- Uid: uid,
- ProductId: data.ProductId,
- DeadlineTime: data.DeadlineTime,
- CheckInTime: data.CheckInTime,
- DeptBy: model2.DeptBy{
- DeptId: d.DeptId,
- },
- }
- err = e.Orm.Create(&obj).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.GetFailedErr
- }
- }
- return nil
- }
|