MrShi
2025-03-12 69a1b3bf45738f048361ee4ccb6bdc64fce35720
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,139 @@
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.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.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);
    }
}