权限分组完成
This commit is contained in:
parent
72a13a3a49
commit
7fb7d49934
|
|
@ -28,3 +28,73 @@ type PermissionGroupList struct {
|
|||
Rows []PermissionGroup `json:"rows"`
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
type PermissionGroupAddPersons struct {
|
||||
GroupId string `json:"groupId"`
|
||||
EmployeeNos []string `json:"employeeNos"`
|
||||
AutoIssue bool `json:"autoIssue"` //是否自动下发
|
||||
Permissions []PermissionGroupAddPersonsData `json:"permissions"` //人员权限信息列表,如果人员绑定权限组时未指定门禁权限信息,则默认使用人员信息中的门禁权限信息;若人员信息中也没有门禁权限信息,则按默认值下发
|
||||
}
|
||||
|
||||
type PermissionGroupAddPersonsData struct {
|
||||
EmployeeNo string `json:"employeeNo"`
|
||||
PersonPhone string `json:"personPhone"`
|
||||
FloorNo int `json:"floorNo"`
|
||||
RoomNo int `json:"roomNo"`
|
||||
ValidBeginTime string `json:"validBeginTime"`
|
||||
ValidEndTime string `json:"validEndTime"`
|
||||
PlanTemplateNos []int `json:"planTemplateNos"`
|
||||
DynamicCode string `json:"dynamicCode"`
|
||||
MaxOpenDoorTime int `json:"maxOpenDoorTime"`
|
||||
BelongGroup int `json:"belongGroup"`
|
||||
CallNumbers []string `json:"callNumbers"`
|
||||
FloorNumbers []int `json:"floorNumbers"`
|
||||
LocalUIRight int `json:"localUIRight"`
|
||||
AuthCode string `json:"authCode"`
|
||||
}
|
||||
|
||||
type PermissionGroupGetEmployeeNos struct {
|
||||
Hikvision
|
||||
Data struct {
|
||||
PageNo int `json:"pageNo"`
|
||||
PageSize int `json:"pageSize"`
|
||||
Total int `json:"total"`
|
||||
Rows []struct {
|
||||
EmployeeNo string `json:"employeeNo"`
|
||||
} `json:"rows"`
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
type PermissionGroupGetDeviceSerials struct {
|
||||
Hikvision
|
||||
Data struct {
|
||||
PageNo int `json:"pageNo"`
|
||||
PageSize int `json:"pageSize"`
|
||||
Total int `json:"total"`
|
||||
Rows []struct {
|
||||
DeviceSerial string `json:"deviceSerial"`
|
||||
HasCapability bool `json:"hasCapability"`
|
||||
} `json:"rows"`
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
type PermissionGroupGetPersonPermission struct {
|
||||
Hikvision
|
||||
Data struct {
|
||||
PhoneNo string `json:"phoneNo"`
|
||||
PersonType string `json:"personType"`
|
||||
FloorNo int `json:"floorNo"`
|
||||
RoomNo int `json:"roomNo"`
|
||||
ValidBeginTime string `json:"validBeginTime"`
|
||||
ValidEndTime string `json:"validEndTime"`
|
||||
PlanTemplateNos []int `json:"planTemplateNos"`
|
||||
MaxOpenDoorTime int `json:"maxOpenDoorTime"`
|
||||
DynamicCode string `json:"dynamicCode"`
|
||||
BelongGroup string `json:"belongGroup"`
|
||||
CreateTime string `json:"createTime"`
|
||||
LocalUIRight int `json:"localUIRight"`
|
||||
CallNumbers []string `json:"callNumbers"`
|
||||
FloorNumbers []int `json:"floorNumbers"`
|
||||
AuthCode string `json:"authCode"`
|
||||
} `json:"data"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,16 @@ package model
|
|||
type PersonCreateData struct {
|
||||
Hikvision
|
||||
Data struct {
|
||||
Person
|
||||
EmployeeNo string `json:"employeeNo"`
|
||||
PersonName string `json:"personName"`
|
||||
PersonPhone string `json:"personPhone"`
|
||||
FaceUrl string `json:"faceUrl"`
|
||||
PersonType string `json:"personType"`
|
||||
FloorNo int `json:"floorNo"`
|
||||
RoomNo int `json:"roomNo"`
|
||||
ValidBeginTime string `json:"validBeginTime"`
|
||||
ValidEndTime string `json:"validEndTime"`
|
||||
PlanTemplateNos []int `json:"planTemplateNos"`
|
||||
DynamicCode string `json:"dynamicCode"`
|
||||
MaxOpenDoorTime int `json:"maxOpenDoorTime"`
|
||||
CallNumbers []string `json:"callNumbers"`
|
||||
|
|
|
|||
|
|
@ -4,10 +4,230 @@ import (
|
|||
"fmt"
|
||||
"log"
|
||||
"testing"
|
||||
|
||||
"myschools.me/suguo/hikvision/iot/model"
|
||||
)
|
||||
|
||||
func TestOauth(t *testing.T) {
|
||||
// detail, err := DeviceDetail("AF8534579")
|
||||
// result, err := PermissionGroupCreate("第一个权限组")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(result)
|
||||
|
||||
// r2, err := PermissionGroupCreate("第二个权限组")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r2)
|
||||
|
||||
// r3, err := PermissionGroupList(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println("list ", r3)
|
||||
|
||||
// r1, err := PermissionGroupUpdate(result.Data.GroupId, "第一个修改过权限组")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r1)
|
||||
|
||||
// r4, err := PermissionGroupDelete(r2.Data.GroupId)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r4)
|
||||
|
||||
// r5, err := PermissionGroupList(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println("list ", r5)
|
||||
|
||||
r7, err := PersonCreate("666", "GBVFDAF", "18357062933", "", true)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(r7)
|
||||
|
||||
groupid := "4b9e7ab1068d45269b1acb6c8b50d855"
|
||||
|
||||
r6, err := PermissionGroupAddPersons(&model.PermissionGroupAddPersons{
|
||||
GroupId: groupid,
|
||||
EmployeeNos: []string{"666"},
|
||||
AutoIssue: true,
|
||||
Permissions: []model.PermissionGroupAddPersonsData{
|
||||
{
|
||||
EmployeeNo: "666",
|
||||
PersonPhone: "18357062933",
|
||||
FloorNo: 33,
|
||||
RoomNo: 1,
|
||||
ValidBeginTime: "2023-11-23T00:00:59+08:00",
|
||||
ValidEndTime: "2023-11-23T00:00:59+08:00",
|
||||
PlanTemplateNos: []int{1},
|
||||
DynamicCode: "123456",
|
||||
MaxOpenDoorTime: 10,
|
||||
BelongGroup: 2,
|
||||
CallNumbers: []string{"1-1-1-101"},
|
||||
FloorNumbers: []int{1, 3},
|
||||
LocalUIRight: 1,
|
||||
AuthCode: "123456",
|
||||
},
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
fmt.Println("list ", r6)
|
||||
|
||||
r8, err := PermissionGroupGetEmployeeNos(1, 20, groupid)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(r8)
|
||||
|
||||
// r9, err := PermissionGroupRemovePersons(groupid, []string{"333"})
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r9)
|
||||
|
||||
// r10, err := PermissionGroupGetEmployeeNos(1, 20, groupid)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r10)
|
||||
|
||||
// r10, err := PermissionGroupAddDevice(groupid, true, []string{"AF8534579"}, true)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r10)
|
||||
|
||||
// r11, err := PermissionGroupGetDeviceSerials(1, 20, groupid)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r11)
|
||||
|
||||
// r12, err := PermissionGroupRemoveDevice(groupid, []string{"AF8534579"})
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r12)
|
||||
|
||||
// r13, err := PermissionGroupGetDeviceSerials(1, 20, groupid)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r13)
|
||||
|
||||
r14, err := PermissionGroupGetPersonPermission("666", groupid)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(r14)
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
// result, err := PLANWEEKCreateOrUpdate("222", true, []model.PlanWeek{
|
||||
// {
|
||||
// Week: "Monday",
|
||||
// TimeSegment: []model.PlanPort{
|
||||
// {
|
||||
// Index: 1,
|
||||
// Enable: true,
|
||||
// BeginTime: "08:00:00",
|
||||
// EndTime: "10:30:00",
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// })
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(result)
|
||||
|
||||
// r1, err := PLANWEEKGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r1)
|
||||
|
||||
// r2, err := PLANWEEKDelete("111")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r2)
|
||||
|
||||
// r3, err := PLANWEEKGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r3)
|
||||
*/
|
||||
|
||||
/*
|
||||
// result, err := PLANHolidayCreateOrUpdate("555", true, "2023-11-22", "2023-11-25", []model.PlanPort{
|
||||
// {
|
||||
// Index: 1,
|
||||
// Enable: true,
|
||||
// BeginTime: "08:00:00",
|
||||
// EndTime: "10:30:00",
|
||||
// },
|
||||
// })
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(result)
|
||||
|
||||
// r1, err := PLANHolidayGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r1)
|
||||
|
||||
// r2, err := PLANHolidayDelete("555")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r2)
|
||||
|
||||
// r3, err := PLANHolidayGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r3)
|
||||
*/
|
||||
|
||||
/*
|
||||
// detail, err := DeviceDetail("AF8534579")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
|
|
@ -21,7 +241,7 @@ func TestOauth(t *testing.T) {
|
|||
// }
|
||||
// fmt.Println(detail)
|
||||
|
||||
devid := "f65a8b5c05db49388efa04426047de48"
|
||||
// devid := "f65a8b5c05db49388efa04426047de48"
|
||||
// fmt.Println(devid)
|
||||
|
||||
// result, err := PlanWeekConfigSet("userRight", devid, 1, "222")
|
||||
|
|
@ -122,20 +342,20 @@ func TestOauth(t *testing.T) {
|
|||
// }
|
||||
// fmt.Println(r9)
|
||||
|
||||
r10, err := PlanGlobalConfigClear(devid, true, true, true, true)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
// r10, err := PlanGlobalConfigClear(devid, true, true, true, true)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
|
||||
fmt.Println(r10)
|
||||
// fmt.Println(r10)
|
||||
|
||||
detail, err := PLANWeekTempleteGetAll(1, 20)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(detail)
|
||||
// detail, err := PLANWeekTempleteGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(detail)
|
||||
|
||||
// result, err := PlanWeekConfigGet("userRight", devid, 1)
|
||||
// if err != nil {
|
||||
|
|
@ -150,83 +370,4 @@ func TestOauth(t *testing.T) {
|
|||
// return
|
||||
// }
|
||||
// fmt.Println(r4)
|
||||
}
|
||||
|
||||
/*
|
||||
// result, err := PLANWEEKCreateOrUpdate("222", true, []model.PlanWeek{
|
||||
// {
|
||||
// Week: "Monday",
|
||||
// TimeSegment: []model.PlanPort{
|
||||
// {
|
||||
// Index: 1,
|
||||
// Enable: true,
|
||||
// BeginTime: "08:00:00",
|
||||
// EndTime: "10:30:00",
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// })
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(result)
|
||||
|
||||
// r1, err := PLANWEEKGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r1)
|
||||
|
||||
// r2, err := PLANWEEKDelete("111")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r2)
|
||||
|
||||
// r3, err := PLANWEEKGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r3)
|
||||
*/
|
||||
|
||||
/*
|
||||
// result, err := PLANHolidayCreateOrUpdate("555", true, "2023-11-22", "2023-11-25", []model.PlanPort{
|
||||
// {
|
||||
// Index: 1,
|
||||
// Enable: true,
|
||||
// BeginTime: "08:00:00",
|
||||
// EndTime: "10:30:00",
|
||||
// },
|
||||
// })
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(result)
|
||||
|
||||
// r1, err := PLANHolidayGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r1)
|
||||
|
||||
// r2, err := PLANHolidayDelete("555")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r2)
|
||||
|
||||
// r3, err := PLANHolidayGetAll(1, 20)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Println(r3)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -99,15 +99,137 @@ func PermissionGroupList(pageno, pagesize int) (*model.PermissionGroupList, erro
|
|||
}
|
||||
|
||||
// 权限组绑定人员
|
||||
func PermissionGroupAddPersons(req *model.PermissionGroupAddPersons) (*model.Hikvision, error) {
|
||||
|
||||
resp, err := hikvisionRequest("POST", permission_group_addperson, 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 PermissionGroupRemovePersons(groupid string, employeeNos []string) (*model.PermissionGroupDeleteRes, error) {
|
||||
req := &struct {
|
||||
GroupId string `json:"groupId"`
|
||||
EmployeeNos []string `json:"employeeNos"`
|
||||
}{
|
||||
GroupId: groupid,
|
||||
EmployeeNos: employeeNos,
|
||||
}
|
||||
resp, err := hikvisionRequest("POST", permission_group_removePersons, req)
|
||||
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 PermissionGroupGetEmployeeNos(pageNo, pageSize int, groupId string) (*model.PermissionGroupGetEmployeeNos, error) {
|
||||
req := &struct {
|
||||
PageNo int `json:"pageNo"`
|
||||
PageSize int `json:"pageSize"`
|
||||
GroupId string `json:"groupId"`
|
||||
}{
|
||||
PageNo: pageNo,
|
||||
PageSize: pageSize,
|
||||
GroupId: groupId,
|
||||
}
|
||||
resp, err := hikvisionRequest("POST", permission_group_getEmployeeNos, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var result = &model.PermissionGroupGetEmployeeNos{}
|
||||
if err := json.Unmarshal(resp, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// 权限组绑定设备
|
||||
func PermissionGroupAddDevice(groupId string, checkCapability bool, deviceSerials []string, autoIssue bool) (*model.Hikvision, error) {
|
||||
req := &struct {
|
||||
GroupId string `json:"groupId"`
|
||||
CheckCapability bool `json:"checkCapability"` //绑定时校验是否有能力集。该配置建议开启,用于过滤没有能力集的设备并告知开发者。
|
||||
DeviceSerials []string `json:"deviceSerials"`
|
||||
AutoIssue bool `json:"autoIssue"` //是否自动下发,true或者不填默认调用本接口后自动下发权限组,false为手动下发(需要调用根据权限组下发接口下发)
|
||||
}{
|
||||
GroupId: groupId,
|
||||
CheckCapability: checkCapability,
|
||||
DeviceSerials: deviceSerials,
|
||||
AutoIssue: autoIssue,
|
||||
}
|
||||
resp, err := hikvisionRequest("POST", permission_group_addDevices, 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 PermissionGroupRemoveDevice(groupId string, deviceSerials []string) (*model.PermissionGroupDeleteRes, error) {
|
||||
req := &struct {
|
||||
GroupId string `json:"groupId"`
|
||||
DeviceSerials []string `json:"deviceSerials"`
|
||||
}{
|
||||
GroupId: groupId,
|
||||
DeviceSerials: deviceSerials,
|
||||
}
|
||||
resp, err := hikvisionRequest("POST", permission_group_removeDevices, req)
|
||||
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 PermissionGroupGetDeviceSerials(pageNo, pageSize int, groupId string) (*model.PermissionGroupGetDeviceSerials, error) {
|
||||
req := &struct {
|
||||
PageNo int `json:"pageNo"`
|
||||
PageSize int `json:"pageSize"`
|
||||
GroupId string `json:"groupId"`
|
||||
}{
|
||||
PageNo: pageNo,
|
||||
PageSize: pageSize,
|
||||
GroupId: groupId,
|
||||
}
|
||||
resp, err := hikvisionRequest("POST", permission_group_getDeviceSerials, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var result = &model.PermissionGroupGetDeviceSerials{}
|
||||
if err := json.Unmarshal(resp, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// 人员权限信息查询
|
||||
func PermissionGroupGetPersonPermission(employeeNo, groupId string) (*model.PermissionGroupGetPersonPermission, error) {
|
||||
|
||||
resp, err := hikvisionRequest("GET", fmt.Sprintf("%s?employeeNo=%s&groupId=%s", permission_group_personPermission, employeeNo, groupId), nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var result = &model.PermissionGroupGetPersonPermission{}
|
||||
if err := json.Unmarshal(resp, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue