package dto import ( "google.golang.org/protobuf/proto" "joylink.club/bj-rtsts-server/dto/common_proto" "joylink.club/bj-rtsts-server/dto/data_proto" ) type PageTrainInfoReqDto struct { PageQueryDto Name string `json:"name" form:"name"` } type TrainInfoReqDto struct { Name string `json:"name" form:"name"` Pid int32 `json:"pid" form:"pid"` } type TrainInfoDto struct { Id int32 `json:"id" form:"id"` Name string `json:"name" form:"name"` TrainModel int32 `json:"train_model" form:"train_model"` CarriageLength int32 `json:"carriage_length" form:"carriage_length"` TotalLength int32 `json:"total_length" form:"total_length"` MinDiameter int32 `json:"min_diameter" form:"min_diameter"` MaxDiameter int32 `json:"max_diameter" form:"max_diameter"` TrainSets string `json:"train_sets" form:"train_sets"` Description string `json:"description" form:"description"` TrainConfigData *ConfigTrainData `json:"trainConfigData" form:"trainConfigData"` } func ConvertToTrainDto(trailInfos []*PublishedDto) []*TrainInfoDto { var result []*TrainInfoDto for _, t := range trailInfos { result = append(result, ConvertDtoFromTrain(t)) } return result } func TrainConfigToDtoConvert(dc *common_proto.TrainDynamicConfig) *ConfigTrainData { if dc != nil { return &ConfigTrainData{ BaseResistanceParamA: dc.BaseResistanceParamA, BaseResistanceParamB: dc.BaseResistanceParamB, BaseResistanceParamC: dc.BaseResistanceParamC, CurveResistanceParamR1: dc.CurveResistanceParamR1, CurveResistanceParamR2: dc.CurveResistanceParamR2, CurveResistanceParamR3: dc.CurveResistanceParamR3, CurveResistanceParamR4: dc.CurveResistanceParamR4, RevolvingMassParam: dc.RevolvingMassParam, Jump: dc.Jump, Slip: dc.Slip, Slide: dc.Slide, StopSign: dc.StopSign, } } return nil } func ConvertDtoFromTrain(t *PublishedDto) *TrainInfoDto { message := &data_proto.Train{} proto.Unmarshal(t.Proto, message) return &TrainInfoDto{ Id: t.ID, Name: t.Name, Description: t.Note, TrainModel: int32(message.TrainModel), CarriageLength: message.CarriageLength, TotalLength: message.TotalLength, MinDiameter: message.MinDiameter, MaxDiameter: message.MaxDiameter, TrainSets: message.TrainSets, TrainConfigData: TrainConfigToDtoConvert(message.DynamicConfig), } }