2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-10-19 2b9c6e86f1fb2abd7ad7f1a8d74d3fcd515da858
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -3,18 +3,25 @@
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.security.annotation.AnonymousAccess;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.NovaAStateInfoParam;
import com.sandu.ximon.admin.param.VnnoxParam;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.LedNovaGroupRelationService;
import com.sandu.ximon.admin.service.LedNovaGroupService;
import com.sandu.ximon.admin.service.LedPlayerEntityService;
import com.sandu.ximon.admin.service.VnnoxService;
import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
import com.sandu.ximon.admin.vo.NovaAStateInfoVO;
import com.sandu.ximon.admin.vo.NovaPushResultVO;
import com.sandu.ximon.admin.vo.NovaResultParam;
import com.sandu.ximon.dao.domain.LedNovaGroup;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
import com.sandu.ximon.dao.enums.MenuEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.net.URISyntaxException;
@@ -39,6 +46,11 @@
    private LedPlayerEntityService ledPlayerEntityService;
    @Autowired
    private VnnoxAPIUtil vnnoxAPIUtil;
    @Autowired
    private LedNovaGroupRelationService relationService;
    @Autowired
    private LedNovaGroupService groupService;
    /**
     * 截屏
@@ -56,6 +68,12 @@
            return ResponseUtil.fail(map.get("msg"));
        }
        return ResponseUtil.success(map.get("url"));
    }
    @PostMapping("/allScreenShot")
    public ResponseVO<Object> allScreenShot(@RequestBody List<NovaPushResultVO> vnnoxWebRequest) throws InterruptedException {
        return ResponseUtil.success(vnnoxService.getScreenShotUrl(vnnoxWebRequest));
    }
    /**
@@ -174,22 +192,24 @@
    public ResponseVO<Object> list(BaseConditionVO baseConditionVO,
                                   @RequestParam(value = "keyword", required = false) String keyword,
                                   @RequestParam(value = "order", required = false) Integer order,
                                   @RequestParam(value = "seq", required = false) Integer seq) {
                                   @RequestParam(value = "seq", required = false) Integer seq,
                                   @RequestParam(value = "groupId", required = false) Long groupId) {
        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        return ResponseUtil.successPage(ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword, order, seq));
        return ResponseUtil.successPage(ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword, order, seq, groupId));
    }
    @GetMapping("/onLineList")
    public ResponseVO<Object> onLineList(BaseConditionVO baseConditionVO,
                                         @RequestParam(value = "keyword", required = false) String keyword,
                                         @RequestParam(value = "order", required = false) Integer order,
                                         @RequestParam(value = "seq", required = false) Integer seq) {
                                         @RequestParam(value = "seq", required = false) Integer seq,
                                         @RequestParam(value = "groupId", required = false) Long groupId) {
        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        List<LedPlayerEntity> list = ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword, order, seq);
        List<LedPlayerEntity> list = ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword, order, seq, groupId);
        List<LedPlayerEntity> entities = vnnoxService.setCacheInfo(vnnoxAPIUtil.syncCurrentInfo(list));
        List<LedPlayerEntity> online = new ArrayList<>();
        for (LedPlayerEntity ledPlayer : entities) {
@@ -202,13 +222,68 @@
    }
    /**
     * 屏幕详情     //前端未发现调用
     * 屏幕详情
     *
     * @param sn
     * @return
     */
    @GetMapping("/getVnnoxInfo/{sn}")
    public ResponseVO<Object> getBySnAndPlayerId(@PathVariable String sn) {
        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        return ResponseUtil.success(ledPlayerEntityService.getBySnAndPlayerSn(sn));
    }
    @AnonymousAccess
    @PostMapping("/saveInfo")
    public ResponseVO<Object> saveInfo() {
        vnnoxService.saveInfo();
        return ResponseUtil.success("执行完毕");
    }
//    @AnonymousAccess
//    @PostMapping("/asyncStatus")
//    public ResponseVO<Object> asyncStatus(@RequestBody List<String> playerIds) {
//        vnnoxService.asyncStatus(playerIds);
//        return ResponseUtil.success("ok");
//    }
    /**
     * 获取屏幕信息
     *
     * @param param
     * @return
     */
    @PostMapping("/getInfo")
    public ResponseVO<Object> getInfo(@RequestBody @Validated NovaAStateInfoParam param) {
        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        //同步状态
        vnnoxService.getAsyncStatus(param.getPlayerIdList(), param.getStateValue());
        //获取同步
        List<NovaAStateInfoVO> info = vnnoxService.getInfo(param.getStateValue(), param.getPlayerIdList());
        return ResponseUtil.success(info);
    }
    /**
     * 根据分组id获取组内的屏幕
     */
    @GetMapping("/getByGroupId")
    public ResponseVO<Object> getByGroupId(@RequestParam(value = "groupId", required = true) Long groupId) {
        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_INFO.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        if (groupId == null) {
            throw new BusinessException("groupId不能为空");
        }
        LedNovaGroup byId = groupService.getById(groupId);
        if (byId == null) {
            throw new BusinessException("分组不存在");
        }
        return ResponseUtil.success(ledPlayerEntityService.getListByGroupId(groupId));
    }
}