From 63645d248c765244488cd34dbc1bb6528ca6b7c7 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 05 九月 2023 09:58:13 +0800
Subject: [PATCH] 修复编译

---
 system-service/service/appMenu.go |  282 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 141 insertions(+), 141 deletions(-)

diff --git a/system-service/service/appMenu.go b/system-service/service/appMenu.go
index e959977..4ea4bfc 100644
--- a/system-service/service/appMenu.go
+++ b/system-service/service/appMenu.go
@@ -1,141 +1,141 @@
-package service
-
-import (
-	"basic.com/valib/bhomedbapi.git"
-	"basic.com/valib/logger.git"
-	"github.com/satori/go.uuid"
-	"strings"
-	"vamicro/system-service/models"
-)
-
-//鍒濆鍖栧簲鐢ㄦ潈闄�
-func InitAppPermissions() {
-	var appApi bhomedbapi.AppApi
-	apps := appApi.FindAll("")
-	if apps != nil && len(apps) > 0 {
-		//logger.Debug("app found:", len(apps))
-		appIds := ""
-		for _, a := range apps {
-			appIds += "'" + a.Id + "',"
-		}
-		if appIds != "" {
-			appIds = strings.TrimRight(appIds, ",")
-		}
-		var count int
-		e := models.GetDB().Raw("select count(1) as count from sys_menu where id not in (" + appIds + ") and parent_id not in (" + appIds + ")").Count(&count).Error
-		if e == nil && count > 0 {
-			err := models.GetDB().Exec("delete from sys_menu where id not in (" + appIds + ") and parent_id not in (" + appIds + ");delete from sys_role_menu where menu_id not in (select id from sys_menu);").Error
-			if err != nil {
-				logger.Debug("init permission err:", err)
-			}
-		}
-
-		for _, a := range apps {
-			if a.IsDefault {
-				//logger.Debug("default app:", a.Package, " found")
-				sort := 1
-				var sqls []string
-				if a.Package == "cameraVideo" {
-					sort = 1
-				}
-				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');")
-				} 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');")
-				} 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');")
-					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:show', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='analysisPower:show');")
-				} else if a.Package == "library" { //姣斿搴撶鐞�
-					sort = 6
-					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:set', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='library: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, '鏌ョ湅', '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');")
-				} else if a.Package == "datapush" { //鏁版嵁鎺ㄩ��
-					sort = 8
-				} else if a.Package == "settings" { //绯荤粺璁剧疆
-					sort = 9
-					/*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', 1, 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:account', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:account');")
-					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:timeSet', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:timeSet');")
-					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:cluster', 3, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:cluster');")
-					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:network', 4, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:network');")
-					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: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');")
-				} else if a.Package == "syslog" {
-					sort = 11
-				}
-
-				menu := models.SysMenu{}
-				if rows, _ := menu.SelectById(a.Id); rows == 0 {
-					newM := models.SysMenu{
-						Id:         a.Id,
-						ParentId:   "0",
-						ParentIds:  ",0,",
-						Type:       0,
-						Name:       a.Name,
-						Module:     strings.ToUpper(a.Package),
-						Permission: a.Package,
-						Sort:       sort,
-						Enable:     true,
-						DelFlag:    false,
-					}
-					newM.Insert()
-
-				}
-				if len(sqls) > 0 {
-					models.GetDB().Exec(strings.Join(sqls, ""))
-				}
-			}
-		}
-		for _, a := range apps {
-			if !a.IsDefault {
-				var sqls []string
-
-				menu := models.SysMenu{}
-				maxSort := menu.GetMaxSort()
-				if rows, _ := menu.SelectById(a.Id); rows == 0 {
-					newM := models.SysMenu{
-						Id:         a.Id,
-						ParentId:   "0",
-						ParentIds:  ",0,",
-						Type:       0,
-						Name:       a.Name,
-						Module:     strings.ToUpper(a.Package),
-						Permission: a.Package,
-						Sort:       maxSort + 1,
-						Enable:     true,
-						DelFlag:    false,
-					}
-					if a.Package == "dataStack" {
-						newM.Sort = 4
-						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');")
-					}
-					newM.Insert()
-					if len(sqls) > 0 {
-						models.GetDB().Exec(strings.Join(sqls, ""))
-					}
-				}
-			}
-		}
-	} else {
-		//logger.Debug("app found:",apps)
-	}
-}
+package service
+
+import (
+	"basic.com/valib/bhomedbapi.git"
+	"basic.com/valib/logger.git"
+	"github.com/satori/go.uuid"
+	"strings"
+	"vamicro/system-service/models"
+)
+
+//鍒濆鍖栧簲鐢ㄦ潈闄�
+func InitAppPermissions() {
+	var appApi bhomedbapi.AppApi
+	apps := appApi.FindAll("")
+	if apps != nil && len(apps) > 0 {
+		//logger.Debug("app found:", len(apps))
+		appIds := ""
+		for _, a := range apps {
+			appIds += "'" + a.Id + "',"
+		}
+		if appIds != "" {
+			appIds = strings.TrimRight(appIds, ",")
+		}
+		var count int
+		e := models.GetDB().Raw("select count(1) as count from sys_menu where id not in (" + appIds + ") and parent_id not in (" + appIds + ")").Count(&count).Error
+		if e == nil && count > 0 {
+			err := models.GetDB().Exec("delete from sys_menu where id not in (" + appIds + ") and parent_id not in (" + appIds + ");delete from sys_role_menu where menu_id not in (select id from sys_menu);").Error
+			if err != nil {
+				logger.Debug("init permission err:", err)
+			}
+		}
+
+		for _, a := range apps {
+			if a.IsDefault {
+				//logger.Debug("default app:", a.Package, " found")
+				sort := 1
+				var sqls []string
+				if a.Package == "cameraVideo" {
+					sort = 1
+				}
+				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');")
+				} 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');")
+				} 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');")
+					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:show', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='analysisPower:show');")
+				} else if a.Package == "library" { //姣斿搴撶鐞�
+					sort = 6
+					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:set', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='library: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, '鏌ョ湅', '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');")
+				} else if a.Package == "datapush" { //鏁版嵁鎺ㄩ��
+					sort = 8
+				} else if a.Package == "settings" { //绯荤粺璁剧疆
+					sort = 9
+					/*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', 1, 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:account', 1, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:account');")
+					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:timeSet', 2, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:timeSet');")
+					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:cluster', 3, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:cluster');")
+					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:network', 4, NULL, NULL, 1, 0 where not exists (select 1 from sys_menu where permission='settings:network');")
+					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: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');")
+				} else if a.Package == "syslog" {
+					sort = 11
+				}
+
+				menu := models.SysMenu{}
+				if rows, _ := menu.SelectById(a.Id); rows == 0 {
+					newM := models.SysMenu{
+						Id:         a.Id,
+						ParentId:   "0",
+						ParentIds:  ",0,",
+						Type:       0,
+						Name:       a.Name,
+						Module:     strings.ToUpper(a.Package),
+						Permission: a.Package,
+						Sort:       sort,
+						Enable:     true,
+						DelFlag:    false,
+					}
+					newM.Insert()
+
+				}
+				if len(sqls) > 0 {
+					models.GetDB().Exec(strings.Join(sqls, ""))
+				}
+			}
+		}
+		for _, a := range apps {
+			if !a.IsDefault {
+				var sqls []string
+
+				menu := models.SysMenu{}
+				maxSort := menu.GetMaxSort()
+				if rows, _ := menu.SelectById(a.Id); rows == 0 {
+					newM := models.SysMenu{
+						Id:         a.Id,
+						ParentId:   "0",
+						ParentIds:  ",0,",
+						Type:       0,
+						Name:       a.Name,
+						Module:     strings.ToUpper(a.Package),
+						Permission: a.Package,
+						Sort:       maxSort + 1,
+						Enable:     true,
+						DelFlag:    false,
+					}
+					if a.Package == "dataStack" {
+						newM.Sort = 4
+						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');")
+					}
+					newM.Insert()
+					if len(sqls) > 0 {
+						models.GetDB().Exec(strings.Join(sqls, ""))
+					}
+				}
+			}
+		}
+	} else {
+		//logger.Debug("app found:",apps)
+	}
+}

--
Gitblit v1.8.0