【技術教程】視訊智慧分析平臺EasyCVR如何效仿EasyGBS新增使用者功能介面?

Black_3717發表於2020-12-10

TSINGSEE青犀視訊雲邊端的諸多視訊智慧分析平臺在研發之初,其功能都是不完善的,經過一步步的探索,我們也在不斷完善平臺的操作和功能,比如國標GB28181協議平臺EasyGBS的語音對講和告警上報,都是我們在與眾多專案對接之後,開發出來的滿足多數使用者需求的功能。

微信截圖_20201126173049.png

對於協議相容性比較強,支援GB28181及RTSP等協議的EasyCVR視訊智慧分析平臺,在更廣泛的專案當中得到了運用。這些專案當中,很多場景也需要像EasyGBS、EasyNVR一樣的使用者管理功能,需要新增使用者繫結角色,然後給角色分配通道,讓使用者登入顯示對應的通道。

QQ圖片20201126105628.png

增加使用者及角色管理可以通過呼叫以下介面獲取:

func (h *APIHandler) AddUser_V2(c *gin.Context) {
	var err error
	defer func() {
		if p := recover(); p != nil {
			err = fmt.Errorf("%v", p)
		}
		if err != nil {
			c.AbortWithStatusJSON(400, err.Error())
			return
		}
	}()
	name := c.PostForm("name")
	username := c.PostForm("username")
	password := c.PostForm("password")
	//phone := c.PostForm("phone")
	//email := c.PostForm("email")
	roleid := c.PostForm("roleid")
 
	roleId, err := strconv.Atoi(roleid)
	if err != nil {
		c.IndentedJSON(400, "請輸入有效的角色")
		return
	}
	dbclient := cvrdao.GetDB()
	tx := dbclient.Begin()
	roleMode := cvrdo.Role{}
	err = dbclient.Where("id = ?", roleId).First(&roleMode).Error
	if err != nil {
		c.IndentedJSON(400, err.Error())
		return
	}
	userMode := cvrdo.User{}
	userCount := 0
	dbclient.Where("name = ?", name).First(&userMode).Count(&userCount)
	if userCount != 0 {
		c.IndentedJSON(400, "使用者已經存在")
		return
	} else {
		if name != "" {
			userMode.Name = name
		}
		if username != "" {
			userMode.Username = username
		}
		//if email != "" {
		//	userMode.Email = email
		//}
		if password != "" {
			userMode.Password = password
		}
		//if phone != "" {
		//	userMode.Phone = phone
		//}
		userMode.CreateAt = etime.ToDateTime(time.Now())
		dbclient.Save(&userMode)
	}
	userRoleMode := cvrdo.UserRole{}
	userrolemodecount := 0
	dbclient.Where("uid = ?", userMode.ID).First(&userRoleMode).Count(&userrolemodecount)
	if userrolemodecount == 0 {
		dbclient.Create(&cvrdo.UserRole{
			Uid: userMode.ID,
			Rid: roleMode.ID,
		})
	} else {
		userRoleMode.Rid = roleMode.ID
		dbclient.Save(&userRoleMode)
	}
	tx.Commit()
	c.IndentedJSON(200, gin.H{
		"state": "success",
	})
}
 

呼叫後檢查,可知呼叫成功:

44.png

EasyCVR是一個功能強大,分散式架構,集全終端,多使用者,語音對講,分級電子地圖,報警中心,相容其它擴充套件產品,單機直連裝置監控系統等功能為一體化平臺。平臺可擴充套件AI、GIS等功能,介面友好,操作簡單,可方便的進行許可權設定。如有需求,歡迎瞭解!

相關文章