dev_gateway.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package devices
  2. import (
  3. "gorm.io/gorm"
  4. "server/global"
  5. "time"
  6. )
  7. type GateWay struct {
  8. ID int `gorm:"primary_key" json:"id"` //编号
  9. GatewayName string `gorm:"type:varchar(64)" json:"gatewayName"` //网关名称
  10. GatewayAddress string `gorm:"type:varchar(64)" json:"gatewayAddress"` //网关地址
  11. GatewayCode string `gorm:"type:varchar(60)" json:"gatewayCode"` //设备编号
  12. GatewayBrand string `gorm:"type:varchar(60)" json:"gatewayBrand"` //网关品牌
  13. GatewayModel string `gorm:"type:varchar(60)" json:"gatewayModel"` //网关型号
  14. IpAddress string `gorm:"type:varchar(50)" json:"ipAddress"` //IP地址
  15. InstallTime time.Time `gorm:"type:date" json:"installTime"` //安装时间
  16. IsDeleted gorm.DeletedAt `gorm:"default:null" json:"isDeleted"` //是否删除
  17. Status int `gorm:"type:int;default:1" json:"status"` //在线状态 0=在线,1=离线
  18. }
  19. func (GateWay) TableName() string {
  20. return "dev_gateway"
  21. }
  22. func QueryGateWayInfoList(limit, offset int, keyword string) (gatewayList []GateWay, total int64, err error) {
  23. db := global.GVA_DB.Model(&GateWay{})
  24. if keyword != "" {
  25. db.Where("gateway_name like ? or gateway_code like ?", "%"+keyword+"%", "%"+keyword+"%")
  26. }
  27. err = db.Count(&total).Error
  28. if err != nil {
  29. return
  30. }
  31. err = db.Limit(limit).Offset(offset).Find(&gatewayList).Error
  32. return
  33. }
  34. func (g GateWay) IsExistedByCode() error {
  35. err := global.GVA_DB.Model(&GateWay{}).Where("gateway_code = ?", g.GatewayCode).First(&g).Error
  36. return err
  37. }
  38. func (g GateWay) AddGateway() error {
  39. err := global.GVA_DB.Model(&GateWay{}).Create(&g).Error
  40. return err
  41. }
  42. func (g GateWay) UpdateGateway() error {
  43. err := global.GVA_DB.Model(&g).
  44. Select("gateway_name", "gateway_address", "gateway_brand", "gateway_model", "ip_address", "install_time").
  45. Where("id=?", g.ID).
  46. Updates(map[string]interface{}{
  47. "gateway_name": g.GatewayName,
  48. "gateway_address": g.GatewayAddress,
  49. "gateway_brand": g.GatewayBrand,
  50. "gateway_model": g.GatewayModel,
  51. "ip_address": g.IpAddress,
  52. "install_time": g.InstallTime,
  53. }).Error
  54. return err
  55. }
  56. func (g GateWay) DelGateway(id int) error {
  57. err := global.GVA_DB.Model(&g).Where("id = ?", id).Delete(&g).Error
  58. return err
  59. }
  60. func (g GateWay) PublicGateway() (gatewayList []GateWay, err error) {
  61. err = global.GVA_DB.Model(&GateWay{}).Select("id", "gateway_name").Find(&gatewayList).Error
  62. return
  63. }