package com.doumee.cloud.board; import com.doumee.api.BaseController; import com.doumee.config.annotation.LoginNoRequired; import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.Visits; import com.doumee.dao.web.response.platformReport.*; import com.doumee.service.business.VisitsService; import com.doumee.service.business.third.BoardService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Random; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/10/28 13:42 */ @Api(tags = "【看板大屏】安防管控大屏") @RestController @Slf4j @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/security") public class SecurityController extends BaseController { @Autowired private BoardService boardService; @Autowired private VisitsService visitsService; @LoginNoRequired @ApiOperation("中心数据") @GetMapping("/centerData") public ApiResponse centerSecurityData() { SecurityBoardVO data = boardService.centerSecurityData(); return ApiResponse.success(data); } @LoginNoRequired @ApiOperation("园区安防设备") @GetMapping("/securityDeviceData") public ApiResponse> securityDeviceData() { List list = boardService.securityDeviceData(); return ApiResponse.success(list); } @LoginNoRequired @ApiOperation("安防告警接口") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "类型 0全部 1区域告警 2行为告警", required = false) }) @GetMapping("/warningEventData") public ApiResponse warningEventData(Integer type) { WaningEventDataVO list = boardService.warningEventData(type); return ApiResponse.success(list); } @LoginNoRequired @ApiOperation("访客滞留情况") @GetMapping("/visitRetentionData") public ApiResponse> visitRetentionData() { PageWrap pageWrap = new PageWrap<>(); pageWrap.setCapacity(10); pageWrap.setPage(1); pageWrap.setModel(new Visits()); pageWrap.getModel().setLevelStatus(Constants.ZERO); pageWrap.getModel().setStatus(Constants.TWO); PageData resut = visitsService.retentionPage(pageWrap); List list = new ArrayList<>(); if(resut !=null && resut.getRecords() !=null && resut.getRecords().size()>0){ for (Visits model : resut.getRecords()) { VisitRetentionDataVO data = new VisitRetentionDataVO(); data.setName(model.getName()); data.setCompanyName(model.getCompanyName()); data.setTimeOutMinute(Constants.formatIntegerNum(model.getTimeOut())); list.add(data); } } return ApiResponse.success(list); } @LoginNoRequired @ApiOperation("访客分析") @GetMapping("/getVisitData") public ApiResponse getVisitData() { VisitDataVO visitDataVO = new VisitDataVO(); Random random = new Random(); visitDataVO.setRegisterVisitNum(random.nextInt(20)); visitDataVO.setRegisterVisitRata(BigDecimal.valueOf(random.nextInt(20))); visitDataVO.setLevelNum(random.nextInt(20)); visitDataVO.setLevelRata(BigDecimal.valueOf(random.nextInt(20))); visitDataVO.setWaitVisitNum(random.nextInt(20)); visitDataVO.setWaitVisitRata(BigDecimal.valueOf(random.nextInt(20))); visitDataVO.setRetentionNum(random.nextInt(20)); visitDataVO.setRetentionRata(BigDecimal.valueOf(random.nextInt(20))); return ApiResponse.success(visitDataVO); } @LoginNoRequired @ApiOperation("树形区域集合接口") @GetMapping("/regionTree") public ApiResponse> regionTree(CarmeraListVO param) { return ApiResponse.success(boardService.getRegionTree(param)); } @LoginNoRequired @ApiOperation("平铺结果区域集合接口") @PostMapping("/regionList") public ApiResponse> regionList(@RequestBody CarmeraListVO param) { return ApiResponse.success(boardService.regionList(param)); } @LoginNoRequired @ApiOperation("获取监控流播放地址") @GetMapping("/getCarmeraPreviemUrl") public ApiResponse getCarmeraPreviemUrl(CarmeraListVO param) { return ApiResponse.success(boardService.getCarmeraPreviemUrl(param)); } @LoginNoRequired @ApiOperation("今日访客分析和滞留访客数据集合") @GetMapping("/visitSecurityData") public ApiResponse visitSecurityData ( ){ VisitDataVO data = boardService.visitSecurityData(); return ApiResponse.success(data); } }