package service import ( "iot_manager_service/app/device/dao" "iot_manager_service/app/operation/edge_service" "iot_manager_service/app/operation/model" "iot_manager_service/util/common" ) var CaptureService = new(captureService) type captureService struct{} // GetDayVehicleTotal 车流统计 日 func (s captureService) GetDayVehicleTotal(tenantId int, req model.RequestCaptureFilter) ([]model.ResponseCaptureVehicleTotal, error) { return s.getVehicleTotalData(0, tenantId, req) } // GetMonthVehicleTotal 车流统计 月 func (s captureService) GetMonthVehicleTotal(tenantId int, req model.RequestCaptureFilter) ([]model.ResponseCaptureVehicleTotal, error) { return s.getVehicleTotalData(1, tenantId, req) } // 车流统计公用方法 func (s captureService) getVehicleTotalData(flag int, tenantId int, req model.RequestCaptureFilter) ([]model.ResponseCaptureVehicleTotal, error) { unit := dao.CaptureUnit{ TenantId: tenantId, ID: req.CaptureId, } unit.GetDevice() var codes []string codes = append(codes, unit.CaptureSn) var list []model.ResponseCaptureVehicleTotal forCaptureIts := edge_service.ForCaptureIts{} forData, err := forCaptureIts.VehicleTotal(edge_service.ForCaptureItsReq{ Codes: codes, Start: req.StartTime, End: req.EndTime, Flag: flag, }) //fmt.Printf("forData = %v \n", forData) var countTimes []string if flag == 1 { countTimes = common.GetTimeMonths(req.StartTime, req.EndTime) //时间范围 月 } else { countTimes = common.GetTimeDays(req.StartTime, req.EndTime) //时间范围 天 } for _, countTime := range countTimes { var countT int for _, datum := range forData { time := datum.Time if flag == 1 { time += "-01" } if time == countTime { countT = datum.Total continue } } list = append(list, model.ResponseCaptureVehicleTotal{ CountTime: countTime, CountT: countT, }) } if err != nil { return nil, err } return list, nil } // GetSuggestSpeed 从数据库查抓拍单元风向 func (s captureService) GetSuggestSpeed(tenantId int, captureId int) (*dao.CaptureUnit, error) { unit := dao.CaptureUnit{ TenantId: tenantId, ID: captureId, } if err := unit.GetDevice(); err != nil { return nil, err } return &unit, nil }