12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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"
- )
- // CaptureService 车流统计
- var CaptureService = new(captureService)
- type captureService struct{}
- // GetDayVehicleTotal 车流统计 日
- func (s captureService) GetDayVehicleTotal(tenantId string, req model.RequestCaptureFilter) ([]model.ResponseCaptureVehicleTotal, error) {
- return s.getVehicleTotalData(0, tenantId, req)
- }
- // GetMonthVehicleTotal 车流统计 月
- func (s captureService) GetMonthVehicleTotal(tenantId string, req model.RequestCaptureFilter) ([]model.ResponseCaptureVehicleTotal, error) {
- return s.getVehicleTotalData(1, tenantId, req)
- }
- // 车流统计公用方法
- func (s captureService) getVehicleTotalData(flag int, tenantId string, 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 string, captureId int) (*dao.CaptureUnit, error) {
- unit := dao.CaptureUnit{
- TenantId: tenantId,
- ID: captureId,
- }
- if err := unit.GetDevice(); err != nil {
- return nil, err
- }
- return &unit, nil
- }
|