hikvision.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  1. package model
  2. import (
  3. "gorm.io/gorm"
  4. "time"
  5. )
  6. type Hikvision struct {
  7. gorm.Model
  8. }
  9. type Monitor struct {
  10. Id int `json:"Id"`
  11. Name string `json:"Name"`
  12. Location string `json:"Location"` //位置
  13. State int `json:"State"` //状态
  14. }
  15. type MonitorNms struct {
  16. Id int `json:"Id"`
  17. Name string `json:"Name"`
  18. InspectResult int `json:"InspectResult"` //状态(0-视频异常,1-视频正常,2-登录失败,3-取流异常,4-解码失败,5-码流延时,6-诊断失败)
  19. }
  20. type RealTimeInspection struct {
  21. Id int `json:"Id"`
  22. Name string `json:"Name"` //名称
  23. Location string `json:"Location"` //位置
  24. Event string `json:"Event"` //事件-列3
  25. Date string `json:"Date"`
  26. }
  27. type Device struct {
  28. Id int `json:"Id"`
  29. Car string `json:"Car"` //车牌号
  30. Name string `json:"Name"` //名称
  31. State int `json:"State"` //状态
  32. Date string `json:"Date"` //事件-列3
  33. }
  34. type Visitor struct {
  35. Id int `json:"Id"`
  36. Name string `json:"Name"` //名称
  37. State int `json:"State"` //状态
  38. Phone string `json:"Phone"` //电话
  39. Location string `json:"Location"` //位置
  40. Date string `json:"Date"` //时间
  41. }
  42. type AlarmList struct {
  43. Id int `json:"Id"`
  44. Name string `json:"Name"` //名称
  45. AlarmContent string `json:"AlarmContent"` //告警内容
  46. Location string `json:"Location"` //位置
  47. State int `json:"State"` //状态
  48. Date string `json:"Date"` //时间
  49. }
  50. type Door struct {
  51. Name string `json:"name"`
  52. RegionIndexCodes []string `json:"regionIndexCodes"`
  53. IsSubRegion bool `json:"isSubRegion"`
  54. PageNo int `json:"pageNo"`
  55. PageSize int `json:"pageSize"`
  56. AuthCodes []string `json:"authCodes"`
  57. Expressions []struct {
  58. Key string `json:"key"`
  59. Operator int `json:"operator"`
  60. Values []string `json:"values"`
  61. } `json:"expressions"`
  62. OrderBy string `json:"orderBy"`
  63. OrderType string `json:"orderType"`
  64. }
  65. type DoorResp struct {
  66. Code string `json:"code"`
  67. Msg string `json:"msg"`
  68. Data struct {
  69. Total int `json:"total"`
  70. PageNo int `json:"pageNo"`
  71. PageSize int `json:"pageSize"`
  72. List []DoorList `json:"list"`
  73. } `json:"data"`
  74. }
  75. type DoorList struct {
  76. IndexCode string `json:"indexCode"` //资源唯一编码
  77. ResourceType string `json:"resourceType"` //资源类型
  78. Name string `json:"name"` //资源名称
  79. DoorNo string `json:"doorNo"` //门禁点编号
  80. ChannelNo string `json:"channelNo"` //通道号
  81. ParentIndexCode string `json:"parentIndexCode"` //父资源索引
  82. ControlOneId string `json:"controlOneId"` //一级控制器id
  83. ControlTwoId string `json:"controlTwoId"` //二级控制器id
  84. ReaderInId string `json:"readerInId"` //读卡器1
  85. ReaderOutId string `json:"readerOutId"` //读卡器2
  86. DoorSerial int `json:"doorSerial"` //门序号
  87. TreatyType string `json:"treatyType"` //接入协议
  88. RegionIndexCode string `json:"regionIndexCode"` //所属区域
  89. RegionPath string `json:"regionPath"` //所属区域目录,以@符号分割,包含本节点
  90. CreateTime string `json:"createTime"` //创建时间
  91. UpdateTime string `json:"updateTime"` //更新时间
  92. Description string `json:"description"` //描述
  93. ChannelType string `json:"channelType"` //通道类型
  94. RegionName string `json:"regionName"` //区域名称
  95. RegionPathName string `json:"regionPathName"` //区域目录名称
  96. InstallLocation string `json:"installLocation"` //安装位置
  97. }
  98. type Response struct {
  99. RequestId string `protobuf:"bytes,1,opt,name=requestId,proto3" json:"requestId,omitempty"`
  100. Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`
  101. Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
  102. Data any `json:"data"`
  103. }
  104. type DoControl struct {
  105. Code string `json:"code"`
  106. Msg string `json:"msg"`
  107. Data []DoControlData `json:"data"`
  108. }
  109. type DoControlData struct {
  110. DoorIndexCode string `json:"doorIndexCode"`
  111. ControlResultCode int `json:"controlResultCode"`
  112. ControlResultDesc string `json:"controlResultDesc"`
  113. }
  114. type Doorstates struct {
  115. Code string `json:"code"`
  116. Msg string `json:"msg"`
  117. Data struct {
  118. AuthDoorList []struct {
  119. DoorIndexCode string `json:"doorIndexCode"` //门禁点indexCode
  120. DoorState int `json:"doorState"` //门状态,0 初始状态,1 开门状态,2关门状态,3离线状态
  121. } `json:"authDoorList"`
  122. NoAuthDoorIndexCodeList []string `json:"noAuthDoorIndexCodeList"` //没有权限的门禁点集合
  123. } `json:"data"`
  124. }
  125. // DeviceResource 设备资源
  126. type DeviceResource struct {
  127. Code string `json:"code"`
  128. Msg string `json:"msg"`
  129. Data struct {
  130. Total int `json:"total"`
  131. PageNo int `json:"pageNo"`
  132. PageSize int `json:"pageSize"`
  133. List []struct {
  134. IndexCode string `json:"indexCode"`
  135. Name string `json:"name"`
  136. ResourceType string `json:"resourceType"`
  137. DoorNo string `json:"doorNo"`
  138. Description string `json:"description"`
  139. ParentIndexCodes string `json:"parentIndexCodes"`
  140. RegionIndexCode string `json:"regionIndexCode"`
  141. RegionPath string `json:"regionPath"`
  142. ChannelType string `json:"channelType"`
  143. ChannelNo string `json:"channelNo"`
  144. InstallLocation string `json:"installLocation"`
  145. CapabilitySet string `json:"capabilitySet"`
  146. ControlOneId string `json:"controlOneId"`
  147. ControlTwoId string `json:"controlTwoId"`
  148. ReaderInId string `json:"readerInId"`
  149. ReaderOutId string `json:"readerOutId"`
  150. ComId string `json:"comId"`
  151. CreateTime string `json:"createTime"`
  152. UpdateTime string `json:"updateTime"`
  153. } `json:"list"`
  154. } `json:"data"`
  155. }
  156. type EventLogs struct {
  157. Code string `json:"code"`
  158. Msg string `json:"msg"`
  159. Data struct {
  160. Total int `json:"total"`
  161. PageNo int `json:"pageNo"`
  162. PageSize int `json:"pageSize"`
  163. List []struct {
  164. EventId string `json:"eventId"`
  165. StartTime string `json:"startTime"`
  166. EndTime string `json:"endTime"`
  167. EventType int `json:"eventType"`
  168. SrcIndex string `json:"srcIndex"`
  169. SrcName string `json:"srcName"`
  170. SrcType string `json:"srcType"`
  171. RegionId string `json:"regionId"`
  172. Status int `json:"status"`
  173. } `json:"list"`
  174. } `json:"data"`
  175. }
  176. // RegionsRoot 区域根节点
  177. type RegionsRoot struct {
  178. Code string `json:"code"`
  179. Msg string `json:"msg"`
  180. Data struct {
  181. IndexCode string `json:"indexCode"`
  182. Name string `json:"name"`
  183. ParentIndexCode string `json:"parentIndexCode"`
  184. TreeCode string `json:"treeCode"`
  185. } `json:"data"`
  186. }
  187. // RegionsSubRegions 根据区域编号获取下一级区域列表
  188. type RegionsSubRegions struct {
  189. Code string `json:"code"`
  190. Msg string `json:"msg"`
  191. Data struct {
  192. Total int `json:"total"`
  193. PageNo int `json:"pageNo"`
  194. PageSize int `json:"pageSize"`
  195. List []struct {
  196. IndexCode string `json:"indexCode"`
  197. Name string `json:"name"`
  198. ParentIndexCode string `json:"parentIndexCode"`
  199. Available bool `json:"available"`
  200. Leaf bool `json:"leaf"`
  201. CascadeCode string `json:"cascadeCode"`
  202. CascadeType int `json:"cascadeType"`
  203. CatalogType int `json:"catalogType"`
  204. ExternalIndexCode string `json:"externalIndexCode"`
  205. Sort int `json:"sort"`
  206. RegionPath string `json:"regionPath"`
  207. CreateTime time.Time `json:"createTime"`
  208. UpdateTime time.Time `json:"updateTime"`
  209. } `json:"list"`
  210. } `json:"data"`
  211. }
  212. // VqdList 获取视频质量检测结果
  213. type VqdList struct {
  214. Code string `json:"code"`
  215. Msg string `json:"msg"`
  216. Data struct {
  217. Total int `json:"total"`
  218. PageNo int `json:"pageNo"`
  219. PageSize int `json:"pageSize"`
  220. TotalPage int `json:"totalPage"`
  221. List []struct {
  222. ScChromaResult int `json:"scChromaResult"`
  223. ScSnowResult int `json:"scSnowResult"`
  224. ScDarkResult int `json:"scDarkResult"`
  225. InspectDate string `json:"inspectDate"`
  226. IndexCode string `json:"indexCode"`
  227. ScLumaResult int `json:"scLumaResult"`
  228. ScFreezeResult int `json:"scFreezeResult"`
  229. ScShakeResult int `json:"scShakeResult"`
  230. Resolution int `json:"resolution"`
  231. ScContrastResult int `json:"scContrastResult"`
  232. ScStreakResult int `json:"scStreakResult"`
  233. PicUrl string `json:"picUrl"`
  234. ScFrameResult int `json:"scFrameResult"`
  235. ScCoverResult int `json:"scCoverResult"`
  236. ScSignalResult int `json:"scSignalResult"`
  237. ScMonoResult int `json:"scMonoResult"`
  238. InspectResult int `json:"inspectResult"`
  239. ScBlurResult int `json:"scBlurResult"`
  240. ScSceneResult int `json:"scSceneResult"`
  241. ScFlashResult int `json:"scFlashResult"`
  242. } `json:"list"`
  243. } `json:"data"`
  244. }
  245. // CameraOnline 获取监控点在线状态
  246. type CameraOnline struct {
  247. Code string `json:"code"`
  248. Msg string `json:"msg"`
  249. Data struct {
  250. PageNo int `json:"pageNo"`
  251. PageSize int `json:"pageSize"`
  252. TotalPage int `json:"totalPage"`
  253. Total int `json:"total"`
  254. List []struct {
  255. DeviceType string `json:"deviceType"`
  256. DeviceIndexCode interface{} `json:"deviceIndexCode"`
  257. RegionIndexCode string `json:"regionIndexCode"`
  258. CollectTime time.Time `json:"collectTime"`
  259. RegionName string `json:"regionName"`
  260. IndexCode string `json:"indexCode"`
  261. Cn string `json:"cn"`
  262. TreatyType string `json:"treatyType"`
  263. Manufacturer string `json:"manufacturer"`
  264. Ip interface{} `json:"ip"`
  265. Port interface{} `json:"port"`
  266. Online int `json:"online"`
  267. } `json:"list"`
  268. } `json:"data"`
  269. }
  270. type RecordList struct {
  271. Code string `json:"code"`
  272. Msg string `json:"msg"`
  273. Data struct {
  274. Total int `json:"total"`
  275. PageNo int `json:"pageNo"`
  276. PageSize int `json:"pageSize"`
  277. List []struct {
  278. IndexCode string `json:"indexCode"`
  279. Date string `json:"date"`
  280. CollectTime int64 `json:"collectTime"`
  281. InspectionDate string `json:"inspectionDate"`
  282. Result int `json:"result"`
  283. VideoClipstimeSegment []struct {
  284. From int `json:"from"`
  285. To int `json:"to"`
  286. Type int `json:"type"`
  287. } `json:"videoClipstimeSegment"`
  288. IntactDuration int `json:"intactDuration"`
  289. PlanDuration int `json:"planDuration"`
  290. } `json:"list"`
  291. } `json:"data"`
  292. }
  293. // Cameras CamerasList 获取摄像机列表
  294. type Cameras struct {
  295. Code string `json:"code"`
  296. Msg string `json:"msg"`
  297. Data struct {
  298. Total int `json:"total"`
  299. PageNo int `json:"pageNo"`
  300. PageSize int `json:"pageSize"`
  301. List []struct {
  302. Altitude string `json:"altitude"`
  303. CameraIndexCode string `json:"cameraIndexCode"`
  304. CameraName string `json:"cameraName"`
  305. CameraType int `json:"cameraType"`
  306. CameraTypeName string `json:"cameraTypeName"`
  307. CapabilitySet string `json:"capabilitySet"`
  308. CapabilitySetName string `json:"capabilitySetName"`
  309. IntelligentSet string `json:"intelligentSet"`
  310. IntelligentSetName string `json:"intelligentSetName"`
  311. ChannelNo string `json:"channelNo"`
  312. ChannelType string `json:"channelType"`
  313. ChannelTypeName string `json:"channelTypeName"`
  314. CreateTime string `json:"createTime"`
  315. EncodeDevIndexCode string `json:"encodeDevIndexCode"`
  316. EncodeDevResourceType string `json:"encodeDevResourceType"`
  317. EncodeDevResourceTypeName string `json:"encodeDevResourceTypeName"`
  318. GbIndexCode string `json:"gbIndexCode"`
  319. InstallLocation string `json:"installLocation"`
  320. KeyBoardCode string `json:"keyBoardCode"`
  321. Latitude string `json:"latitude"`
  322. Longitude string `json:"longitude"`
  323. Pixel int `json:"pixel"`
  324. Ptz int `json:"ptz"`
  325. PtzController int `json:"ptzController"`
  326. PtzControllerName string `json:"ptzControllerName"`
  327. PtzName string `json:"ptzName"`
  328. RecordLocation string `json:"recordLocation"`
  329. RecordLocationName string `json:"recordLocationName"`
  330. RegionIndexCode string `json:"regionIndexCode"`
  331. Status int `json:"status"`
  332. StatusName string `json:"statusName"`
  333. TransType int `json:"transType"`
  334. TransTypeName string `json:"transTypeName"`
  335. TreatyType string `json:"treatyType"`
  336. TreatyTypeName string `json:"treatyTypeName"`
  337. Viewshed string `json:"viewshed"`
  338. UpdateTime string `json:"updateTime"`
  339. } `json:"list"`
  340. } `json:"data"`
  341. }
  342. // VisitingRecords VisitingRecordsList 获取来访记录
  343. type VisitingRecords struct {
  344. Code string `json:"code"`
  345. Msg string `json:"msg"`
  346. Data struct {
  347. Total int `json:"total"`
  348. PageNo int `json:"pageNo"`
  349. PageSize int `json:"pageSize"`
  350. List []struct {
  351. VisitorName string `json:"visitorName"`
  352. Gender int `json:"gender"`
  353. CertificateType int `json:"certificateType"`
  354. CertificateNo string `json:"certificateNo"`
  355. PhoneNo string `json:"phoneNo"`
  356. PlateNo string `json:"plateNo"`
  357. PicUri string `json:"picUri"`
  358. SvrIndexCode string `json:"svrIndexCode"`
  359. VisitorStatus int `json:"visitorStatus"`
  360. VerificationCode string `json:"verificationCode"`
  361. VisiorGroupId string `json:"visiorGroupId"`
  362. VisiorGroupName string `json:"visiorGroupName"`
  363. ReceptionistId string `json:"receptionistId"`
  364. ReceptionistName string `json:"receptionistName"`
  365. ReceptionistCode string `json:"receptionistCode"`
  366. VisitPurpose string `json:"visitPurpose"`
  367. VisitStartTime time.Time `json:"visitStartTime"`
  368. VisitEndTime time.Time `json:"visitEndTime"`
  369. QRCode string `json:"QRCode"`
  370. CertAddr string `json:"certAddr"`
  371. CertIssuer string `json:"certIssuer"`
  372. Birthplace string `json:"birthplace"`
  373. VisitorWorkUnit string `json:"visitorWorkUnit"`
  374. OrderId string `json:"orderId"`
  375. VisitorAddress string `json:"visitorAddress"`
  376. PersonNum int `json:"personNum"`
  377. PlannedStartTime time.Time `json:"plannedStartTime"`
  378. PlannedEndTime time.Time `json:"plannedEndTime"`
  379. DesignatedResources []struct {
  380. ParamKey string `json:"paramKey"`
  381. ParamValues []string `json:"paramValues"`
  382. } `json:"designatedResources"`
  383. CardNo string `json:"cardNo"`
  384. PrivilegeGroupNames []string `json:"privilegeGroupNames"`
  385. HealthCode string `json:"healthCode"`
  386. ParkId string `json:"parkId"`
  387. UpdateTime time.Time `json:"updateTime"`
  388. VisitorTemperature string `json:"visitorTemperature"`
  389. VisitorInfoId string `json:"visitorInfoId"`
  390. } `json:"list"`
  391. } `json:"data"`
  392. }
  393. // VisitorTypeInfo VisitorTypeInfoList 获取来访类型信息
  394. type VisitorTypeInfo struct {
  395. Code string `json:"code"`
  396. Msg string `json:"msg"`
  397. Data struct {
  398. Total int `json:"total"`
  399. PageNo int `json:"pageNo"`
  400. PageSize int `json:"pageSize"`
  401. List []struct {
  402. VisitorTypeId string `json:"visitorTypeId"`
  403. VisitorTypeName string `json:"visitorTypeName"`
  404. CreateTime string `json:"createTime"`
  405. Status int `json:"status"`
  406. ParkId string `json:"parkId"`
  407. RemitRegister string `json:"remitRegister"`
  408. } `json:"list"`
  409. } `json:"data"`
  410. }
  411. type VisitorTypeList struct {
  412. Code string `json:"code"`
  413. Msg string `json:"msg"`
  414. Data []struct {
  415. ParkId string `json:"parkId"`
  416. RemitRegister string `json:"remitRegister"`
  417. VisitorTypeId string `json:"visitorTypeId"`
  418. VisitorTypeName string `json:"visitorTypeName"`
  419. } `json:"data"`
  420. }
  421. // TurnoverSearch TurnoverSearchList 查询访客出入事件
  422. type TurnoverSearch struct {
  423. Code string `json:"code"`
  424. Msg string `json:"msg"`
  425. Data struct {
  426. FirstPage bool `json:"firstPage"`
  427. HasNextPage bool `json:"hasNextPage"`
  428. HasPreviousPage bool `json:"hasPreviousPage"`
  429. LastPage bool `json:"lastPage"`
  430. Page int `json:"page"`
  431. PageSize int `json:"pageSize"`
  432. Rows []struct {
  433. OrderId string `json:"orderId"`
  434. VisitorName string `json:"visitorName"`
  435. VisitorSex int `json:"visitorSex"`
  436. VisitorGroupId string `json:"visitorGroupId"`
  437. BeVisitPersonId string `json:"beVisitPersonId"`
  438. BeVisitPersonName string `json:"beVisitPersonName"`
  439. CardNum string `json:"cardNum"`
  440. CardType int `json:"cardType"`
  441. DeviceIndexCode string `json:"deviceIndexCode"`
  442. DeviceType int `json:"deviceType"`
  443. DeviceDesc string `json:"deviceDesc"`
  444. EventName string `json:"eventName"`
  445. EventId string `json:"eventId"`
  446. PhoneNum string `json:"phoneNum"`
  447. CarNumber string `json:"carNumber"`
  448. IdentityId int `json:"identityId"`
  449. IdentityNum string `json:"identityNum"`
  450. VisitorPhotoUri string `json:"visitorPhotoUri"`
  451. IdentityPhotoUri string `json:"identityPhotoUri"`
  452. VisitorSvrCode string `json:"visitorSvrCode"`
  453. IdentitySvrCode string `json:"identitySvrCode"`
  454. EventTime time.Time `json:"eventTime"`
  455. VisitStartTime time.Time `json:"visitStartTime"`
  456. VisitEndTime time.Time `json:"visitEndTime"`
  457. VisitRegisterTime time.Time `json:"visitRegisterTime"`
  458. VisitRealEndTime time.Time `json:"visitRealEndTime"`
  459. } `json:"rows"`
  460. Total int `json:"total"`
  461. TotalPage int `json:"totalPage"`
  462. } `json:"data"`
  463. }
  464. var ResourceType = map[string]string{
  465. "region": "区域",
  466. "acsDevice": "门禁控制器",
  467. "door": "门禁点",
  468. "reader": "门禁读卡器",
  469. "encodeDevice": "编码设备",
  470. "camera": "监控点",
  471. "ioIn": "报警输入",
  472. "ioOut": "报警输出",
  473. "iasDevice": "入侵报警-报警主机",
  474. "subSys": "入侵报警-子系统",
  475. "defence": "入侵报警-防区通道",
  476. "radarDevice": "入侵报警-雷达设备",
  477. "visDevice": "可视对讲设备",
  478. "visDeviceInDoor": "可视对讲-室内机",
  479. "visDeviceOutDoor": "可视对讲-门口机",
  480. "visDeviceWallDoor": "可视对讲-围墙机",
  481. "visDeviceManager": "可视对讲-管理机",
  482. "ecsDevice": "梯控-控制器",
  483. "ladderCardReader": "梯控-读卡器",
  484. "floor": "梯控-楼层",
  485. "peDevice": "动环设备",
  486. "pemsIoOut": "动环-开关量",
  487. "transducer": "动环-传感器",
  488. "sensor": "动环-环境量",
  489. "snapCamera": "停车场-抓拍机",
  490. "led": "停车场-显示屏",
  491. "inoutControl": "停车场-出入口控制机",
  492. "barrierGate": "停车场-道闸",
  493. "bluetoothReader": "停车场-蓝牙读卡器",
  494. "rfiReader": "停车场-远距离读卡器",
  495. "guideManager": "停车场-诱导管理器",
  496. "guideLed": "停车场-诱导/引导屏幕",
  497. "geoManage": "停车场-地磁管理器",
  498. "monitoringPointDevice": "园区-卡口设备",
  499. "monitoringPoint": "园区-卡口点",
  500. "gardenLed": "园区-显示屏",
  501. "emerdevice": "紧急报警设备",
  502. "talk": "对讲通道",
  503. "electricLock": "电锁",
  504. "alarmLamp": "警灯",
  505. "siren": "警号",
  506. }
  507. func (m *Hikvision) TableName() string {
  508. return "hikvision"
  509. }