From ac6cc166efa59b881674b39621726cb575cf42a2 Mon Sep 17 00:00:00 2001 From: wyh Date: Tue, 21 Nov 2023 16:26:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=A1=E7=89=87=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iot/card-model.go | 84 +++++++++++++++++++++++++++++++++++++++++ iot/model/card-model.go | 7 ++++ 2 files changed, 91 insertions(+) create mode 100644 iot/card-model.go create mode 100644 iot/model/card-model.go diff --git a/iot/card-model.go b/iot/card-model.go new file mode 100644 index 0000000..cf1d663 --- /dev/null +++ b/iot/card-model.go @@ -0,0 +1,84 @@ +package iot + +import ( + "encoding/json" + "fmt" + + "myschools.me/suguo/hikvision/iot/model" +) + +const ( + CARD_BASE = "https://api2.hik-cloud.com/api/v1/open/basic/cards" + CARD_CREATE = CARD_BASE + "/batchCreate" + CARD_DELETE = CARD_BASE + "/batchDelete" + CARD_DELETE_CARDS = CARD_BASE + "/deletePersonCards" +) + +// 新增卡片 +func CardCreate(cards []model.CardCreateReq) (*model.Hikvision, error) { + req := &struct{ Cards []model.CardCreateReq }{ + Cards: cards, + } + + resp, err := hikvisionRequest("POST", CARD_CREATE, req) + if err != nil { + return nil, err + } + var result = &model.Hikvision{} + if err := json.Unmarshal(resp, &result); err != nil { + return nil, err + } + + if result.Code != 200 { + return nil, fmt.Errorf("result errcode:%d errmsg:%s", result.Code, result.Message) + } + return result, nil +} + +// 删除卡片 +func CardDelete(cardNos []string) (*model.Hikvision, error) { + req := &struct { + CardNos []string `json:"cardNos"` + }{ + CardNos: cardNos, + } + + resp, err := hikvisionRequest("POST", CARD_DELETE, req) + if err != nil { + return nil, err + } + var result = &model.Hikvision{} + if err := json.Unmarshal(resp, &result); err != nil { + return nil, err + } + + if result.Code != 200 { + return nil, fmt.Errorf("result errcode:%d errmsg:%s", result.Code, result.Message) + } + return result, nil +} + +// 根据人员编号删除卡片 +func CardDeleteByEmployeeNo(employeeNo string, cardNos []string) (*model.Hikvision, error) { + req := &struct { + EmployeeNo string `json:"employeeNo"` + CardNos []string `json:"cardNos"` + }{ + EmployeeNo: employeeNo, + CardNos: cardNos, + } + + resp, err := hikvisionRequest("POST", CARD_DELETE_CARDS, req) + if err != nil { + return nil, err + } + var result = &model.Hikvision{} + if err := json.Unmarshal(resp, &result); err != nil { + return nil, err + } + + if result.Code != 200 { + return nil, fmt.Errorf("result errcode:%d errmsg:%s", result.Code, result.Message) + } + return result, nil +} diff --git a/iot/model/card-model.go b/iot/model/card-model.go new file mode 100644 index 0000000..b17972c --- /dev/null +++ b/iot/model/card-model.go @@ -0,0 +1,7 @@ +package model + +type CardCreateReq struct { + CardNo string `json:"cardNo"` + CardType string `json:"cardType"` + EmployeeNo string `json:"employeeNo"` +}