国标GB28181/RTSP/HIKSDK/Ehome视频智能分析平台EasyCVR如何效仿EasyGBS添加用户功能接口?

TSINGSEE青犀视频云边端的诸多视频智能分析平台在研发之初,其功能都是不完善的,经过一步步的探索,我们也在不断完善平台的操作和功能,比如国标GB28181协议平台EasyGBS的语音对讲和告警上报,都是我们在与众多项目对接之后,开发出来的满足多数用户需求的功能。

对于协议兼容性比较强,支持GB28181及RTSP等协议的EasyCVR视频智能分析平台,在更广泛的项目当中得到了运用。这些项目当中,很多场景也需要像EasyGBS、EasyNVR一样的用户管理功能,需要添加用户绑定角色,然后给角色分配通道,让用户登录显示对应的通道。

增加用户及角色管理可以通过调用以下接口获取:

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",
	})
}

调用后检查,可知调用成功:

EasyCVR是一个功能强大,分布式架构,集全终端,多用户,语音对讲,分级电子地图,报警中心,兼容其它扩展产品,单机直连设备监控系统等功能为一体化平台。平台可扩展AI、GIS等功能,界面友好,操作简单,可方便的进行权限设置。如有需求,欢迎了解!

posted on 2020-12-10 17:37  TSINGSEE  阅读(83)  评论(0编辑  收藏  举报