|
@@ -7,6 +7,7 @@ import (
|
|
|
"city_chips/pkg/helper/uuid"
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
+ "github.com/tidwall/gjson"
|
|
|
"math/rand"
|
|
|
"net/http"
|
|
|
"strconv"
|
|
@@ -14,7 +15,6 @@ import (
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"github.com/spf13/viper"
|
|
|
- "go.uber.org/zap"
|
|
|
)
|
|
|
|
|
|
type HikvisionHandler struct {
|
|
@@ -340,46 +340,44 @@ func (h *HikvisionHandler) GetAccess(ctx *gin.Context) {
|
|
|
// "streamform": "ps"
|
|
|
// }
|
|
|
func (h *HikvisionHandler) GetHikvisionMonitoring(ctx *gin.Context) {
|
|
|
- m := make(map[string]string)
|
|
|
+ m := make(map[string]any)
|
|
|
cameraIndexCode := ctx.Query("cameraIndexCode")
|
|
|
+ control := ctx.Query("control")
|
|
|
m["cameraIndexCode"] = cameraIndexCode
|
|
|
m["protocol"] = "ws"
|
|
|
if len(cameraIndexCode) <= 0 || cameraIndexCode == "" {
|
|
|
resp.HandleError(ctx, 1203, "设备编码不能为空", nil)
|
|
|
return
|
|
|
}
|
|
|
+ hikvision, err := h.hikvisionService.Hikvision(h.conf.GetString("hikvision.api.previewURLs"), m, 15)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("获取获取监控点资源失败")
|
|
|
+ resp.HandleError(ctx, 1201, "获取获取监控点资源失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if hikvision.Code != "0" {
|
|
|
+ atoi, _ := strconv.Atoi(hikvision.Code)
|
|
|
+ resp.HandleError(ctx, atoi, hikvision.Msg, nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ marshalString, err := json.Marshal(hikvision)
|
|
|
+ if err != nil {
|
|
|
+ resp.HandleError(ctx, 1202, "json序列化失败", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var backquote bool
|
|
|
+ if control == "" {
|
|
|
+ backquote = true
|
|
|
+ } else {
|
|
|
+ backquote = false
|
|
|
+ }
|
|
|
+ url := gjson.Get(string(marshalString), "data.url")
|
|
|
ctx.HTML(http.StatusOK, "h5player.html", gin.H{
|
|
|
"title": "测试",
|
|
|
- "wsurl": "ws://127.0.0.1/" + cameraIndexCode,
|
|
|
+ "wsurl": url,
|
|
|
"cameraIndexCode": cameraIndexCode,
|
|
|
+ "control": backquote,
|
|
|
})
|
|
|
- //fmt.Println("cameraIndexCode", h.conf.GetString("hikvision.api.previewURLs"))
|
|
|
- //hikvision, err := h.hikvisionService.Hikvision(h.conf.GetString("hikvision.api.previewURLs"), m, 15)
|
|
|
- ////返回结果{
|
|
|
- //// "code": "0",
|
|
|
- //// "msg": "success",
|
|
|
- //// "data": {
|
|
|
- //// "url": "rtsp://10.2.145.66:655/EUrl/CLJ52BW"
|
|
|
- //// }
|
|
|
- ////}
|
|
|
- //if err != nil {
|
|
|
- // h.logger.Error("获取获取监控点资源失败")
|
|
|
- // resp.HandleError(ctx, 1201, "获取获取监控点资源失败", err)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //if hikvision.Code != "0" {
|
|
|
- // atoi, _ := strconv.Atoi(hikvision.Code)
|
|
|
- // resp.HandleError(ctx, atoi, hikvision.Msg, nil)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //marshalString, err := json.Marshal(hikvision)
|
|
|
- //if err != nil {
|
|
|
- // resp.HandleError(ctx, 1202, "json序列化失败", nil)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //url := gjson.Get(string(marshalString), "data.url")
|
|
|
- //
|
|
|
- //resp.HandleSuccess(ctx, url)
|
|
|
}
|
|
|
|
|
|
// 视频监控云台控制{
|
|
@@ -393,7 +391,7 @@ func (h *HikvisionHandler) GetHikvisionMonitoring(ctx *gin.Context) {
|
|
|
//}
|
|
|
|
|
|
func (h *HikvisionHandler) Gimbalcontrol(ctx *gin.Context) {
|
|
|
- m := make(map[string]string)
|
|
|
+ m := make(map[string]any)
|
|
|
cameraIndexCode := ctx.Query("cameraIndexCode")
|
|
|
command := ctx.Query("command")
|
|
|
action := ctx.Query("action")
|
|
@@ -427,7 +425,7 @@ func (h *HikvisionHandler) Gimbalcontrol(ctx *gin.Context) {
|
|
|
|
|
|
// VisitorInfoCount 获取今日访客信息包含:今日来访总人数(已签离人数,未签离人数),预约人数
|
|
|
func (h *HikvisionHandler) VisitorInfoCount(c *gin.Context) {
|
|
|
- m := make(map[string]string)
|
|
|
+ m := make(map[string]any)
|
|
|
parkId := c.Query("parkId")
|
|
|
m["parkId"] = parkId
|
|
|
hikvision, err := h.hikvisionService.Hikvision(h.conf.GetString("hikvision.api.visitorInfo"), m, 15)
|
|
@@ -446,6 +444,58 @@ func (h *HikvisionHandler) VisitorInfoCount(c *gin.Context) {
|
|
|
|
|
|
// GetDoorSearch 查询门禁点列表v2
|
|
|
func (h *HikvisionHandler) GetDoorSearch(ctx *gin.Context) {
|
|
|
+ var Acs model.DoorSearch
|
|
|
+ var AcsDevice model.AcsDoorStates
|
|
|
+
|
|
|
+ name := ctx.Query("name")
|
|
|
+ pageNo := ctx.Query("pageNo")
|
|
|
+ pageSize := ctx.Query("pageSize")
|
|
|
+
|
|
|
+ err, result := h.hikvisionService.GetDoorSearch(pageNo, pageSize, name)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("获取门禁设备列表失败")
|
|
|
+ resp.HandleError(ctx, 1201, "获取门禁设备列表失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ marshal, err := json.Marshal(result)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json序列化失败")
|
|
|
+ resp.HandleError(ctx, 1202, "json序列化失败", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = json.Unmarshal(marshal, &Acs)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json反序列化失败")
|
|
|
+ resp.HandleError(ctx, 1203, "json反序列化失败", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for i, _ := range Acs.Data.List {
|
|
|
+ err, h2 := h.hikvisionService.GetAcsDoorStates([]string{Acs.Data.List[i].IndexCode})
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("获取门禁设备在线状态失败")
|
|
|
+ resp.HandleError(ctx, 1201, "获取门禁设备在线状态失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ bytes, err := json.Marshal(h2)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json序列化失败")
|
|
|
+ resp.HandleError(ctx, 1202, "json序列化失败", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = json.Unmarshal(bytes, &AcsDevice)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json反序列化失败")
|
|
|
+ resp.HandleError(ctx, 1203, "json反序列化失败", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ Acs.Data.List[i].State = AcsDevice.Data.AuthDoorList[0].DoorState
|
|
|
+ }
|
|
|
+ resp.HandleSuccess(ctx, Acs.Data)
|
|
|
+}
|
|
|
+
|
|
|
+// GetDoorStates 获取门禁设备在线状态
|
|
|
+func (h *HikvisionHandler) GetDoorStates(ctx *gin.Context) {
|
|
|
// 设置响应头
|
|
|
ctx.Header("Content-Type", "text/event-stream")
|
|
|
ctx.Header("Cache-Control", "no-cache")
|
|
@@ -455,11 +505,10 @@ func (h *HikvisionHandler) GetDoorSearch(ctx *gin.Context) {
|
|
|
notify := ctx.Writer.CloseNotify()
|
|
|
|
|
|
var response model.Response
|
|
|
- //var doorlist []model.DoorList
|
|
|
- //var doorResp model.DoorResp
|
|
|
- m := make(map[string]string)
|
|
|
- m["pageNo"] = "1"
|
|
|
- m["pageSize"] = "1000"
|
|
|
+ var AcsDevice model.AcsDevice
|
|
|
+ indexCodes := ctx.Query("indexCodes")
|
|
|
+ pageNo := ctx.Query("pageNo")
|
|
|
+ pageSize := ctx.Query("pageSize")
|
|
|
|
|
|
for conn {
|
|
|
select {
|
|
@@ -468,100 +517,40 @@ func (h *HikvisionHandler) GetDoorSearch(ctx *gin.Context) {
|
|
|
fmt.Println("断开连接")
|
|
|
return
|
|
|
default:
|
|
|
- doorSearch, err := h.hikvisionService.Hikvision(h.conf.GetString("hikvision.api.doorSearch"), m, 15)
|
|
|
+ err, h2 := h.hikvisionService.GetDoorStates(pageNo, pageSize, []string{indexCodes})
|
|
|
if err != nil {
|
|
|
- h.logger.Error("获取门禁点列表失败")
|
|
|
+ h.logger.Error("获取门禁设备在线状态失败")
|
|
|
response.Code = 1203
|
|
|
- response.Msg = "获取门禁点列表失败"
|
|
|
+ response.Msg = "获取门禁设备在线状态失败"
|
|
|
response.Data = nil
|
|
|
res, _ := json.Marshal(&response)
|
|
|
fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
ctx.Writer.Flush()
|
|
|
+ conn = false
|
|
|
return
|
|
|
}
|
|
|
- if doorSearch.Code != "0" {
|
|
|
+ bytes, err := json.Marshal(h2)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json序列化失败")
|
|
|
response.Code = 1203
|
|
|
- response.Msg = "获取门禁点列表失败"
|
|
|
+ response.Msg = "json序列化失败"
|
|
|
+ response.Data = nil
|
|
|
+ res, _ := json.Marshal(&response)
|
|
|
+ fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
+ }
|
|
|
+ err = json.Unmarshal(bytes, &AcsDevice)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json反序列化失败")
|
|
|
+ response.Code = 1203
|
|
|
+ response.Msg = "json反序列化失败"
|
|
|
response.Data = nil
|
|
|
res, _ := json.Marshal(&response)
|
|
|
fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
- ctx.Writer.Flush()
|
|
|
conn = false
|
|
|
- return
|
|
|
}
|
|
|
- // 获取门禁状态
|
|
|
- //doorIndexCodes := []string{""}
|
|
|
- //for _, v := range doorResp.Data.List {
|
|
|
- // doorIndexCodes = append(doorIndexCodes, v.IndexCode)
|
|
|
- //}
|
|
|
- //data := map[string]string{
|
|
|
- // "doorIndexCodes": strings.Join(doorIndexCodes, ","),
|
|
|
- //}
|
|
|
- //doorStates, err := h.hikvisionService.Hikvision(h.conf.GetString("hikvision.api.doorStates"), data, 15)
|
|
|
- //if err != nil {
|
|
|
- // h.logger.Error("获取门禁状态失败")
|
|
|
- // response.Code = 1203
|
|
|
- // response.Msg = "获取门禁状态失败"
|
|
|
- // response.Data = nil
|
|
|
- // res, _ := json.Marshal(&response)
|
|
|
- // fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
- // ctx.Writer.Flush()
|
|
|
- // conn = false
|
|
|
- // return
|
|
|
- //}
|
|
|
- //if doorStates.Code != "0" {
|
|
|
- // response.Code = 1203
|
|
|
- // response.Msg = "获取门禁状态失败"
|
|
|
- // response.Data = nil
|
|
|
- // res, _ := json.Marshal(&response)
|
|
|
- // fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
- // ctx.Writer.Flush()
|
|
|
- // conn = false
|
|
|
- // return
|
|
|
- //}
|
|
|
- //
|
|
|
- //for i := 0; i < 3; i++ {
|
|
|
- // genUUID := uuid.GenUUID()
|
|
|
- // name := fmt.Sprintf("资源:%v", i+1)
|
|
|
- //
|
|
|
- // list := model.DoorList{
|
|
|
- // IndexCode: genUUID,
|
|
|
- // ResourceType: "door",
|
|
|
- // Name: name,
|
|
|
- // DoorNo: genUUID,
|
|
|
- // ChannelNo: genUUID,
|
|
|
- // ParentIndexCode: genUUID,
|
|
|
- // ControlOneId: genUUID,
|
|
|
- // ControlTwoId: genUUID,
|
|
|
- // ReaderInId: genUUID,
|
|
|
- // ReaderOutId: genUUID,
|
|
|
- // DoorSerial: i + 1,
|
|
|
- // TreatyType: genUUID,
|
|
|
- // RegionIndexCode: genUUID,
|
|
|
- // RegionPath: genUUID,
|
|
|
- // CreateTime: time.Now().Format("2006-01-02 15:04:05"),
|
|
|
- // UpdateTime: time.Now().Format("2006-01-02 15:04:05"),
|
|
|
- // Description: genUUID,
|
|
|
- // ChannelType: genUUID,
|
|
|
- // RegionName: genUUID,
|
|
|
- // RegionPathName: genUUID,
|
|
|
- // InstallLocation: genUUID,
|
|
|
- // }
|
|
|
- // doorlist = append(doorlist, list)
|
|
|
- //}
|
|
|
- //doorResp := model.DoorResp{
|
|
|
- // Code: "0",
|
|
|
- // Msg: "SUCCESS",
|
|
|
- // Data: struct {
|
|
|
- // Total int `json:"total"`
|
|
|
- // PageNo int `json:"pageNo"`
|
|
|
- // PageSize int `json:"pageSize"`
|
|
|
- // List []model.DoorList `json:"list"`
|
|
|
- // }{Total: 3, PageNo: 1, PageSize: 1, List: doorlist},
|
|
|
- //}
|
|
|
response.Code = 200
|
|
|
response.Msg = "获取门禁点列表成功"
|
|
|
- response.Data = doorSearch.Data
|
|
|
+ response.Data = AcsDevice.Data
|
|
|
res, _ := json.Marshal(&response)
|
|
|
fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
ctx.Writer.Flush()
|
|
@@ -572,13 +561,6 @@ func (h *HikvisionHandler) GetDoorSearch(ctx *gin.Context) {
|
|
|
|
|
|
// DoControl 控制门禁
|
|
|
func (h *HikvisionHandler) DoControl(ctx *gin.Context) {
|
|
|
- // 设置响应头
|
|
|
- ctx.Header("Content-Type", "text/event-stream")
|
|
|
- ctx.Header("Cache-Control", "no-cache")
|
|
|
- ctx.Header("Connection", "keep-alive")
|
|
|
- // 监听客户端断开连接
|
|
|
- conn := true
|
|
|
- notify := ctx.Writer.CloseNotify()
|
|
|
doorIndexCodes := ctx.Query("doorIndexCodes")
|
|
|
controlType := ctx.Query("controlType")
|
|
|
if len(doorIndexCodes) <= 0 || len(controlType) <= 0 {
|
|
@@ -590,76 +572,43 @@ func (h *HikvisionHandler) DoControl(ctx *gin.Context) {
|
|
|
m["doorIndexCodes"] = doorIndexCodes
|
|
|
m["controlType"] = controlType
|
|
|
var response model.Response
|
|
|
- for conn {
|
|
|
- select {
|
|
|
- case <-notify:
|
|
|
- conn = false
|
|
|
- fmt.Println("断开连接")
|
|
|
- return
|
|
|
- default:
|
|
|
- //hikvision, err := h.hikvisionService.Hikvision(h.conf.GetString("hikvision.api.control"), m, 15)
|
|
|
- //if err != nil {
|
|
|
- // h.logger.Error("控制门禁失败")
|
|
|
- // response.Code = 1203
|
|
|
- // response.Msg = "控制门禁失败"
|
|
|
- // response.Data = nil
|
|
|
- // res, _ := json.Marshal(&response)
|
|
|
- // fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
- // ctx.Writer.Flush()
|
|
|
- // conn = false
|
|
|
- // return
|
|
|
- //}
|
|
|
- //if hikvision.Code != "0" {
|
|
|
- // response.Code = 1203
|
|
|
- // response.Msg = "控制门禁失败"
|
|
|
- // response.Data = nil
|
|
|
- // res, _ := json.Marshal(&response)
|
|
|
- // fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
- // ctx.Writer.Flush()
|
|
|
- // conn = false
|
|
|
- // return
|
|
|
- //}
|
|
|
- genUUID := uuid.GenUUID()
|
|
|
- doControl := model.DoControl{
|
|
|
- Code: "0",
|
|
|
- Msg: "SUCCESS",
|
|
|
- Data: []model.DoControlData{{
|
|
|
- DoorIndexCode: genUUID,
|
|
|
- ControlResultCode: 0,
|
|
|
- ControlResultDesc: "success",
|
|
|
- }},
|
|
|
- }
|
|
|
- response.Code = 200
|
|
|
- response.Msg = "控制门禁成功"
|
|
|
- response.Data = doControl.Data
|
|
|
- res, _ := json.Marshal(&response)
|
|
|
- fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
- ctx.Writer.Flush()
|
|
|
- time.Sleep(10 * time.Second)
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ genUUID := uuid.GenUUID()
|
|
|
+ doControl := model.DoControl{
|
|
|
+ Code: "0",
|
|
|
+ Msg: "SUCCESS",
|
|
|
+ Data: []model.DoControlData{{
|
|
|
+ DoorIndexCode: genUUID,
|
|
|
+ ControlResultCode: 0,
|
|
|
+ ControlResultDesc: "success",
|
|
|
+ }},
|
|
|
+ }
|
|
|
+ response.Code = 200
|
|
|
+ response.Msg = "控制门禁成功"
|
|
|
+ response.Data = doControl.Data
|
|
|
+ res, _ := json.Marshal(&response)
|
|
|
+ fmt.Fprintf(ctx.Writer, "data: %s\n\n", string(res))
|
|
|
+ ctx.Writer.Flush()
|
|
|
+ time.Sleep(10 * time.Second)
|
|
|
}
|
|
|
|
|
|
// RealTimeInspection 入侵报警事件日志查询
|
|
|
func (h *HikvisionHandler) RealTimeInspection(ctx *gin.Context) {
|
|
|
- m := make(map[string]string)
|
|
|
- m["startTime"] = ctx.Query("startTime") //开始时间
|
|
|
- m["endTime"] = ctx.Query("endTime") //结束时间
|
|
|
- m["pageNo"] = ctx.Query("pageNo")
|
|
|
- m["pageSize"] = h.conf.GetString("hikvision.pageSize")
|
|
|
+ pageNo := ctx.Query("pageNo")
|
|
|
+ pageSize := ctx.Query("pageSize")
|
|
|
+ srcType := ctx.Query("srcType")
|
|
|
+ startTime := ctx.Query("startTime")
|
|
|
+ endTime := ctx.Query("endTime")
|
|
|
+ srcName := ctx.Query("srcName")
|
|
|
+ eventType := ctx.Query("eventType")
|
|
|
+ eventTypeInt, _ := strconv.Atoi(eventType)
|
|
|
var eventLogs model.EventLogs
|
|
|
- hikvision, err := h.hikvisionService.Hikvision(h.conf.GetString("hikvision.api.eventLogs"), m, 15)
|
|
|
+ err, result := h.hikvisionService.GetEventLogs(pageNo, pageSize, srcType, startTime, endTime, srcName, eventTypeInt)
|
|
|
if err != nil {
|
|
|
- h.logger.Error("入侵报警事件日志查询失败", zap.Error(err))
|
|
|
- resp.HandleError(ctx, 1203, "入侵报警事件日志查询失败", err)
|
|
|
- return
|
|
|
- }
|
|
|
- if hikvision.Code != "0" {
|
|
|
- h.logger.Error("入侵报警事件日志查询失败")
|
|
|
- resp.HandleError(ctx, 1203, "入侵报警事件日志查询失败", hikvision.Code)
|
|
|
+ resp.HandleError(ctx, 1203, "获取入侵报警事件日志查询失败", err)
|
|
|
return
|
|
|
}
|
|
|
- marshal, err := json.Marshal(hikvision)
|
|
|
+ marshal, err := json.Marshal(result)
|
|
|
if err != nil {
|
|
|
h.logger.Error("json序列化失败")
|
|
|
resp.HandleError(ctx, 1203, "json序列化失败", err)
|
|
@@ -673,6 +622,100 @@ func (h *HikvisionHandler) RealTimeInspection(ctx *gin.Context) {
|
|
|
}
|
|
|
for i, _ := range eventLogs.Data.List {
|
|
|
eventLogs.Data.List[i].SrcType = model.ResourceType[eventLogs.Data.List[i].SrcType]
|
|
|
+ //eventLogs.Data.List[i].EventType = model.IntrusionAlarmEventType[eventLogs.Data.List[i].EventType]
|
|
|
+ }
|
|
|
+ resp.HandleSuccess(ctx, eventLogs.Data)
|
|
|
+}
|
|
|
+
|
|
|
+// GetCameraSearch 获取摄像头查询
|
|
|
+func (h *HikvisionHandler) GetCameraSearch(ctx *gin.Context) {
|
|
|
+ pageNo := ctx.Query("pageNo")
|
|
|
+ pageSize := ctx.Query("pageSize")
|
|
|
+ name := ctx.Query("name")
|
|
|
+ err, search := h.hikvisionService.GetcameraSearch(pageNo, pageSize, name)
|
|
|
+ if err != nil {
|
|
|
+ resp.HandleError(ctx, 1203, "获取摄像头查询失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var cameraSearch model.CameraSearch
|
|
|
+ marshal, err := json.Marshal(search)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json序列化失败")
|
|
|
+ resp.HandleError(ctx, 1203, "json序列化失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = json.Unmarshal(marshal, &cameraSearch)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json反序列化失败")
|
|
|
+ resp.HandleError(ctx, 1203, "json反序列化失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for i, _ := range cameraSearch.Data.List {
|
|
|
+ err, result := h.hikvisionService.GetManualCapture(cameraSearch.Data.List[i].IndexCode)
|
|
|
+ if err != nil {
|
|
|
+ cameraSearch.Data.List[i].Url = ""
|
|
|
+ } else {
|
|
|
+ var manualCapture model.ManualCapture
|
|
|
+ marshal, err := json.Marshal(result)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json序列化失败")
|
|
|
+ resp.HandleError(ctx, 1203, "json序列化失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = json.Unmarshal(marshal, &manualCapture)
|
|
|
+ if err != nil {
|
|
|
+ h.logger.Error("json反序列化失败")
|
|
|
+ resp.HandleError(ctx, 1203, "json反序列化失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ cameraSearch.Data.List[i].Url = manualCapture.Data.PicUrl
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.HandleSuccess(ctx, cameraSearch.Data)
|
|
|
+}
|
|
|
+
|
|
|
+// GetCameraList 获取监控点资源
|
|
|
+func (h *HikvisionHandler) GetCameraList(ctx *gin.Context) {
|
|
|
+ pageNo := ctx.Query("pageNo")
|
|
|
+ pageSize := ctx.Query("pageSize")
|
|
|
+ err, search := h.hikvisionService.GetCamerasList(pageNo, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ resp.HandleError(ctx, 1203, "获取监控点资源失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.HandleSuccess(ctx, search.Data)
|
|
|
+}
|
|
|
+
|
|
|
+// GetAcsDeviceSearch 获取门禁设备查询
|
|
|
+func (h *HikvisionHandler) GetAcsDeviceSearch(ctx *gin.Context) {
|
|
|
+ pageNo := ctx.Query("pageNo")
|
|
|
+ pageSize := ctx.Query("pageSize")
|
|
|
+ name := ctx.Query("name")
|
|
|
+ err, search := h.hikvisionService.GetAcsDeviceSearch(pageNo, pageSize, name)
|
|
|
+ if err != nil {
|
|
|
+ resp.HandleError(ctx, 1203, "获取门禁设备列表失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.HandleSuccess(ctx, search.Data)
|
|
|
+}
|
|
|
+
|
|
|
+// GetDoorDoControl 控制门禁点
|
|
|
+func (h *HikvisionHandler) GetDoorDoControl(ctx *gin.Context) {
|
|
|
+ doorIndexCodes := ctx.QueryArray("doorIndexCodes")
|
|
|
+ controlType := ctx.Query("controlType")
|
|
|
+ atoi, err2 := strconv.Atoi(controlType)
|
|
|
+ if err2 != nil {
|
|
|
+ resp.HandleError(ctx, 1203, "参数错误", err2)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(doorIndexCodes) <= 0 || len(doorIndexCodes) > 10 {
|
|
|
+ resp.HandleError(ctx, 1203, "参数错误", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err, search := h.hikvisionService.GetDoorDoControl(doorIndexCodes, atoi)
|
|
|
+ if err != nil {
|
|
|
+ resp.HandleError(ctx, 1203, "控制门禁失败", err.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- resp.HandleSuccess(ctx, hikvision.Data)
|
|
|
+ resp.HandleSuccess(ctx, search.Data)
|
|
|
}
|