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