123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package service
- import (
- "city_chips/internal/model"
- "city_chips/internal/repository"
- "encoding/json"
- "errors"
- "github.com/spf13/viper"
- "github.com/zxbit2011/hikvisionOpenAPIGo"
- )
- type HikvisionService interface {
- Hikvision(url string, body map[string]string, timeout int) (hikvisionOpenAPIGo.Result, error)
- }
- func NewHikvisionService(service *Service, hikvisionRepository repository.HikvisionRepository, conf *viper.Viper) HikvisionService {
- return &hikvisionService{
- Service: service,
- hikvisionRepository: hikvisionRepository,
- conf: conf,
- }
- }
- type hikvisionService struct {
- *Service
- hikvisionRepository repository.HikvisionRepository
- conf *viper.Viper
- }
- // Hikvision 海康威视对接
- func (s *hikvisionService) Hikvision(url string, body map[string]string, timeout int) (hikvisionOpenAPIGo.Result, error) {
- config := hikvisionOpenAPIGo.HKConfig{
- Ip: s.conf.GetString("hikvision.Ip"),
- Port: s.conf.GetInt("hikvision.Port"),
- AppKey: s.conf.GetString("hikvision.AppKey"),
- Secret: s.conf.GetString("hikvision.Secret"),
- IsHttps: s.conf.GetBool("hikvision.IsHttps"),
- }
- result, err := config.HttpPost(url, body, timeout)
- return result, err
- }
- // DeviceResource 根据设备类型获取设备资源
- func (s *hikvisionService) DeviceResource(Device string) (error, model.DeviceResource) {
- var deviceResource model.DeviceResource
- m := make(map[string]string)
- m["pageNo"] = "1"
- m["pageSize"] = s.conf.GetString("hikvision.pageSize")
- m["resourceType"] = Device
- hikvision, err := s.Hikvision(s.conf.GetString("hikvision.api.deviceResource"), m, 15)
- if err != nil {
- return errors.New("获取设备资源失败"), deviceResource
- }
- if hikvision.Code != "0" {
- return errors.New("获取设备资源失败"), deviceResource
- }
- marshalString, err := json.Marshal(hikvision)
- if err != nil {
- return errors.New("json序列化失败"), deviceResource
- }
- err = json.Unmarshal(marshalString, &deviceResource)
- if err != nil {
- return errors.New("json反序列化失败"), deviceResource
- }
- return nil, deviceResource
- }
|