From 343a89f9fa20d2d142469b2a4531e16ce03d3525 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期四, 24 七月 2025 09:50:10 +0800
Subject: [PATCH] 算力管理,记录查询
---
camera-service/controllers/camera.go | 6
chanmanage-service/models/camera.go | 33 ++++++++
chanmanage-service/controllers/pollSet.go | 36 +++++---
chanmanage-service/models/db.go | 18 +++-
chanmanage-service/service/pollSetService.go | 26 +++---
sync-service/models/camera.go | 20 -----
camera-common/models/Record.go | 5
camera-common/vo/camera.go | 11 +-
sync-service/service/cameraService.go | 26 ++---
sync-service/vo/camera.go | 4
10 files changed, 107 insertions(+), 78 deletions(-)
diff --git a/camera-common/models/Record.go b/camera-common/models/Record.go
index 2b01025..98a6dfc 100644
--- a/camera-common/models/Record.go
+++ b/camera-common/models/Record.go
@@ -5,6 +5,7 @@
"fmt"
"math"
"sort"
+ "strconv"
"strings"
"time"
@@ -28,7 +29,7 @@
// 缁熻鏌ヨ
type StaticRecord struct {
- Id int64 `json:"id"`
+ Id string `json:"id"`
TaskId []int64 `json:"task_id"`
RuleId []int64 `json:"rule_id"`
EventLevelId []int64 `json:"event_level_id"`
@@ -226,7 +227,7 @@
case "id":
IdColumn := field.(*entity.ColumnInt64).Data()
if len(IdColumn) > 0 {
- record.Id = IdColumn[i]
+ record.Id = strconv.FormatInt(IdColumn[i], 10)
}
case "task_id":
TaskIdColumn := field.(*entity.ColumnInt64Array).Data()
diff --git a/camera-common/vo/camera.go b/camera-common/vo/camera.go
index 81477a7..ade66dd 100644
--- a/camera-common/vo/camera.go
+++ b/camera-common/vo/camera.go
@@ -16,7 +16,7 @@
return v.Camera
}
-//鎽勫儚鏈鸿繍琛岀姸鎬佺粨鏋勪綋
+// 鎽勫儚鏈鸿繍琛岀姸鎬佺粨鏋勪綋
type CameraRunVo struct {
Id string `json:"id"` //鎽勫儚鏈篿d
Name string `json:"name"` //鎽勫儚鏈哄悕绉�
@@ -32,10 +32,11 @@
type CameraRunInfo struct {
models.Camera
- RunServerName string `json:"runServerName"`
- Tasks []CameraRunTask `json:"tasks"`
- Status int `json:"status"`
- LinkCams [][]LinkCam `json:"linkCams"` //涓庢鎽勫儚鏈鸿仈鍔ㄧ殑鎵�鏈夎仈鍔ㄦ憚鍍忔満淇℃伅,鍒嗙粍
+ RunServerName string `json:"runServerName"`
+ // Tasks []CameraRunTask `json:"tasks"`
+ AllTasks []models.Task `json:"allTasks"`
+ Status int `json:"status"`
+ LinkCams [][]LinkCam `json:"linkCams"` //涓庢鎽勫儚鏈鸿仈鍔ㄧ殑鎵�鏈夎仈鍔ㄦ憚鍍忔満淇℃伅,鍒嗙粍
}
type LinkCam struct {
diff --git a/camera-service/controllers/camera.go b/camera-service/controllers/camera.go
index a4764fd..3eaed3a 100644
--- a/camera-service/controllers/camera.go
+++ b/camera-service/controllers/camera.go
@@ -323,9 +323,9 @@
sv := service.CameraService{}
if sv.ChangeRunType(ccrVo) {
- cIds := strings.Join(ccrVo.CameraIds, ",")
- cc.addDbChangeMsg(h.Bk, protomsg.TableChanged_T_Camera, cIds, protomsg.DbAction_Update, "")
- _, _ = service2.DoBusReq("/data/api-v/saas/syncCamera", config.Server.AnalyServerId, aiot.RequestMethod_Post, aiot.RequestContentType_ApplicationJson, map[string]interface{}{})
+ //cIds := strings.Join(ccrVo.CameraIds, ",")
+ //cc.addDbChangeMsg(h.Bk, protomsg.TableChanged_T_Camera, cIds, protomsg.DbAction_Update, "")
+ // _, _ = service2.DoBusReq("/data/api-v/saas/syncCamera", config.Server.AnalyServerId, aiot.RequestMethod_Post, aiot.RequestContentType_ApplicationJson, map[string]interface{}{})
return &bhomeclient.Reply{Success: true, Msg: "鏇存柊鎴愬姛"}
} else {
return &bhomeclient.Reply{Success: false, Msg: "鏇存柊澶辫触"}
diff --git a/chanmanage-service/controllers/pollSet.go b/chanmanage-service/controllers/pollSet.go
index b3e7f01..a0d3514 100644
--- a/chanmanage-service/controllers/pollSet.go
+++ b/chanmanage-service/controllers/pollSet.go
@@ -1,10 +1,6 @@
package controllers
import (
- "basic.com/pubsub/protomsg.git"
- "basic.com/valib/bhomeclient.git"
- "basic.com/valib/bhomedbapi.git"
- "basic.com/valib/logger.git"
"strconv"
"strings"
commonModel "vamicro/camera-common/models"
@@ -13,6 +9,11 @@
"vamicro/chanmanage-service/models"
"vamicro/chanmanage-service/service"
"vamicro/config"
+
+ "basic.com/pubsub/protomsg.git"
+ "basic.com/valib/bhomeclient.git"
+ "basic.com/valib/bhomedbapi.git"
+ "basic.com/valib/logger.git"
)
type PollSetController struct {
@@ -252,6 +253,9 @@
}
}
_, allLinks := crApi.FindAllCameraLink()
+
+ //鑾峰彇鐫f煡浠诲姟
+
for _, cE := range list {
var cri vo.CameraRunInfo
cri.CopyFromProtoCamera(cE)
@@ -265,17 +269,21 @@
}
}
- if cgs, ok := ruleM[cE.Id]; ok {
- for _, g := range cgs.Rules {
- var crTask vo.CameraRunTask
+ // if cgs, ok := ruleM[cE.Id]; ok {
+ // for _, g := range cgs.Rules {
+ // var crTask vo.CameraRunTask
- crTask.HasRule = g.Enable
- crTask.TaskName = g.SceneName
- cri.Tasks = append(cri.Tasks, crTask)
- }
- } else {
- cri.Tasks = []vo.CameraRunTask{}
- }
+ // crTask.HasRule = g.Enable
+ // crTask.TaskName = g.SceneName
+ // cri.Tasks = append(cri.Tasks, crTask)
+ // }
+ // } else {
+ // cri.Tasks = []vo.CameraRunTask{}
+ // }
+ var ids []string
+ ids = append(ids, cE.Id)
+ cri.AllTasks, _ = models.GetListTask(ids)
+
//澶勭悊鎽勫儚鏈虹殑鐘舵��
if cE.RunType == commonModel.TYPE_RUNTYPE_POLL || cE.RunType == commonModel.TYPE_RUNTYPE_REALTIME {
if crInfo, ok := ruleM[cE.Id]; ok && crInfo.Rules != nil && len(crInfo.Rules) > 0 {
diff --git a/chanmanage-service/models/camera.go b/chanmanage-service/models/camera.go
new file mode 100644
index 0000000..953c452
--- /dev/null
+++ b/chanmanage-service/models/camera.go
@@ -0,0 +1,33 @@
+package models
+
+import (
+ "fmt"
+ "strings"
+ "vamicro/camera-common/models"
+)
+
+// 鏌ヨ鍒楄〃鏁版嵁
+func GetListTask(ids []string) (items []models.Task, err error) {
+
+ //idList := strings.Join(ids, ",")
+ idList := "'" + strings.Join(ids, "','") + "'"
+ // 涓绘煡璇QL
+ //sqlStr := `select c.task_id, c.task_name from mal_task_video_link a left join mal_smart_task c on a.task_id = c.task_id where a.video_id in(?) ORDER BY a.task_id desc`
+ sqlStr := fmt.Sprintf(`
+ SELECT c.task_id, c.task_name
+ FROM mal_task_video_link a
+ LEFT JOIN mal_smart_task c ON a.task_id = c.task_id
+ WHERE a.video_id IN (%s)
+ ORDER BY a.task_id DESC
+ `, idList)
+ if err := db2.Raw(sqlStr).Scan(&items).Error; err != nil {
+ fmt.Println(err.Error())
+ return nil, err
+ }
+ return
+}
+
+// 鑾峰彇浠诲姟缁熻
+func GetTasks() (items []models.Task, err error) {
+
+}
diff --git a/chanmanage-service/models/db.go b/chanmanage-service/models/db.go
index dc14fb3..b5b0681 100644
--- a/chanmanage-service/models/db.go
+++ b/chanmanage-service/models/db.go
@@ -1,13 +1,15 @@
package models
import (
+ "vamicro/config"
+
+ "basic.com/valib/logger.git"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite"
- "basic.com/valib/logger.git"
- "vamicro/config"
)
var db *gorm.DB
+var db2 *gorm.DB
var err error
// Init creates a connection to mysql database and
@@ -20,13 +22,21 @@
db.LogMode(true)
//db.SetLogger(&DbLogger{})
db.AutoMigrate(&PollConfig{})
+
+ db2, err = gorm.Open(config.DBconf.Name, "../config/camera-service.db")
+ if err != nil {
+ logger.Debug("db open error ", err)
+ }
+ db2.LogMode(true)
+ db2.AutoMigrate(&PollConfig{})
+
}
-//GetDB ...
+// GetDB ...
func GetDB() *gorm.DB {
return db
}
func CloseDB() {
db.Close()
-}
\ No newline at end of file
+}
diff --git a/chanmanage-service/service/pollSetService.go b/chanmanage-service/service/pollSetService.go
index 0e5b5ff..3fb386b 100644
--- a/chanmanage-service/service/pollSetService.go
+++ b/chanmanage-service/service/pollSetService.go
@@ -75,9 +75,9 @@
return false
}
-//瑙﹀彂鏉′欢
-//1.瀹炴椂鎽勫儚鏈哄垏鎹负杞鎴栬�呯洃鎺э紝鎴栬�呭疄鏃剁敱鐩戞帶鍒囨崲涓哄疄鏃�
-//2.瀹炴椂鎽勫儚鏈鸿鍒橢nable鐘舵�佹敼鍙�
+// 瑙﹀彂鏉′欢
+// 1.瀹炴椂鎽勫儚鏈哄垏鎹负杞鎴栬�呯洃鎺э紝鎴栬�呭疄鏃剁敱鐩戞帶鍒囨崲涓哄疄鏃�
+// 2.瀹炴椂鎽勫儚鏈鸿鍒橢nable鐘舵�佹敼鍙�
func (sv *PollSetService) ResetChannelCount() {
//1.璁$畻鍋氬疄鏃朵换鍔$殑璺暟
//2.鏈湴鏂囦欢鍗犵殑璺暟
@@ -104,7 +104,7 @@
sv.UpdateChannelCount(pollCount, videoCount)
}
-//鎷栧姩鏀瑰彉杞鍜屾暟鎹爤鐨勬暟閲�
+// 鎷栧姩鏀瑰彉杞鍜屾暟鎹爤鐨勬暟閲�
func (sv *PollSetService) UpdateChannelCount(pollChannelCount int, videoChannelCount int) bool {
var fasApi bhomedbapi.FileStackApi
var err error
@@ -191,15 +191,15 @@
v.RealRunningCount++
}
} else if c.RunType == bhomeclient.TYPE_RUNTYPE_POLL {
- pTotal++
- if crInfo, ok := ruleM[c.Id]; ok && crInfo.Rules != nil && len(crInfo.Rules) > 0 {
- v.PollValidCount++
- } else {
- v.PollInvalidCount++
- }
- if c.IsRunning {
- v.PollRunningCount++
- }
+ // pTotal++
+ // if crInfo, ok := ruleM[c.Id]; ok && crInfo.Rules != nil && len(crInfo.Rules) > 0 {
+ // v.PollValidCount++
+ // } else {
+ // v.PollInvalidCount++
+ // }
+ // if c.IsRunning {
+ // v.PollRunningCount++
+ // }
}
}
v.RealTotal = rTotal
diff --git a/sync-service/models/camera.go b/sync-service/models/camera.go
index 65bacd6..6a1e2fa 100644
--- a/sync-service/models/camera.go
+++ b/sync-service/models/camera.go
@@ -282,23 +282,3 @@
return dbdel.RowsAffected, nil
}
-
-// 鏌ヨ鍒楄〃鏁版嵁
-func GetListTask(ids []string) (items []Task, err error) {
- //idList := strings.Join(ids, ",")
- idList := "'" + strings.Join(ids, "','") + "'"
- // 涓绘煡璇QL
- //sqlStr := `select c.task_id, c.task_name from mal_task_video_link a left join mal_smart_task c on a.task_id = c.task_id where a.video_id in(?) ORDER BY a.task_id desc`
- sqlStr := fmt.Sprintf(`
- SELECT c.task_id, c.task_name
- FROM mal_task_video_link a
- LEFT JOIN mal_smart_task c ON a.task_id = c.task_id
- WHERE a.video_id IN (%s)
- ORDER BY a.task_id DESC
- `, idList)
- if err := db.Raw(sqlStr).Scan(&items).Error; err != nil {
- fmt.Println(err.Error())
- return nil, err
- }
- return
-}
diff --git a/sync-service/service/cameraService.go b/sync-service/service/cameraService.go
index 28a89ce..83208eb 100644
--- a/sync-service/service/cameraService.go
+++ b/sync-service/service/cameraService.go
@@ -294,22 +294,18 @@
}
}
}
- // fb, cgs := crApi.FindAllTaskById(cE.Id)
- // if fb && cgs.Rules != nil {
- // for _, g :=range cgs.Rules {
- // var crTask vo.CameraRunTask
+ fb, cgs := crApi.FindAllTaskById(cE.Id)
+ if fb && cgs.Rules != nil {
+ for _, g := range cgs.Rules {
+ var crTask vo.CameraRunTask
- // crTask.HasRule = g.Enable
- // crTask.TaskName = g.SceneName
- // cri.Tasks = append(cri.Tasks, crTask)
- // }
- // } else {
- // cri.Tasks = []vo.CameraRunTask{}
- // }
- //鏍规嵁鎽勫儚鏈烘煡璇换鍔�
- var Ids []string
- Ids = append(Ids, cE.Id)
- cri.AllTasks, _ = models.GetListTask(Ids)
+ crTask.HasRule = g.Enable
+ crTask.TaskName = g.SceneName
+ cri.Tasks = append(cri.Tasks, crTask)
+ }
+ } else {
+ cri.Tasks = []vo.CameraRunTask{}
+ }
//澶勭悊鎽勫儚鏈虹殑鐘舵��
if cE.RunType == models.TYPE_RUNTYPE_POLL || cE.RunType == models.TYPE_RUNTYPE_REALTIME {
diff --git a/sync-service/vo/camera.go b/sync-service/vo/camera.go
index c86d472..4073a01 100644
--- a/sync-service/vo/camera.go
+++ b/sync-service/vo/camera.go
@@ -34,8 +34,8 @@
models.Camera
RunServerName string `json:"runServerName"`
Tasks []CameraRunTask `json:"tasks"`
- AllTasks []models.Task `json:"allTasks"`
- Status int `json:"status"`
+ //AllTasks []models.Task `json:"allTasks"`
+ Status int `json:"status"`
}
type CameraRunTask struct {
--
Gitblit v1.8.0