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(CarmeraListVO param) {
|
return ApiResponse.success(boardService.getCarmeraPreviemUrl(param));
|
}
|
|
@LoginNoRequired
|
@ApiOperation("今日访客分析和滞留访客数据集合")
|
@GetMapping("/visitSecurityData")
|
public ApiResponse<VisitDataVO> visitSecurityData ( ){
|
VisitDataVO data = boardService.visitSecurityData();
|
return ApiResponse.success(data);
|
}
|
}
|