From 9b17a8dcbc1f94eb117a37b3b24ca9dae0d2d588 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期三, 29 十月 2025 09:40:54 +0800
Subject: [PATCH] 摄像机相关接口跳转,推送配置修改,系统权限菜单修改
---
camera-common/models/task.go | 26 ++
camera-service/controllers/camera.go | 34 ++++
system-service/service/appMenu.go | 51 +++++--
system-service/sys/sysinfo.go | 39 ++++-
version-control/main.go | 2
camera-common/models/camera.go | 35 +++++
sysinfo-service/service/proc.go | 63 ++++----
camera-common/models/Record.go | 26 ++-
system-service/controllers/voice.go | 2
system-service/service/SysService.go | 16 +-
camera-service/models/db.go | 10 +
push-service/controllers/pushSet.go | 59 +++++---
12 files changed, 250 insertions(+), 113 deletions(-)
diff --git a/camera-common/models/Record.go b/camera-common/models/Record.go
index b950b7a..a72bfe1 100644
--- a/camera-common/models/Record.go
+++ b/camera-common/models/Record.go
@@ -503,15 +503,27 @@
lists := convertResultToMap(result)
layout := "2006-01-02 15:04:05.999999"
- var temp1 time.Time
- var temp2 time.Time
+ // var temp1 time.Time
+ // var temp2 time.Time
- //鎺掑簭
+ // //鎺掑簭
+ // sort.Slice(lists, func(i, j int) bool {
+ // //return lists[i].DetectTime > lists[j].:DetectTime
+ // temp1, _ = time.Parse(layout, lists[i].DetectTime)
+ // temp2, _ = time.Parse(layout, lists[j].DetectTime)
+ // return temp1.After(temp2)
+ // })
+
sort.Slice(lists, func(i, j int) bool {
- //return lists[i].DetectTime > lists[j].:DetectTime
- temp1, _ = time.Parse(layout, lists[i].DetectTime)
- temp2, _ = time.Parse(layout, lists[j].DetectTime)
- return temp1.After(temp2)
+ t1, err1 := time.Parse(layout, lists[i].DetectTime)
+ t2, err2 := time.Parse(layout, lists[j].DetectTime)
+
+ // 閿欒澶勭悊锛氳В鏋愰敊璇殑鏃堕棿鎺掑湪鍚庨潰
+ if err1 != nil || err2 != nil {
+ return err1 == nil && err2 != nil
+ }
+
+ return t1.After(t2)
})
items := Paginate(lists, int(pageNum), int(pageSize))
diff --git a/camera-common/models/camera.go b/camera-common/models/camera.go
index 4161961..e7ff4b8 100644
--- a/camera-common/models/camera.go
+++ b/camera-common/models/camera.go
@@ -331,6 +331,41 @@
return result.RowsAffected > 0
}
+func (camera *Camera) DelLink(id int64) (err error) {
+
+ //鍒犻櫎鍏宠仈妫�娴嬪唴瀹�
+ dbdel1 := db.Exec("delete from mal_task_check_link where task_id=?", id)
+ err = dbdel1.Error
+ if err != nil || dbdel1.RowsAffected == 0 {
+ return err
+ }
+ //鍒犻櫎鍏宠仈棰勮瑙勫垯
+ dbdel2 := db.Exec("delete from mal_task_rule_link where task_id=?", id)
+ err = dbdel2.Error
+ if err != nil || dbdel2.RowsAffected == 0 {
+ return err
+ }
+ //鍒犻櫎鍏宠仈鎽勫儚鏈轰换鍔�
+ dbdel3 := db.Exec("delete from mal_task_video_link where task_id=?", id)
+ err = dbdel3.Error
+ if err != nil || dbdel3.RowsAffected == 0 {
+ return err
+ }
+ //鍒犻櫎鍏宠仈宸ヤ綔鏃堕棿
+ dbdel4 := db.Exec("delete from mal_task_work_time_link where task_id=?", id)
+ err = dbdel4.Error
+ if err != nil || dbdel4.RowsAffected == 0 {
+ return err
+ }
+ //鍒犻櫎鍏宠仈鐭ヨ瘑搴�
+ dbdel5 := db.Exec("delete from mal_knowledge_link where task_id=?", id)
+ err = dbdel5.Error
+ if err != nil || dbdel5.RowsAffected == 0 {
+ return err
+ }
+ return
+}
+
func (camera *Camera) Delete(cid string) (int64, error) {
var err error
tx := GetDB().Begin()
diff --git a/camera-common/models/task.go b/camera-common/models/task.go
index 5d8d915..1a75371 100644
--- a/camera-common/models/task.go
+++ b/camera-common/models/task.go
@@ -18,11 +18,25 @@
IsDelete int8 `json:"isDelete"`
}
+type TaskIdM struct {
+ ID int64 `gorm:"column:task_id" json:"id"`
+}
+
type TaskM struct {
TaskId int64 `db:"task_id" json:"taskId"`
TaskName string `db:"task_name" json:"taskName"`
TaskDescription string `db:"task_description" json:"taskDescription"`
EventName string `db:"event_name" json:"eventName"`
+}
+
+// 璁粌妯″瀷鏍囩
+type TrainTags struct {
+ Id int64 `gorm:"primaryKey;autoIncrement;column:id" json:"id"`
+ Createtime string `gorm:"type:varchar(50);column:create_time;default:''" json:"create_time"`
+}
+
+func (TrainTags) TableName() string {
+ return "mal_train_tags"
}
// 瑙嗛
@@ -67,11 +81,11 @@
}
// 鏍规嵁cid鏌ヨ瑙嗛
-func GetTaskTotal(cid string) (total int, err error) {
- sql := "select count(1) as total from mal_task_video_link where video_id='" + cid + "'"
- err = db.Raw(sql).Count(&total).Error
- if err != nil {
- return 0, err
+func GetTaskTotal(cid string) (items []TaskIdM, err error) {
+ sqlStr := "select task_id from mal_task_video_link where video_id='" + cid + "'"
+ if err := db.Raw(sqlStr).Scan(&items).Error; err != nil {
+ fmt.Println(err.Error())
+ return nil, err
}
- return total, nil
+ return
}
diff --git a/camera-service/controllers/camera.go b/camera-service/controllers/camera.go
index e90ed77..2029bfc 100644
--- a/camera-service/controllers/camera.go
+++ b/camera-service/controllers/camera.go
@@ -90,6 +90,7 @@
if b, err := sv.CameraUpdate(camVo); b {
//鏇存柊鍒嗚鲸鐜�
if ok {
+ //
logger.Debug("DoPostRequest:", camVo)
if cam.IsRunning && (cam.ResolutionWidth != camVo.ResolutionWidth && cam.ResolutionHeight != camVo.ResolutionHeight) {
header := map[string]string{}
@@ -99,6 +100,18 @@
"videoType": 0,
}
res, err := util.DoPostRequest("http://127.0.0.1:8088/v1/task/openAnalysis", util.CONTENT_TYPE_JSON, paramBody, nil, header, time.Second*10)
+ if err != nil {
+ logger.Debug("DoPostRequest err:", err)
+ }
+ logger.Debug("DoPostRequest:", res)
+ }
+ //鏇存柊鐘舵��
+ if cam.IsRunning {
+ header := map[string]string{}
+ paramBody := map[string]interface{}{
+ "state": 1,
+ }
+ res, err := util.DoPostRequest("http://127.0.0.1:8088/v1/task/updateAllStatus?state=1", util.CONTENT_TYPE_JSON, paramBody, nil, header, time.Second*10)
if err != nil {
logger.Debug("DoPostRequest err:", err)
}
@@ -131,15 +144,24 @@
}
//鍒ゆ柇鏄惁鏈夐厤缃换鍔�
- total, _ := models.GetTaskTotal(cid)
- if total > 0 {
- return &bhomeclient.Reply{Success: false, Msg: "璇峰厛鍒犻櫎閰嶇疆鐨勪换鍔�"}
- }
+ // total, _ := models.GetTaskTotal(cid)
+ // if total > 0 {
+ // return &bhomeclient.Reply{Success: false, Msg: "璇峰厛鍒犻櫎閰嶇疆鐨勪换鍔�"}
+ // }
rows, _ := cam.Delete(cid)
if rows == 0 {
return &bhomeclient.Reply{Success: true, Msg: "璁板綍涓嶅瓨鍦�"}
}
+
+ //鍒犻櫎浠诲姟
+ items, _ := models.GetTaskTotal(cid)
+ if len(items) > 0 {
+ for _, item := range items {
+ cam.DelLink(item.ID)
+ }
+ }
+
pMsg := protomsg.DbChangeMessage{ //闇�瑕侀噸鏂拌绠楃畻鍔涘崰鐢ㄦ儏鍐�
Table: protomsg.TableChanged_T_Camera,
Action: protomsg.DbAction_Delete,
@@ -1125,9 +1147,9 @@
if len(TaskName) > 0 {
quotedNames := make([]string, len(TaskName))
for i, name := range TaskName {
- quotedNames[i] = "'" + name + "'" // 姣忎釜鍏冪礌鍔犲崟寮曞彿
+ quotedNames[i] = " task_name like '%%" + name + "%%' " // 姣忎釜鍏冪礌鍔犲崟寮曞彿
}
- filter += fmt.Sprintf(" and %s in [%s]", "task_name", strings.Join(quotedNames, ","))
+ filter += " and (" + strings.Join(quotedNames, "or") + ")"
} else {
if Warning > 0 {
return &bhomeclient.Reply{Success: true, Msg: "鑾峰彇鎴愬姛", Data: nil}
diff --git a/camera-service/models/db.go b/camera-service/models/db.go
index f177f0f..360f63c 100644
--- a/camera-service/models/db.go
+++ b/camera-service/models/db.go
@@ -17,14 +17,18 @@
func Init() {
db, err = gorm.Open(config.DBconf.Name, "../config/camera-service.db")
-
if err != nil {
logger.Debug("db open error ", err)
}
db.LogMode(true)
//db.SetLogger(&DbLogger{})
- db.AutoMigrate(&commonModels.Area{}, &commonModels.Camera{}, &commonModels.CameraArea{},
- &commonModels.Sensor{}, &commonModels.CameraSensor{})
+ // err1 := db.Debug().AutoMigrate(&commonModels.Area{}, &commonModels.Camera{}, &commonModels.CameraArea{},
+ // &commonModels.Sensor{}, &commonModels.CameraSensor{}, &commonModels.TrainTags{})
+ err1 := db.Debug().AutoMigrate(&commonModels.TrainTags{})
+ if err1 != nil {
+ logger.Debug("鑷姩杩佺Щ澶辫触 ", err1)
+ }
+
commonModels.SetDB(db)
}
diff --git a/push-service/controllers/pushSet.go b/push-service/controllers/pushSet.go
index a8f967c..13a7a23 100644
--- a/push-service/controllers/pushSet.go
+++ b/push-service/controllers/pushSet.go
@@ -35,6 +35,7 @@
{Checked: true, Id: "camera_id", Name: "鎽勫儚鏈篒D", Alias: "camera_id"},
{Checked: true, Id: "camera_name", Name: "鎽勫儚鏈哄悕绉�", Alias: "camera_name"},
{Checked: true, Id: "camera_addr", Name: "鎽勫儚鏈哄湴鍧�", Alias: "camera_addr"},
+ {Checked: true, Id: "camera_rtsp", Name: "RTSP鍦板潃", Alias: "camera_rtsp"},
},
}
// sceneInfoSet := vo.PushSetMenu{
@@ -93,28 +94,40 @@
{Checked: true, Id: "is_warning", Name: "鏄惁棰勮", Alias: "is_warning"},
},
}
- // detectAreaSet := vo.PushSetMenu{
- // Id: "detectAreaInfo",
- // Name: "妫�娴嬪尯鍩�",
- // Alias: "detectAreaInfo",
- // Checked: true,
- // Children: []vo.PushSetMenu{
- // {Checked: true, Id: "targetInfo.#.areaId", Name: "妫�娴嬪尯鍩焛d", Alias: "areaId"},
- // {Checked: true, Id: "targetInfo.#.areaName", Name: "妫�娴嬪尯鍩熷悕绉�", Alias: "areaName"},
- // },
- // }
- // targetSet := vo.PushSetMenu{
- // Id: "targetInfo",
- // Name: "鐩爣",
- // Alias: "targetInfo",
- // Checked: true,
- // Children: []vo.PushSetMenu{
- // {Checked: true, Id: "targetInfo.#.attribute", Name: "绠楁硶灞炴��", Alias: "attribute"},
- // {Checked: true, Id: "targetInfo.#.targetLocation", Name: "鐩爣鍧愭爣", Alias: "targetLocation"},
- // {Checked: true, Id: "targetInfo.#.targetScore", Name: "鐩爣缃俊搴�", Alias: "targetScore"},
- // {Checked: true, Id: "targetInfo.#.targetType", Name: "鐩爣绫诲埆", Alias: "targetType"},
- // },
- // }
+ detectAreaSet := vo.PushSetMenu{
+ Id: "areaInfo",
+ Name: "妫�娴嬪尯鍩�",
+ Alias: "areaInfo",
+ Checked: true,
+ Children: []vo.PushSetMenu{
+ {Checked: true, Id: "area_id", Name: "妫�娴嬪尯鍩焛d", Alias: "area_id"},
+ {Checked: true, Id: "area_name", Name: "妫�娴嬪尯鍩熷悕绉�", Alias: "area_name"},
+ {Checked: true, Id: "proportion", Name: "妫�娴嬪尯鍩熷崰姣�", Alias: "proportion"},
+ },
+ }
+ KnowLedgeSet := vo.PushSetMenu{
+ Id: "knowLedgeInfo",
+ Name: "鐭ヨ瘑搴�",
+ Alias: "knowLedgeInfo",
+ Checked: true,
+ Children: []vo.PushSetMenu{
+ {Checked: true, Id: "knowledge_id", Name: "ID", Alias: "knowledge_id"},
+ {Checked: true, Id: "knowledge_name", Name: "鐭ヨ瘑搴撳悕绉�", Alias: "knowledge_name"},
+ {Checked: true, Id: "knowledge_doc", Name: "鐭ヨ瘑搴撴枃妗�", Alias: "knowledge_doc"},
+ },
+ }
+ targetSet := vo.PushSetMenu{
+ Id: "targetInfo",
+ Name: "鐩爣",
+ Alias: "targetInfo",
+ Checked: true,
+ Children: []vo.PushSetMenu{
+ {Checked: true, Id: "attribute", Name: "灞炴��", Alias: "attribute"},
+ {Checked: true, Id: "target_location", Name: "鐩爣鍧愭爣", Alias: "target_location"},
+ {Checked: true, Id: "target_score", Name: "鐩爣缃俊搴�", Alias: "target_score"},
+ {Checked: true, Id: "target_type", Name: "鐩爣绫诲埆", Alias: "target_type"},
+ },
+ }
// dtSet := vo.PushSetMenu{
// Id: "tableInfo",
// Name: "搴曞簱淇℃伅",
@@ -144,7 +157,7 @@
// },
// }
// set = append(set, camInfoSet, sceneInfoSet, serverSet, dataSet, detectAreaSet, targetSet, dtSet, dbpInfo)
- set = append(set, camInfoSet, taskInfoSet, serverSet, dataSet)
+ set = append(set, camInfoSet, taskInfoSet, serverSet, dataSet, detectAreaSet, KnowLedgeSet, targetSet)
return &bhomeclient.Reply{Success: true, Data: set}
}
diff --git a/sysinfo-service/service/proc.go b/sysinfo-service/service/proc.go
index f1deff7..16350cb 100644
--- a/sysinfo-service/service/proc.go
+++ b/sysinfo-service/service/proc.go
@@ -14,20 +14,20 @@
var BasicProc = map[string]string{
// "analysis": "绠楁硶澶勭悊鍗曞厓",
- "apiserver": "basic鎺ュ彛鏈嶅姟",
- "decoder": "瑙嗛瑙g爜鏈嶅姟",
- "elasticsearch": "鍒嗗竷寮忔暟鎹悳绱㈠紩鎿�",
+ "apiserver": "basic鎺ュ彛鏈嶅姟",
+ "decoder": "瑙嗛瑙g爜鏈嶅姟",
+ // "elasticsearch": "鍒嗗竷寮忔暟鎹悳绱㈠紩鎿�",
// "faceDetect": "浜鸿劯璇嗗埆鏈嶅姟",
"file-service": "鏂囦欢鏈嶅姟",
- "pollcontrol": "杞绠$悊",
- "pushServer": "瑙勫垯澶勭悊鍗曞厓",
+ // "pollcontrol": "杞绠$悊",
+ "pushServer": "瑙勫垯澶勭悊鍗曞厓",
// "dataProcess": "瑙勫垯澶勭悊鍗曞厓",
"schedule": "璋冨害杩涚▼",
// "sdkCompare": "浜鸿劯姣斿鏈嶅姟",
- "sshd": "ssh鏈嶅姟绔�",
- "videopublish": "瀹炴椂瑙嗛鎺ㄦ祦鏈嶅姟",
- "videosvr.out": "鍥芥爣涓婄骇鏈嶅姟",
- "weed": "鍒嗗竷寮忔枃浠剁郴缁�",
+ "sshd": "ssh鏈嶅姟绔�",
+ "zlmediaKit": "瀹炴椂瑙嗛鎺ㄦ祦鏈嶅姟",
+ "wvp": "鍥芥爣涓婄骇鏈嶅姟",
+ "weed": "鍒嗗竷寮忔枃浠剁郴缁�",
}
var ModleProc = map[string]string{
@@ -172,7 +172,7 @@
apps := dbApi.FindAppMap()
for k, v := range dbApi.FindAppMap() {
if v.ProcName != "" {
- installedAppMap[v.ProcName] = apps[k]
+ installedAppMap[v.Id] = apps[k]
}
}
@@ -193,40 +193,27 @@
}
}
}
-
// 缁熻姝e湪杩愯鐨勫簲鐢ㄤ俊鎭�
ps, _ := process.Processes()
- for _, p := range ps {
- if name, err := p.Name(); err == nil {
- if app, isExist := installedAppMap[name]; isExist {
- proc := Proc{
- Name: app.Name,
- Pid: p.Pid,
- Desc: app.Title,
- }
-
- proc.Cpu, _ = p.CPUPercent()
- proc.Mem, _ = p.MemoryPercent()
- proc.Gpu = gpuPer.Get(int(p.Pid))
-
- procs = append(procs, proc)
-
- delete(installedAppMap, name)
- }
- }
- }
-
- // 杩藉姞鏈惎鍔ㄧ殑搴旂敤
for _, v := range installedAppMap {
proc := Proc{
Name: v.Name,
Pid: 0,
Desc: v.Title,
}
-
proc.Cpu = 0
proc.Mem = 0
proc.Gpu = 0
+ for _, p := range ps {
+ if name, err := p.Name(); err == nil {
+ if name == v.ProcName {
+ proc.Pid = p.Pid
+ proc.Cpu, _ = p.CPUPercent()
+ proc.Mem, _ = p.MemoryPercent()
+ proc.Gpu = gpuPer.Get(int(p.Pid))
+ }
+ }
+ }
procs = append(procs, proc)
}
@@ -252,7 +239,15 @@
}
}
- if k == "elasticsearch" {
+ if k == "zlmediaKit" {
+ cmdLine, _ := p.Cmdline()
+ if strings.Contains(cmdLine, "MediaServer") {
+ proc.Pid = p.Pid
+
+ break
+ }
+ }
+ if k == "wvp" {
cmdLine, _ := p.Cmdline()
if strings.Contains(cmdLine, k) {
proc.Pid = p.Pid
diff --git a/system-service/controllers/voice.go b/system-service/controllers/voice.go
index fb697ba..a77cd8b 100644
--- a/system-service/controllers/voice.go
+++ b/system-service/controllers/voice.go
@@ -149,7 +149,7 @@
audioPath, err := sv.UploadVoice(file.Bytes, filename)
if err != nil {
if err.Error() == "audio format error" {
- return &bhomeclient.Reply{Msg: "澹伴煶鍙厑璁竚p3,wav,wma鐨勬牸寮�"}
+ return &bhomeclient.Reply{Msg: "澹伴煶鍙厑璁竚p3,wav鐨勬牸寮�"}
} else {
return &bhomeclient.Reply{Msg: "澹伴煶涓婁紶澶辫触:" + err.Error()}
}
diff --git a/system-service/service/SysService.go b/system-service/service/SysService.go
index 779b65e..a3f7576 100644
--- a/system-service/service/SysService.go
+++ b/system-service/service/SysService.go
@@ -165,7 +165,7 @@
return true, isComplete, ""
}
-//upgrade
+// upgrade
func (sv SysService) Upgrade(identifier string, filename string) (bool, error) {
if !bakBeforeUpgrade() {
return false, errors.New("鏇存柊鍓嶅浠藉け璐�")
@@ -226,7 +226,7 @@
return true
}
-//鏇存柊绯荤粺绋嬪簭
+// 鏇存柊绯荤粺绋嬪簭
func updatePatch(identifier string, ext string) bool {
configPatchPath := ""
if config.Server.PatchPath != "" {
@@ -349,11 +349,11 @@
return cmd.Output()
}
-//涓婁紶澹伴煶鏂囦欢
+// 涓婁紶澹伴煶鏂囦欢
func (sv SysService) UploadVoice(fileBytes []byte, filename string) (string, error) {
fileExt := path.Ext(filename)
fileExt = strings.ToLower(fileExt)
- if fileExt != ".mp3" && fileExt != ".wma" && fileExt != ".wav" {
+ if fileExt != ".mp3" && fileExt != ".wav" {
return "", errors.New("audio format error")
}
var sApi bhomedbapi.SysSetApi
@@ -382,18 +382,18 @@
return weedFilePath, err
}
-//鑾峰彇鎵�鏈夐厤缃�
+// 鑾峰彇鎵�鏈夐厤缃�
func (sv SysService) GetAllSetting() (settings []models.SysSetting, err error) {
settingModel := models.SysSetting{}
return settingModel.GetAllSetting()
}
-//鏇存柊閰嶇疆
+// 鏇存柊閰嶇疆
func (sv SysService) SaveSetting(setting models.SysSetting) (err error) {
return setting.SaveSetting(true)
}
-//鑾峰彇纭洏鍓╀綑绌洪棿
+// 鑾峰彇纭洏鍓╀綑绌洪棿
func (sv SysService) DiskInfo(dev string) (uint64, uint64) {
var stat syscall.Statfs_t
err := syscall.Statfs(dev, &stat)
@@ -406,7 +406,7 @@
return All, Free
}
-//鍚屾鏇存柊璁剧疆
+// 鍚屾鏇存柊璁剧疆
func PersistentWrapper(topic string, payloads []byte) {
if versionControlS.AuthorizationUpdateTopic == topic {
if err := json.Unmarshal(payloads, &AuthInfo); nil != err {
diff --git a/system-service/service/appMenu.go b/system-service/service/appMenu.go
index e959977..c34698f 100644
--- a/system-service/service/appMenu.go
+++ b/system-service/service/appMenu.go
@@ -1,14 +1,15 @@
package service
import (
- "basic.com/valib/bhomedbapi.git"
- "basic.com/valib/logger.git"
- "github.com/satori/go.uuid"
"strings"
"vamicro/system-service/models"
+
+ "basic.com/valib/bhomedbapi.git"
+ "basic.com/valib/logger.git"
+ uuid "github.com/satori/go.uuid"
)
-//鍒濆鍖栧簲鐢ㄦ潈闄�
+// 鍒濆鍖栧簲鐢ㄦ潈闄�
func InitAppPermissions() {
var appApi bhomedbapi.AppApi
apps := appApi.FindAll("")
@@ -40,13 +41,13 @@
}
if a.Package == "search" { //缁熻鏌ヨ
sort = 2
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鎽勫儚鏈�', 'SEARCH', 'search:camera', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='search:camera');")
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏁版嵁鏍�', 'SEARCH', 'search:stack', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='search:stack');")
+ // sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鎽勫儚鏈�', 'SEARCH', 'search:camera', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='search:camera');")
+ // sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏁版嵁鏍�', 'SEARCH', 'search:stack', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='search:stack');")
} else if a.Package == "cameraAccess" { //鎽勫儚鏈洪厤缃�
sort = 3
sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鎽勫儚鏈轰俊鎭�', 'CAMERAACCESS', 'cameraAccess:cameraInfo', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='cameraAccess:cameraInfo');")
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鐙珛鍦烘櫙', 'CAMERAACCESS', 'cameraAccess:selfRule', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='cameraAccess:selfRule');")
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鑱斿姩鍦烘櫙', 'CAMERAACCESS', 'cameraAccess:linkRule', 3, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='cameraAccess:linkRule');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, 'AI浠诲姟', 'CAMERAACCESS', 'cameraAccess:aiTask', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='cameraAccess:aiTask');")
+ // sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鑱斿姩鍦烘櫙', 'CAMERAACCESS', 'cameraAccess:linkRule', 3, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='cameraAccess:linkRule');")
} else if a.Package == "analysisPower" { //绠楀姏绠$悊
sort = 5
sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '璁剧疆', 'ANALYSISPOWER', 'analysisPower:set', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='analysisPower:set');")
@@ -57,9 +58,11 @@
sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏌ョ湅', 'LIBRARY', 'library:show', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='library:show');")
} else if a.Package == "algorithmManage" { // 搴旂敤涓績
sort = 7
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '宸插畨瑁�', 'ALGORITHMMANAGE', 'algorithmManage:installed', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='algorithmManage:installed');")
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '绂荤嚎鍗囩骇/瀹夎', 'ALGORITHMMANAGE', 'algorithmManage:insOffLine', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='algorithmManage:insOffLine');")
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '搴旂敤涓績璐拱', 'ALGORITHMMANAGE', 'algorithmManage:buy', 3, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='algorithmManage:buy');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '搴旂敤涓績', 'ALGORITHMMANAGE', 'algorithmManage:main', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='algorithmManage:main');")
+
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '宸叉縺娲�', 'ALGORITHMMANAGE', 'algorithmManage:installed', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='algorithmManage:installed');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '绂荤嚎鍗囩骇/瀹夎', 'ALGORITHMMANAGE', 'algorithmManage:insOffLine', 3, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='algorithmManage:insOffLine');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏇存柊', 'ALGORITHMMANAGE', 'algorithmManage:buy', 4, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='algorithmManage:buy');")
} else if a.Package == "datapush" { //鏁版嵁鎺ㄩ��
sort = 8
} else if a.Package == "settings" { //绯荤粺璁剧疆
@@ -72,14 +75,34 @@
sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '閿洏鍜岃瑷�', 'SETTINGS', 'settings:keyboard', 5, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:keyboard');")
sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '閫氱敤璁剧疆', 'SETTINGS', 'settings:common', 6, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:common');")
sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '璁惧淇℃伅', 'SETTINGS', 'settings:sysInfo', 7, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:sysInfo');")
- /*sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏉冮檺绠$悊', 'SETTINGS', 'settings:permission', 4, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:permission');")*/
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏉冮檺绠$悊', 'SETTINGS', 'settings:permission', 8, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:permission');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '璁惧绠$悊', 'SETTINGS', 'settings:device', 9, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:device');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '妫�娴嬪唴瀹�', 'SETTINGS', 'settings:content', 10, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:content');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '棰勮瑙勫垯', 'SETTINGS', 'settings:rule', 11, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:rule');")
+
/*sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '骞挎挱璁剧疆', 'SETTINGS', 'settings:broadcast', 5, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:broadcast');")*/
} else if a.Package == "vindicate" { //绯荤粺缁存姢
sort = 10
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '璁惧缁存姢', 'VINDICATE', 'vindicate:device', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:device');")
- sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏁版嵁搴撶淮鎶�', 'VINDICATE', 'vindicate:db', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:db');")
+ // sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '璁惧缁存姢', 'VINDICATE', 'vindicate:device', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:device');")
+ // sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏁版嵁搴撶淮鎶�', 'VINDICATE', 'vindicate:db', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:db');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏇存柊璁剧疆', 'VINDICATE', 'vindicate:update', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:update');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '绯荤粺娓呯悊', 'VINDICATE', 'vindicate:clear', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:clear');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '閲嶅惎璁剧疆', 'VINDICATE', 'vindicate:restart', 3, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:restart');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '澶囦唤杩樺師', 'VINDICATE', 'vindicate:backup', 4, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:backup');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '绯荤粺淇℃伅', 'VINDICATE', 'vindicate:sysinfo', 5, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='vindicate:sysinfo');")
+
} else if a.Package == "syslog" {
sort = 11
+ } else if a.Package == "knowledge" {
+ sort = 12
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '璁剧疆', 'KNOWLEDGE', 'knowledge:set', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='knowledge:set');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏌ョ湅', 'KNOWLEDGE', 'knowledge:show', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='knowledge:show');")
+
+ } else if a.Package == "dataStack" {
+ sort = 13
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏁版嵁鏍堥厤缃�', 'DATASTACK', 'dataStack:cameraInfo', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='dataStack:cameraInfo');")
+ sqls = append(sqls, "INSERT INTO sys_menu(`id`,`parent_id`,`parent_ids`,`type`,`name`,`module`,`permission`,`sort`,`icon`,`url`,`enable`,`del_flag`) select '"+uuid.NewV4().String()+"', '"+a.Id+"', ',0,"+a.Id+",', 1, '鏁版嵁鏍堜俊鎭�', 'DATASTACK', 'dataStack:selfRule', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='dataStack:selfRule');")
+
}
menu := models.SysMenu{}
diff --git a/system-service/sys/sysinfo.go b/system-service/sys/sysinfo.go
index e5ede0e..c3504ae 100644
--- a/system-service/sys/sysinfo.go
+++ b/system-service/sys/sysinfo.go
@@ -1,6 +1,7 @@
package sys
import (
+ "errors"
"fmt"
"io/ioutil"
"os"
@@ -12,7 +13,6 @@
"vamicro/extend/util"
"basic.com/valib/gogpu.git"
- "basic.com/valib/logger.git"
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/host"
@@ -81,26 +81,45 @@
return util.Struct2Map(Stat)
}
+func GetGpu(key string) (vGpu []string, err error) {
+ resultMsg, e := util.ExeCmd("dlsmi --query-gpu=" + key)
+ if e != nil {
+ return vGpu, errors.New("鏃犲彲鐢℅PU!璇锋鏌ユ槸鍚︽甯稿畨鏄惧崱鍙婃樉鍗¢┍鍔紝閫氳繃dlsmi鏌ヨ鐘舵��")
+ }
+ vGpu = strings.Split(string(resultMsg), "\n")
+ if len(vGpu) == 0 {
+ return vGpu, errors.New("鏃犲彲鐢℅PU!璇锋鏌ユ槸鍚︽甯稿畨鏄惧崱鍙婃樉鍗¢┍鍔紝閫氳繃dlsmi鏌ヨ鐘舵��")
+ }
+ return vGpu, nil
+}
+
func GetDeviceInfo() map[string]interface{} {
cmd := exec.Command("/bin/sh", "-c", "lsblk -d | grep -v part | grep -v SWAP | grep -v M | grep disk | awk '{printf $4\" \"}'")
disks, _ := cmd.Output()
cpu, _ := cpu.Info()
- gpuInfo, err := gogpu.Info()
- var gpuMemTotal int64
- if err == nil {
- for _, gpu := range gpuInfo.Info {
- gpuMemTotal = gpuMemTotal + gpu.GpuMemoryTotal
+
+ var gpuStr string
+
+ //鑾峰彇鍨嬪彿
+ gpuName, _ := GetGpu("name")
+ if len(gpuName) > 0 {
+ var gpuArr []string = []string{}
+ gpuTotal, _ := GetGpu("memory.total")
+ for i, name := range gpuName {
+ //i>0璺宠繃header
+ if i > 0 && len(name) > 0 {
+ gpuArr = append(gpuArr, fmt.Sprintf("%s %s", name, gpuTotal[i]))
+ }
}
- } else {
- logger.Debug("gpu error " + err.Error())
+ gpuStr = strings.Join(gpuArr, ",")
}
- gpu := gpuMemTotal
+
mem, _ := mem.VirtualMemory()
host, _ := host.Info()
return util.Struct2Map(map[string]interface{}{
"cpu": cpu,
- "gpu": gpu,
+ "gpu": gpuStr,
"mem": mem,
"host": host,
"disk": string(disks),
diff --git a/version-control/main.go b/version-control/main.go
index 0f3c5fe..4435491 100644
--- a/version-control/main.go
+++ b/version-control/main.go
@@ -88,7 +88,7 @@
go ms.StartServer(fm)
- go service.SelfUpdateStart(ctx, ms) //鑷姩鏇存柊
+ // go service.SelfUpdateStart(ctx, ms) //鑷姩鏇存柊
go service.NoticeTick(ctx) //鏇存柊鎻愰啋
--
Gitblit v1.8.0