| package com.doumee.cloud.board; | 
|   | 
| import com.doumee.api.BaseController; | 
| import com.doumee.config.annotation.CloudRequiredPermission; | 
| import com.doumee.config.annotation.LoginNoRequired; | 
| import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse; | 
| import com.doumee.core.haikang.model.param.respose.RuleEventSearchResponse; | 
| 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.admin.response.PCWorkPlatformDataVO; | 
| 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.apache.commons.lang3.StringUtils; | 
| 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<SecurityBoardVO> centerSecurityData() { | 
|         SecurityBoardVO data = boardService.centerSecurityData(); | 
|         return ApiResponse.success(data); | 
|     } | 
|   | 
|   | 
|     @LoginNoRequired | 
|     @ApiOperation("园区安防设备") | 
|     @GetMapping("/securityDeviceData") | 
|     public ApiResponse<List<SecurityDeviceDataVO>> securityDeviceData() { | 
|         List<SecurityDeviceDataVO> 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<WaningEventDataVO> warningEventData(Integer type) { | 
|         WaningEventDataVO list = boardService.warningEventData(type); | 
|         return ApiResponse.success(list); | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|     @LoginNoRequired | 
|     @ApiOperation("访客滞留情况") | 
|     @GetMapping("/visitRetentionData") | 
|     public ApiResponse<List<VisitRetentionDataVO>> visitRetentionData() { | 
|         PageWrap<Visits> pageWrap = new PageWrap<>(); | 
|         pageWrap.setCapacity(10); | 
|         pageWrap.setPage(1); | 
|         pageWrap.setModel(new Visits()); | 
|         pageWrap.getModel().setLevelStatus(Constants.ZERO); | 
|         pageWrap.getModel().setStatus(Constants.TWO); | 
|         PageData<Visits>  resut =    visitsService.retentionPage(pageWrap); | 
|         List<VisitRetentionDataVO> 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<VisitDataVO> 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<List<PageRegionInfoResponse>> regionTree(CarmeraListVO param) { | 
|         return ApiResponse.success(boardService.getRegionTree(param)); | 
|     } | 
|     @LoginNoRequired | 
|     @ApiOperation("平铺结果区域集合接口") | 
|     @PostMapping("/regionList") | 
|     public ApiResponse<List<PageRegionInfoResponse>> regionList(@RequestBody  CarmeraListVO param) { | 
|         return ApiResponse.success(boardService.regionList(param)); | 
|     } | 
|   | 
|     @LoginNoRequired | 
|     @ApiOperation("获取监控流播放地址") | 
|     @GetMapping("/getCarmeraPreviemUrl") | 
|     public ApiResponse<String> getCarmeraPreviemUrl(CarmeraListVO param) { | 
|         return ApiResponse.success(boardService.getCarmeraPreviemUrl(param)); | 
|     } | 
|   | 
|     @LoginNoRequired | 
|     @ApiOperation("今日访客分析和滞留访客数据集合") | 
|     @GetMapping("/visitSecurityData") | 
|     public ApiResponse<VisitDataVO> visitSecurityData ( ){ | 
|         VisitDataVO data = boardService.visitSecurityData(); | 
|         return ApiResponse.success(data); | 
|     } | 
| } |