package com.sandu.ximon.admin.controller;
|
|
import com.alibaba.fastjson.JSON;
|
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.PlayPlanParam;
|
import com.sandu.ximon.admin.security.PermissionConfig;
|
import com.sandu.ximon.admin.security.SecurityUtils;
|
import com.sandu.ximon.admin.service.PlayPlanNvService;
|
import com.sandu.ximon.admin.vo.NovaPushResultVO;
|
import com.sandu.ximon.dao.bo.SchedulesDTO;
|
import com.sandu.ximon.dao.domain.PlayPlanNv;
|
import com.sandu.ximon.dao.enums.MenuEnum;
|
import lombok.AllArgsConstructor;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
/**
|
* @Author liuhaonan
|
* @Date 2021/12/21 13:58
|
* @Version 1.0
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/v1/ledPlan")
|
public class PlayPlanNvController {
|
private final PlayPlanNvService playPlanNvService;
|
private PermissionConfig permissionConfig;
|
|
@PostMapping("/add")
|
public ResponseVO<Object> addLEDPlan(@RequestBody @Validated PlayPlanParam param) {
|
return ResponseUtil.success(playPlanNvService.addPlan(param));
|
}
|
|
@GetMapping("/getByPlanId/{planId}")
|
public ResponseVO<Object> getPlan(@PathVariable Long planId) {
|
return ResponseUtil.success(playPlanNvService.getByPlanId(planId));
|
}
|
|
@PostMapping("/update/{planId}")
|
public ResponseVO<Object> updateLEDPlan(@PathVariable Long planId, @RequestBody @Validated PlayPlanParam param) {
|
return ResponseUtil.success(playPlanNvService.updatePlan(planId, param));
|
}
|
|
@PostMapping("/delete")
|
public ResponseVO<Object> deleteLEDPlan(@RequestBody List<Long> plianIds) {
|
return ResponseUtil.success(playPlanNvService.deletePlan(plianIds));
|
}
|
|
@AnonymousAccess
|
@PostMapping(value = "/push/{plianId}", produces = "application/json;charset=UTF-8")
|
public ResponseVO<Object> pushToLed(@PathVariable Long plianId, @RequestBody List<NovaPushResultVO> playerIds) {
|
return ResponseUtil.success(playPlanNvService.pushToLed(plianId, playerIds));
|
}
|
|
@GetMapping("/listPlan")
|
public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
|
if (!permissionConfig.check(MenuEnum.PLAYPLAN_LIST.getCode())) {
|
return ResponseUtil.fail("缺少对应用户权限");
|
}
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
LambdaQueryWrapper<PlayPlanNv> wrapper = Wrappers.lambdaQuery(PlayPlanNv.class);
|
|
if (SecurityUtils.getClientId() != null) {
|
wrapper = wrapper.eq(PlayPlanNv::getUserId, SecurityUtils.getUserId()).or(w -> {
|
w.eq(PlayPlanNv::getClientId, SecurityUtils.getUserId());
|
});
|
}
|
if (keyword != null && !keyword.isEmpty()) {
|
wrapper = wrapper.like(PlayPlanNv::getName, keyword);
|
}
|
List<PlayPlanNv> list = playPlanNvService.list(wrapper);
|
list.forEach(plan -> {
|
// plan.setPlan(JSON.parseObject(plan.getSchedule(), Map.class));
|
plan.setPlan(JSON.parseArray(plan.getSchedule(), SchedulesDTO.class));
|
});
|
return ResponseUtil.successPage(list);
|
}
|
|
}
|