diff --git a/iot/model/permission-model.go b/iot/model/permission-model.go new file mode 100644 index 0000000..8cd7dc7 --- /dev/null +++ b/iot/model/permission-model.go @@ -0,0 +1,30 @@ +package model + +type PermissionGroupCreateRes struct { + Hikvision + Data PermissionGroup `json:"data"` +} + +type PermissionGroup struct { + GroupId string `json:"groupId"` + GroupName string `json:"groupName"` + CreateTime string `json:"createTime,omitempty"` //2020-05-18T11:21:13+08:00 + UpdateTime string `json:"updateTime,omitempty"` +} + +type PermissionGroupDeleteRes struct { + Hikvision + Data struct { + StatisticsID string `json:"statisticsId"` + } `json:"data"` +} + +type PermissionGroupList struct { + Hikvision + Data struct { + PageNo int `json:"pageNo"` + PageSize int `json:"pageSize"` + Total int `json:"total"` + Rows []PermissionGroup `json:"rows"` + } `json:"data"` +} diff --git a/iot/permission-iot.go b/iot/permission-iot.go new file mode 100644 index 0000000..5edd8de --- /dev/null +++ b/iot/permission-iot.go @@ -0,0 +1,113 @@ +package iot + +import ( + "encoding/json" + "fmt" + + "myschools.me/suguo/hikvision/iot/model" +) + +const ( + permission_group = "/api/v1/open/accessControl/permissionGroups" + permission_group_create = permission_group + "/create" + permission_group_update = permission_group + "/update" + permission_group_delete = permission_group + "/delete" + permission_group_list = permission_group + "/actions/page" + permission_group_addperson = permission_group + "/actions/addPersons" + permission_group_removePersons = permission_group + "/actions/removePersons" + permission_group_getEmployeeNos = permission_group + "/actions/getEmployeeNos" + permission_group_addDevices = permission_group + "/actions/addDevices" + permission_group_removeDevices = permission_group + "/actions/removeDevices" + permission_group_getDeviceSerials = permission_group + "/actions/getDeviceSerials" + permission_group_personPermission = "/api/v1/open/accessControl/personPermission/get" +) + +// 权限组新增 +func PermissionGroupCreate(groupname string) (*model.PermissionGroupCreateRes, error) { + req := &struct { + GroupName string `json:"groupName"` + }{ + GroupName: groupname, + } + + resp, err := hikvisionRequest("POST", permission_group_create, req) + if err != nil { + return nil, err + } + var result = &model.PermissionGroupCreateRes{} + if err := json.Unmarshal(resp, &result); err != nil { + return nil, err + } + return result, nil +} + +// 权限组更新 +func PermissionGroupUpdate(groupid, groupname string) (*model.Hikvision, error) { + req := &struct { + GroupID string `json:"groupId"` + GroupName string `json:"groupName"` + }{ + GroupID: groupid, + GroupName: groupname, + } + + resp, err := hikvisionRequest("POST", permission_group_update, req) + if err != nil { + return nil, err + } + var result = &model.Hikvision{} + if err := json.Unmarshal(resp, &result); err != nil { + return nil, err + } + return result, nil +} + +// 权限组删除 +func PermissionGroupDelete(groupid string) (*model.PermissionGroupDeleteRes, error) { + + resp, err := hikvisionRequest("POST", fmt.Sprintf("%s?groupId=%s", permission_group_delete, groupid), nil) + if err != nil { + return nil, err + } + var result = &model.PermissionGroupDeleteRes{} + if err := json.Unmarshal(resp, &result); err != nil { + return nil, err + } + return result, nil +} + +// 获取权限组列表 +func PermissionGroupList(pageno, pagesize int) (*model.PermissionGroupList, error) { + + req := &struct { + PageNo int `json:"pageNo"` + PageSize int `json:"pageSize"` + }{ + PageNo: pageno, + PageSize: pagesize, + } + + resp, err := hikvisionRequest("POST", permission_group_list, req) + if err != nil { + return nil, err + } + var result = &model.PermissionGroupList{} + if err := json.Unmarshal(resp, &result); err != nil { + return nil, err + } + return result, nil +} + +// 权限组绑定人员 + +// 权限组解绑人员 + +// 权限组获取人员编号列表 + +// 权限组绑定设备 + +// 权限组解绑设备 + +// 权限组获取设备序列号列表 + +// 人员权限信息查询