package com.sandu.ximon.admin.controller;
|
|
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;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @Author liuhaonan
|
* @Date 2021/12/23 9:35
|
* @Version 1.0
|
* 诺瓦LED处理
|
*/
|
@RestController
|
@RequestMapping("/v1/Vnnox")
|
public class VnnoxController {
|
@Autowired
|
private PermissionConfig permissionConfig;
|
@Autowired
|
private VnnoxService vnnoxService;
|
@Autowired
|
private LedPlayerEntityService ledPlayerEntityService;
|
@Autowired
|
private VnnoxAPIUtil vnnoxAPIUtil;
|
@Autowired
|
private LedNovaGroupRelationService relationService;
|
@Autowired
|
private LedNovaGroupService groupService;
|
|
|
/**
|
* 截屏
|
*
|
* @param vnnoxWebRequest
|
* @return
|
*/
|
@PostMapping("/screenShot")
|
public ResponseVO<Object> screenShot(@RequestBody VnnoxParam vnnoxWebRequest) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_SCREENSHOT.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
Map<String, String> map = vnnoxService.getScreenShotUrl(vnnoxWebRequest.getId());
|
if (map.get("code").equals("500")) {
|
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));
|
}
|
|
/**
|
* 重启
|
*
|
* @param
|
* @return
|
*/
|
@PostMapping("/reboot")
|
public ResponseVO<Object> reboot(@RequestBody List<NovaPushResultVO> nova) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_RESTART.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
return ResponseUtil.success(vnnoxService.reboot(nova));
|
}
|
|
/**
|
* 同步播放
|
*/
|
@PostMapping("/syncPlay")
|
public ResponseVO<Object> syncPlay(@RequestBody NovaResultParam vo) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_SYNC_PLAY.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
List<NovaPushResultVO> playIdlist = vo.getPlayIdlist();
|
Integer option = vo.getOption();
|
if (option == null || vo.getOption() == null) {
|
throw new BusinessException("option不能为空");
|
}
|
return ResponseUtil.success(vnnoxService.syncPlay(playIdlist, option));
|
}
|
|
/**
|
* ntp对时
|
*/
|
@PostMapping("/ntp")
|
public ResponseVO<Object> ntp(@RequestBody NovaResultParam vo) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_NTP.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
boolean enable = vo.isEnable();
|
List<NovaPushResultVO> playIdlist = vo.getPlayIdlist();
|
return ResponseUtil.success(vnnoxService.ntpSync(playIdlist, enable));
|
}
|
|
/**
|
* @param vnnoxWebRequest
|
* @return 开关屏幕
|
*/
|
@PostMapping("/screenStatusChange")
|
public ResponseVO<Object> screenStatusChange(@RequestBody VnnoxParam vnnoxWebRequest) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_ON_OFF.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
return ResponseUtil.success(vnnoxService.screenStatusChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getScreenStatus()));
|
}
|
|
/**
|
* 音量调节
|
*
|
* @param vnnoxWebRequest
|
* @return
|
*/
|
@PostMapping("/volChange")
|
public ResponseVO<Object> volChange(@RequestBody VnnoxParam vnnoxWebRequest) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_VOL_CHANGE.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
return ResponseUtil.success(vnnoxService.volChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getVol()));
|
}
|
|
/**
|
* 亮度调节
|
*
|
* @param vnnoxWebRequest
|
* @return
|
*/
|
@PostMapping("/brightnessChange")
|
public ResponseVO<Object> brightnessChange(@RequestBody VnnoxParam vnnoxWebRequest) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_BRIGHTNESS_CHANGE.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
return ResponseUtil.success(vnnoxService.brightnessChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getBrightness()));
|
}
|
|
|
@PostMapping("/validateSN")
|
public ResponseVO<Object> validateSN(@RequestBody Map map) throws URISyntaxException {
|
if (!permissionConfig.check(MenuEnum.VNNOX_ADD.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
String sn = (String) map.get("sn");
|
String name = (String) map.get("name");
|
LedV2RegisterResultEntity ledV2RegisterResultEntity = vnnoxService.validateSN(name, sn);
|
return ResponseUtil.success(ledV2RegisterResultEntity);
|
}
|
|
@PostMapping("/updateLedName/{id}")
|
public ResponseVO<Object> updateLedName(@PathVariable Long id, @RequestBody Map map) {
|
if (!permissionConfig.check(MenuEnum.VNNOX_NAME_UPDATE.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
String name = (String) map.get("name");
|
boolean b = vnnoxService.updateDataName(id, name);
|
if (b) {
|
return ResponseUtil.success("更改成功");
|
}
|
{
|
return ResponseUtil.success("更改失败");
|
}
|
|
}
|
|
|
@GetMapping("/list")
|
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 = "groupId", required = false) Long groupId) {
|
if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
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 = "groupId", required = false) Long groupId) {
|
if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
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) {
|
if (ledPlayer.getOnlineStatus() == 1) {
|
online.add(ledPlayer);
|
}
|
}
|
return ResponseUtil.success(online);
|
|
}
|
|
/**
|
* 屏幕详情
|
*
|
* @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));
|
}
|
}
|