|
|
@@ -7,15 +7,17 @@ import (
|
|
|
|
|
|
type Tunnel struct {
|
|
|
global.GVA_MODEL
|
|
|
- TunnelSn string `json:"tunnelSn" gorm:"comment:隧道序号"`
|
|
|
- Name string `json:"name" gorm:"comment:名称"`
|
|
|
- Tactics int `json:"tactics" gorm:"comment:策略"`
|
|
|
- RegionId int `json:"regionId" gorm:"column:region_id"`
|
|
|
- Region Region `json:"region" gorm:"foreignKey:RegionId"` // 关系
|
|
|
- TimeId int `json:"timeId" gorm:"comment:定时id"`
|
|
|
- TunnelTime TunnelTime `json:"tunnelTime" gorm:"foreignKey:TimeId"`
|
|
|
- Users []SysUser `json:"users" gorm:"many2many:user_tunnel"`
|
|
|
- Devices []Device `json:"devices" gorm:"foreignKey:TunnelId"`
|
|
|
+ TunnelSn string `json:"tunnelSn" gorm:"comment:隧道序号"`
|
|
|
+ Name string `json:"name" gorm:"comment:名称"`
|
|
|
+ Tactics int `json:"tactics" gorm:"comment:策略"`
|
|
|
+ RegionId int `json:"regionId" gorm:"column:region_id"`
|
|
|
+ Region Region `json:"region" gorm:"foreignKey:RegionId"` // 关系
|
|
|
+ TimeId int `json:"timeId" gorm:"comment:定时id"`
|
|
|
+ TunnelTime TunnelTime `json:"tunnelTime" gorm:"foreignKey:TimeId"`
|
|
|
+ Users []SysUser `json:"users" gorm:"many2many:user_tunnel"`
|
|
|
+ Devices []Device `json:"devices" gorm:"foreignKey:TunnelId"`
|
|
|
+ EnvData []EnvData `json:"envData" gorm:"foreignKey:TunnelSn;references:TunnelSn"`
|
|
|
+ OpticalData []OpticalData `json:"opticalData" gorm:"foreignKey:Sn;references:TunnelSn"`
|
|
|
}
|
|
|
|
|
|
func (Tunnel) TableName() string {
|
|
|
@@ -23,11 +25,11 @@ func (Tunnel) TableName() string {
|
|
|
}
|
|
|
|
|
|
func QueryAllTunnels() (tunnels []Tunnel, err error) {
|
|
|
- err = global.GVA_DB.Find(&tunnels).Preload("Users").Preload("TunnelTime").Preload("Devices").Preload("Region").Error
|
|
|
+ err = global.GVA_DB.Find(&tunnels).Preload("Users").Preload("TunnelTime").Preload("Devices").Preload("Region").Preload("EnvData").Preload("OpticalData").Error
|
|
|
return tunnels, err
|
|
|
}
|
|
|
|
|
|
-func QueryTunnelList(name string, regionId, limit, offset int) (tunnels []Tunnel, total int64, err error) {
|
|
|
+func QueryTunnelList(name string, regionId, userId, limit, offset int) (tunnels []Tunnel, total int64, err error) {
|
|
|
db := global.GVA_DB.Model(Tunnel{})
|
|
|
|
|
|
if name != "" {
|
|
|
@@ -37,11 +39,13 @@ func QueryTunnelList(name string, regionId, limit, offset int) (tunnels []Tunnel
|
|
|
if regionId != 0 {
|
|
|
db = db.Where("region_id = ?", regionId)
|
|
|
}
|
|
|
+ db = db.Joins("JOIN user_tunnel ON user_tunnel.tunnel_id = tunnel.id").
|
|
|
+ Where("user_tunnel.sys_user_id = ?", userId)
|
|
|
err = db.Count(&total).Error
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- err = db.Limit(limit).Offset(offset).Preload("Users").Preload("TunnelTime").Preload("Devices").Preload("Region").Find(&tunnels).Error
|
|
|
+ err = db.Limit(limit).Offset(offset).Preload("Users").Preload("TunnelTime").Preload("Devices").Preload("Region").Preload("EnvData").Preload("OpticalData").Find(&tunnels).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -50,6 +54,11 @@ func QueryNoRegionTunnels() (tunnels []Tunnel, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func QueryTunnelByRegionId(id int) (tunnels []Tunnel, err error) {
|
|
|
+ err = global.GVA_DB.Where("region_id =?", id).Find(&tunnels).Error
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func (t Tunnel) CreateTunnel() error {
|
|
|
err := global.GVA_DB.Transaction(func(tx *gorm.DB) error {
|
|
|
err := tx.Create(&t).Error
|
|
|
@@ -74,6 +83,10 @@ func (t Tunnel) UpdateTunnel() error {
|
|
|
return global.GVA_DB.Where("id = ?", t.ID).Updates(&t).Error
|
|
|
}
|
|
|
|
|
|
+func UpdateTactics(sn string, tactics int) error {
|
|
|
+ return global.GVA_DB.Model(&Tunnel{}).Where("tunnel_sn =?", sn).Update("tactics", tactics).Error
|
|
|
+}
|
|
|
+
|
|
|
func UpdateTunnelsRegion(tunnelIds []int, regionId int) error {
|
|
|
return global.GVA_DB.Model(&Tunnel{}).Where("id in (?)", tunnelIds).Update("region_id", regionId).Error
|
|
|
}
|
|
|
@@ -81,3 +94,5 @@ func UpdateTunnelsRegion(tunnelIds []int, regionId int) error {
|
|
|
func DeleteTunnel(id int) error {
|
|
|
return global.GVA_DB.Unscoped().Where("id = ?", id).Delete(&Tunnel{}).Error
|
|
|
}
|
|
|
+
|
|
|
+// 权限相关
|