zhangqian
2023-11-25 efec800478214f3a412f879d2b51c2968515995d
api/v1/config.go
@@ -1,6 +1,8 @@
package v1
import (
   "apsClient/conf"
   "apsClient/constvar"
   "apsClient/model"
   "apsClient/model/request"
   _ "apsClient/model/response"
@@ -8,6 +10,8 @@
   "apsClient/pkg/ecode"
   "apsClient/pkg/logx"
   "apsClient/service"
   "apsClient/utils"
   "fmt"
   "github.com/gin-gonic/gin"
)
@@ -28,7 +32,7 @@
   ConfigData, err := service.NewConfigService().GetNetConfigList()
   if err != nil {
      logx.Errorf("get net config error: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "获取网络配置失败")
      ctx.FailWithMsg(ecode.DBErr, "获取网络配置失败")
      return
   }
@@ -49,18 +53,34 @@
      return
   }
   _, err := service.NewConfigService().GetNetConfig(params.Id)
   _, err := service.NewConfigService().GetNetConfig(params.ID)
   if err != nil {
      logx.Errorf("get net config error: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "获取网络配置失败")
      ctx.FailWithMsg(ecode.DBErr, "获取网络配置失败")
      return
   }
   err = service.NewConfigService().SetNetConfig(params.Id, &params)
   err = service.NewConfigService().SetNetConfig(params.ID, &params)
   if err != nil {
      logx.Errorf("SetNetConfig error: %v", err.Error())
      ctx.FailWithMsg(ecode.DBErr, "设置失败")
      return
   }
   if conf.Conf.System.NetSetShellPath == "" || conf.Conf.System.NetUpShellName == "" || conf.Conf.System.NetDownShellName == "" {
      ctx.FailWithMsg(ecode.DBErr, "请先配置网络设置路径和脚本名")
      return
   }
   var shName string
   if params.Status == model.NetConfigStatusEnabled {
      shName = conf.Conf.System.NetUpShellName
   } else {
      shName = conf.Conf.System.NetDownShellName
   }
   sh := fmt.Sprintf("%s %v %v %v %v", shName, params.NetworkCard, params.IP, params.MASK, params.Gateway)
   err = utils.Cmd(conf.Conf.System.NetSetShellPath + sh)
   if err != nil {
      logx.Errorf("network update failed: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "网络设置失败")
      return
   }
   ctx.Ok()
@@ -100,6 +120,26 @@
      return
   }
   if !params.Method.Valid() {
      ctx.FailWithMsg(ecode.ParamsErr, "接口方式不正确")
      return
   }
   params.DeviceID = conf.Conf.CurrentDeviceID
   if params.Method == constvar.PlcMethodModbusTCP && (params.Address == "" || params.Port == 0) {
      ctx.FailWithMsg(ecode.ParamsErr, "当接口方式为modbusTCP时,地址和端口号不能为空")
      return
   }
   if params.Method == constvar.PlcMethodSerial && (params.BaudRate == 0 || params.SerialName == "") {
      ctx.FailWithMsg(ecode.ParamsErr, "当接口方式为serial时,波特率和串口名称不能为空")
      return
   }
   if params.Method == constvar.PlcMethodModbusRTU && (params.DataBit == 0 || params.StopBit == 0 || params.Parity == 0) {
      ctx.FailWithMsg(ecode.ParamsErr, "当接口方式为modbusRTU时,数据位,停止位,校验位不能为空")
      return
   }
   errCode := service.NewDevicePlcService().UpdateDevicePlc(&params)
   if errCode != ecode.OK {
      ctx.Fail(errCode)