From 397468ddc1191bf0ce9339e544ff345d1d4e6786 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期四, 11 九月 2025 11:33:10 +0800
Subject: [PATCH] 删除摄像机增加限制
---
sync-service/service/cameraService.go | 127 +++++++++++++++++++++---------------------
1 files changed, 64 insertions(+), 63 deletions(-)
diff --git a/sync-service/service/cameraService.go b/sync-service/service/cameraService.go
index 3935c4a..83208eb 100644
--- a/sync-service/service/cameraService.go
+++ b/sync-service/service/cameraService.go
@@ -1,22 +1,22 @@
package service
import (
+ "errors"
+ "strconv"
+ "vamicro/config"
+ "vamicro/sync-service/models"
+ "vamicro/sync-service/vo"
+
"basic.com/pubsub/protomsg.git"
"basic.com/valib/bhomedbapi.git"
"basic.com/valib/logger.git"
- "errors"
- "github.com/satori/go.uuid"
- "strconv"
- "vamicro/sync-service/models"
- "vamicro/sync-service/vo"
- "vamicro/config"
+ uuid "github.com/satori/go.uuid"
)
type CameraService struct {
-
}
-func (sv CameraService) CameraAdd(camVo vo.CameraEditVo) (bool,models.Camera){
+func (sv CameraService) CameraAdd(camVo vo.CameraEditVo) (bool, models.Camera) {
var sysApi bhomedbapi.SysSetApi
flag, sysconf := sysApi.GetServerInfo()
var realMax = 16
@@ -26,16 +26,16 @@
var err error
tx := models.GetDB().Begin()
defer func() {
- if err !=nil && tx !=nil {
+ if err != nil && tx != nil {
tx.Rollback()
}
}()
cam := camVo.Copy2Camera()
cam.Type = models.TYPE_LOCAL_CAMERA // 鏈湴鎽勫儚鏈�
var areaE models.Area
- if camVo.AreaId !="0" {
+ if camVo.AreaId != "0" {
if _, err = areaE.SelectbyId(camVo.AreaId); err != nil {
- return false,cam
+ return false, cam
}
}
cam.Id = uuid.NewV4().String()
@@ -45,10 +45,10 @@
} else {
cam.RunType = camVo.RunType
}
- if cam.RunType == models.TYPE_RUNTYPE_REALTIME {//瀹炴椂闇�瑕佸垽鏂疄鏃舵暟閲�
+ if cam.RunType == models.TYPE_RUNTYPE_REALTIME { //瀹炴椂闇�瑕佸垽鏂疄鏃舵暟閲�
realList, e := cam.GetCamerasByRunType(models.TYPE_RUNTYPE_REALTIME, "")
- if e !=nil || len(realList) >= realMax {
- return false,cam
+ if e != nil || len(realList) >= realMax {
+ return false, cam
}
}
@@ -56,17 +56,17 @@
cam.Floor = models.Default_Layer
//娣诲姞鎽勫儚鏈虹殑鏃跺�欎笉搴旇鎸囧畾RunServerId,鍦ㄥ摢鍙版湇鍔″櫒涓婇厤浜嗕换鍔★紝RunServerId灏辨槸瀵瑰簲鐨勯偅鍙版湇鍔″櫒
- if err = tx.Table("cameras").Create(&cam).Error;err !=nil {
- return false,cam
+ if err = tx.Table("cameras").Create(&cam).Error; err != nil {
+ return false, cam
}
- if err = tx.Table("camera_area").Create(&models.CameraArea{Cameraid:cam.Id,Areaid:camVo.AreaId}).Error;err !=nil{
- return false,cam
+ if err = tx.Table("camera_area").Create(&models.CameraArea{Cameraid: cam.Id, Areaid: camVo.AreaId}).Error; err != nil {
+ return false, cam
}
//澶勭悊浼犳劅鍣�
if len(camVo.Sensors) > 0 {
- for _,sor := range camVo.Sensors {
+ for _, sor := range camVo.Sensors {
var sorE models.Sensor
exist := sorE.Exist(sor.Ip, sor.Port)
sorId := ""
@@ -79,16 +79,16 @@
}
sorId = sor.Id
}
- if err =tx.Exec("insert into camera_sensor(camera_id, sensor_id) select '"+cam.Id+"','"+sorId+"' where not exists (select 1 from camera_sensor where camera_id='"+cam.Id+"' and sensor_id='"+sorId+"')").Error;err !=nil {
+ if err = tx.Exec("insert into camera_sensor(camera_id, sensor_id) select '" + cam.Id + "','" + sorId + "' where not exists (select 1 from camera_sensor where camera_id='" + cam.Id + "' and sensor_id='" + sorId + "')").Error; err != nil {
return false, cam
}
}
}
tx.Commit()
- return true,cam
+ return true, cam
}
-func (sv CameraService) CameraUpdate(camVo vo.CameraEditVo) bool{
+func (sv CameraService) CameraUpdate(camVo vo.CameraEditVo) bool {
cam := camVo.Copy2Camera()
var sysApi bhomedbapi.SysSetApi
flag, sysconf := sysApi.GetServerInfo()
@@ -99,12 +99,12 @@
var camTmp models.Camera
rows, err := camTmp.SelectById(cam.Id)
- if err != nil || rows ==0 {
+ if err != nil || rows == 0 {
return false
}
cam.Floor = camTmp.Floor
- if camTmp.RunServerId == "" {//鏈缃繃run_server_id,姝ょ鎯呭喌鏄浗鏍囨憚鍍忔満绗竴娆′繚瀛�,浼氶�夋嫨鐩爣鏈嶅姟鍣ㄧ殑id
+ if camTmp.RunServerId == "" { //鏈缃繃run_server_id,姝ょ鎯呭喌鏄浗鏍囨憚鍍忔満绗竴娆′繚瀛�,浼氶�夋嫨鐩爣鏈嶅姟鍣ㄧ殑id
cam.RunServerId = config.Server.AnalyServerId //姝ゆ憚鍍忔満褰掑睘鍒版湰鍙板垎鏋愭湇鍔″櫒
//if cam.RunServerId == "" {
// return false
@@ -120,7 +120,7 @@
if cam.RunType == models.TYPE_RUNTYPE_REALTIME {
if camTmp.RunType != models.TYPE_RUNTYPE_REALTIME { //鐢遍潪瀹炴椂鍒板疄鏃剁殑鍒囨崲鏃讹紝闇�瑕佸垽鏂綋鍓嶇殑瀹炴椂鏁伴噺
realList, e := cam.GetCamerasByRunType(models.TYPE_RUNTYPE_REALTIME, "")
- if e !=nil || len(realList) >= realMax {
+ if e != nil || len(realList) >= realMax {
return false
}
}
@@ -133,13 +133,13 @@
}
if camVo.Sensors != nil && len(camVo.Sensors) > 0 {
- for _,sor :=range camVo.Sensors {
+ for _, sor := range camVo.Sensors {
var sorE models.Sensor
exist := sorE.Exist(sor.Ip, sor.Port)
sorId := ""
if exist {
sorId = sorE.Id
- if err = models.GetDB().Table(sor.TableName()).Where("id=?", sorId).Update(&sor).Error;err !=nil {
+ if err = models.GetDB().Table(sor.TableName()).Where("id=?", sorId).Update(&sor).Error; err != nil {
return false
}
} else {
@@ -149,7 +149,7 @@
}
sorId = sor.Id
}
- if err = models.GetDB().Exec("insert into camera_sensor(camera_id, sensor_id) select '"+cam.Id+"','"+sorId+"' where not exists (select 1 from camera_sensor where camera_id='"+camVo.Id+"' and sensor_id='"+sorId+"')").Error;err !=nil {
+ if err = models.GetDB().Exec("insert into camera_sensor(camera_id, sensor_id) select '" + cam.Id + "','" + sorId + "' where not exists (select 1 from camera_sensor where camera_id='" + camVo.Id + "' and sensor_id='" + sorId + "')").Error; err != nil {
return false
}
}
@@ -163,16 +163,16 @@
return true
}
-func (sv CameraService) GetCamerasByRunType(runType int,cameraName string) (cams []vo.CamSensorVo,err error){
+func (sv CameraService) GetCamerasByRunType(runType int, cameraName string) (cams []vo.CamSensorVo, err error) {
//鎸囧畾褰撳墠鏈哄櫒涓鸿繃婊ゆ潯浠�
var cameraE models.Camera
list, err := cameraE.GetCamerasByRunType(runType, cameraName)
- if err !=nil {
- return nil,err
+ if err != nil {
+ return nil, err
}
var crApi bhomedbapi.CameraRuleApi
var sensorE models.Sensor
- for _,cam :=range list {//鍒ゆ柇姣忎竴涓憚鍍忔満鏄惁鏈夊彲杩愯鐨勪换鍔″拰瑙勫垯
+ for _, cam := range list { //鍒ゆ柇姣忎竴涓憚鍍忔満鏄惁鏈夊彲杩愯鐨勪换鍔″拰瑙勫垯
if crApi.ExistRunningTask(cam.Id) {
sensors, _ := sensorE.FindByCameraId(cam.Id)
var camSor vo.CamSensorVo
@@ -186,12 +186,12 @@
cams = append(cams, camSor)
}
}
- return cams,nil
+ return cams, nil
}
-func (sv CameraService) UpdateIsRunningState(id string,isRunning bool) bool{
+func (sv CameraService) UpdateIsRunningState(id string, isRunning bool) bool {
var cameraE models.Camera
- return cameraE.UpdateIsRunningState(id,isRunning)
+ return cameraE.UpdateIsRunningState(id, isRunning)
}
@@ -200,13 +200,13 @@
return cameraE.UpdateIsRunningAll(camIds)
}
-func (sv CameraService) UpdateRunEnable(cameraId string,runEnable bool) bool{
+func (sv CameraService) UpdateRunEnable(cameraId string, runEnable bool) bool {
var cameraE models.Camera
return cameraE.UpdateRunEnable(cameraId, runEnable)
}
-//1.鍒ゆ柇鏈湴鎽勫儚鏈虹殑瀹炴椂鏁伴噺
-//2.鍒ゆ柇鏄惁瀹夎鏈夊浗鏍囷紝浠ュ強鍥芥爣瀹炴椂鎽勫儚鏈虹殑鏁伴噺
+// 1.鍒ゆ柇鏈湴鎽勫儚鏈虹殑瀹炴椂鏁伴噺
+// 2.鍒ゆ柇鏄惁瀹夎鏈夊浗鏍囷紝浠ュ強鍥芥爣瀹炴椂鎽勫儚鏈虹殑鏁伴噺
func (sv CameraService) ChangeRunType(ccrVo vo.CameraChangeRunVo) bool {
var sysApi bhomedbapi.SysSetApi
flag, sysconf := sysApi.GetServerInfo()
@@ -218,20 +218,20 @@
var err error
tx := models.GetDB().Begin()
defer func() {
- if err !=nil && tx !=nil{
+ if err != nil && tx != nil {
tx.Rollback()
}
}()
- for _,cameraId :=range ccrVo.CameraIds{
+ for _, cameraId := range ccrVo.CameraIds {
var camE models.Camera
rows, e := camE.SelectById(cameraId)
- if e == nil && rows>0 {
+ if e == nil && rows > 0 {
if ccrVo.RunType == models.TYPE_RUNTYPE_REALTIME {
//闈炲疄鏃跺悜瀹炴椂鍒囨崲
if camE.RunType != models.TYPE_RUNTYPE_REALTIME {
realList, e := camE.GetCamerasByRunType(models.TYPE_RUNTYPE_REALTIME, "")
- if e !=nil || len(realList) >= realMax {
- err = errors.New("realTime cameras limit "+strconv.Itoa(realMax))
+ if e != nil || len(realList) >= realMax {
+ err = errors.New("realTime cameras limit " + strconv.Itoa(realMax))
return false
}
} else {
@@ -239,11 +239,11 @@
}
}
if camE.RunServerId == "" {
- if err = tx.Exec("update cameras set run_type=?,run_server_id=?,is_running=0 where id=?", ccrVo.RunType,config.Server.AnalyServerId, cameraId).Error;err !=nil{
+ if err = tx.Exec("update cameras set run_type=?,run_server_id=?,is_running=0 where id=?", ccrVo.RunType, config.Server.AnalyServerId, cameraId).Error; err != nil {
return false
}
} else {
- if err = tx.Exec("update cameras set run_type=?,is_running=0 where id=?", ccrVo.RunType, cameraId).Error;err !=nil{
+ if err = tx.Exec("update cameras set run_type=?,is_running=0 where id=?", ccrVo.RunType, cameraId).Error; err != nil {
return false
}
}
@@ -259,44 +259,44 @@
return cameraE.UpdateSnapshot(cameraId, snapshot)
}
-func (sv CameraService) GetAllCamerasByServer(serverId string, cameraName string) (criList []vo.CameraRunInfo,err error) {
+func (sv CameraService) GetAllCamerasByServer(serverId string, cameraName string) (criList []vo.CameraRunInfo, err error) {
var cameraE models.Camera
list, err := cameraE.FindAllByServer(serverId, cameraName)
- if err !=nil {
- return nil,err
+ if err != nil {
+ return nil, err
}
serverName := ""
var syssetApi bhomedbapi.SysSetApi
- fb,localConf := syssetApi.GetServerInfo()
+ fb, localConf := syssetApi.GetServerInfo()
if fb {
serverName = localConf.ServerName
}
nodesMap := make(map[string]protomsg.Node)
var clusterApi bhomedbapi.ClusterApi
flag, cInfo := clusterApi.FindCluster()
- if flag && cInfo.Nodes != nil{
- for _,node :=range cInfo.Nodes {
+ if flag && cInfo.Nodes != nil {
+ for _, node := range cInfo.Nodes {
nodesMap[node.Id] = *node
}
}
var crApi bhomedbapi.CameraRuleApi
- if list !=nil && len(list) >0 {
- for _,cE :=range list {
+ if list != nil && len(list) > 0 {
+ for _, cE := range list {
var cri vo.CameraRunInfo
cri.CopyFromCamera(cE)
if cri.RunServerId != "" {
if cri.RunServerId == config.Server.AnalyServerId {
cri.RunServerName = serverName
} else {
- if ne,ok :=nodesMap[cri.RunServerId];ok {
+ if ne, ok := nodesMap[cri.RunServerId]; ok {
cri.RunServerName = ne.NodeName
}
}
}
fb, cgs := crApi.FindAllTaskById(cE.Id)
if fb && cgs.Rules != nil {
- for _, g :=range cgs.Rules {
+ for _, g := range cgs.Rules {
var crTask vo.CameraRunTask
crTask.HasRule = g.Enable
@@ -306,6 +306,7 @@
} else {
cri.Tasks = []vo.CameraRunTask{}
}
+
//澶勭悊鎽勫儚鏈虹殑鐘舵��
if cE.RunType == models.TYPE_RUNTYPE_POLL || cE.RunType == models.TYPE_RUNTYPE_REALTIME {
if crApi.ExistRunningTask(cE.Id) {
@@ -324,27 +325,27 @@
criList = append(criList, cri)
}
}
- return criList,nil
+ return criList, nil
}
-//閫氳繃鎽勫儚鏈篿d鑾峰彇鍦ㄥ摢鍙版湇鍔″櫒涓婅繍琛�
+// 閫氳繃鎽勫儚鏈篿d鑾峰彇鍦ㄥ摢鍙版湇鍔″櫒涓婅繍琛�
func GetRunServerName(cameraId string) string {
var runServerName = ""
var camTmp models.Camera
rows, _ := camTmp.SelectById(cameraId)
- if rows >0 {
+ if rows > 0 {
var syssetApi bhomedbapi.SysSetApi
- fb,localConf := syssetApi.GetServerInfo()
+ fb, localConf := syssetApi.GetServerInfo()
if fb {
- if camTmp.RunServerId == localConf.ServerId {//褰掑睘鏈彴鏈嶅姟鍣�
+ if camTmp.RunServerId == localConf.ServerId { //褰掑睘鏈彴鏈嶅姟鍣�
runServerName = localConf.ServerName
- } else {//灞炰簬鍏朵粬鏈嶅姟鍣�
+ } else { //灞炰簬鍏朵粬鏈嶅姟鍣�
var clusterApi bhomedbapi.ClusterApi
flag, cInfo := clusterApi.FindCluster()
if flag {
if cInfo.Nodes != nil {
- for _,n := range cInfo.Nodes {
+ for _, n := range cInfo.Nodes {
if n.Id == camTmp.RunServerId {
runServerName = n.NodeName
break
@@ -357,4 +358,4 @@
}
return runServerName
-}
\ No newline at end of file
+}
--
Gitblit v1.8.0