2021与蓝度共同重构项目,服务端
liuhaonan
2022-05-07 14ce780fb9977acad2b6dabf9033635b076f590b
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -1,13 +1,11 @@
package com.sandu.ximon.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.sandu.common.domain.ResponseVO;
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.VnnoxParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.LedPlayerEntityService;
import com.sandu.ximon.admin.service.PoleBindingService;
import com.sandu.ximon.admin.service.PoleService;
@@ -16,8 +14,7 @@
import com.sandu.ximon.admin.utils.response.VnnoxResult;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.sandu.ximon.dao.enums.AdministratorEnums;
import com.sandu.ximon.dao.enums.MenuEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -36,7 +33,8 @@
//@AllArgsConstructor
@RequestMapping("/v1/Vnnox")
public class VnnoxController {
    @Autowired
    private PermissionConfig permissionConfig;
    @Autowired
    private VnnoxService vnnoxService;
    @Autowired
@@ -70,8 +68,32 @@
     * @return
     */
    @PostMapping("/reboot")
    public ResponseVO<Object> reboot(@RequestBody VnnoxParam vnnoxWebRequest) {
        VnnoxResult vnnoxResult = vnnoxService.reboot(vnnoxWebRequest.getPlayerList());
    public ResponseVO<Object> reboot(@RequestBody List<String> vnnoxWebRequest) {
        VnnoxResult vnnoxResult = vnnoxService.reboot(vnnoxWebRequest);
        return ResponseUtil.success(vnnoxResult);
    }
    /**
     * 同步播放
     */
    @AnonymousAccess
    @PostMapping("/syncPlay")
    public ResponseVO<Object> syncPlay(@RequestBody Map map) {
        List playIdlist = (List)map.get("playIdlist");
        Integer option = (Integer) map.get("option");
        VnnoxResult vnnoxResult = vnnoxService.syncPlay(playIdlist,option);
        return ResponseUtil.success(vnnoxResult);
    }
    /**
     * ntp对时
     */
    @AnonymousAccess
    @PostMapping("/ntp")
    public ResponseVO<Object> ntp(@RequestBody Map map) {
        boolean enable = (boolean)map.get("enable");
        List playIdlist = (List)map.get("playIdlist");
        VnnoxResult vnnoxResult = vnnoxService.ntpSync(playIdlist,enable);
        return ResponseUtil.success(vnnoxResult);
    }
@@ -134,46 +156,16 @@
    @GetMapping("/list")
    public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        LambdaQueryWrapper<LedPlayerEntity> wrapper = Wrappers.lambdaQuery(LedPlayerEntity.class);
        if (AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
            //wrapper.eq(LedPlayerEntity::get)
            return ResponseUtil.success(""); //  todo
        } else {
            wrapper.like(LedPlayerEntity::getPlayerName, keyword)
                    .or(
                            querywrapper -> {
                                querywrapper.like(LedPlayerEntity::getName, keyword);
                            }
                    );
            List<LedPlayerEntity> list = ledPlayerEntityService.list(wrapper);
            List<LedPlayerEntity> entities = vnnoxService.setCacheInfo(vnnoxAPIUtil.syncCurrentInfo(list));
            entities.forEach(
                    led->{
                        PoleBinding binding = bindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class)
                                .eq(PoleBinding::getDeviceType, 1).eq(PoleBinding::getDeviceCode, led.getSn()));
                        if(binding!=null){
                            led.setPoleId(poleService.getById(binding.getPoleId()).getId());
                            led.setPoleName(poleService.getById(binding.getPoleId()).getPoleName());
                        }
                    }
            );
            return ResponseUtil.success(entities);
        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        return ResponseUtil.successPage(ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword));
    }
    @GetMapping("/onLineList")
    public ResponseVO<Object> onLineList(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
//    public ResponseVO<Object> onLineList(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        LambdaQueryWrapper<LedPlayerEntity> wrapper = Wrappers.lambdaQuery(LedPlayerEntity.class);
        if (AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
            //wrapper.eq(LedPlayerEntity::get)
            return ResponseUtil.success(""); //  todo
        } else {
            wrapper.like(LedPlayerEntity::getPlayerName, keyword);
            List<LedPlayerEntity> list = ledPlayerEntityService.list(wrapper);
            List<LedPlayerEntity> list = ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword);
            List<LedPlayerEntity> entities = vnnoxService.setCacheInfo(vnnoxAPIUtil.syncCurrentInfo(list));
            List<LedPlayerEntity> online = new ArrayList<>();
            for (LedPlayerEntity ledPlayer : entities) {
@@ -182,6 +174,11 @@
                }
            }
            return ResponseUtil.success(online);
        }
    }
    @GetMapping("/getVnnoxInfo/{sn}")
    public ResponseVO<Object> getBySnAndPlayerId(@PathVariable String sn) {
        return ResponseUtil.success(ledPlayerEntityService.getBySnAndPlayerSn(sn));
    }
}