package service import ( "apsClient/model" "apsClient/model/request" "apsClient/pkg/ecode" "apsClient/pkg/logx" "apsClient/pkg/structx" "encoding/json" "gorm.io/gorm" ) type DevicePlcService struct{} func NewDevicePlcService() DevicePlcService { return DevicePlcService{} } func (DevicePlcService) GetDevicePlc() (*model.DevicePlc, int) { DevicePlc, err := model.NewDevicePlcSearch().SetOrder("id desc").First() if err == gorm.ErrRecordNotFound { return &model.DevicePlc{ Id: 0, Brand: "", Method: "", Address: "", Port: 0, BaudRate: 0, SerialName: "", IsOpen: false, Detail: "", Details: make([]*model.DevicePlcAddress, 0), }, ecode.OK } if err != nil { return nil, ecode.DBErr } return DevicePlc, ecode.OK } func (DevicePlcService) UpdateDevicePlc(plc *request.UpdatePlc) int { var record model.DevicePlc err := structx.AssignTo(plc, &record) if err != nil { logx.Errorf("UpdateDevicePlc err: %v", err.Error()) return ecode.UnknownErr } detail, err := json.Marshal(plc.Details) if err != nil { return ecode.ParamsErr } record.Detail = string(detail) if plc.Id == 0 { err = model.NewDevicePlcSearch().Create(&record) } else { err = model.NewDevicePlcSearch().SetId(plc.Id).Save(&record) } if err != nil { logx.Errorf("UpdateDevicePlc err: %v", err.Error()) return ecode.DBErr } return ecode.OK }