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<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("获取监控流播放地址") 
 | 
    @PostMapping("/getCarmeraPreviemUrl") 
 | 
    public ApiResponse<String> getCarmeraPreviemUrl(@RequestBody CarmeraListVO param) { 
 | 
        return ApiResponse.success(boardService.getCarmeraPreviemUrl(param)); 
 | 
    } 
 | 
  
 | 
    @LoginNoRequired 
 | 
    @ApiOperation("今日访客分析和滞留访客数据集合") 
 | 
    @GetMapping("/visitSecurityData") 
 | 
    public ApiResponse<VisitDataVO> visitSecurityData ( ){ 
 | 
        VisitDataVO data = boardService.visitSecurityData(); 
 | 
        return ApiResponse.success(data); 
 | 
    } 
 | 
} 
 |