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.domain.PlayPlanNv; 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; @AnonymousAccess @PostMapping("/add") public ResponseVO addLEDPlan(@RequestBody @Validated PlayPlanParam param) { return ResponseUtil.success(playPlanNvService.addPlan(param)); } @AnonymousAccess @GetMapping("/getByPlanId/{planId}") public ResponseVO getPlan(@PathVariable Long planId) { return ResponseUtil.success(playPlanNvService.getByPlanId(planId)); } @PostMapping("/update/{planId}") public ResponseVO updateLEDPlan(@PathVariable Long planId, @RequestBody @Validated PlayPlanParam param) { return ResponseUtil.success(playPlanNvService.updatePlan(planId, param)); } @PostMapping("/delete") public ResponseVO deleteLEDPlan(@RequestBody List plianIds) { return ResponseUtil.success(playPlanNvService.deletePlan(plianIds)); } @AnonymousAccess @PostMapping(value = "/push/{plianId}", produces = "application/json;charset=UTF-8") public ResponseVO pushToLed(@PathVariable Long plianId, @RequestBody List playerIds) { return ResponseUtil.success(playPlanNvService.pushToLed(plianId, playerIds)); } @AnonymousAccess @PostMapping(value = "/pushSchedule/{planId}", produces = "application/json;charset=UTF-8") public ResponseVO pushSchedule(@PathVariable Long planId, @RequestBody List playerIds) { return ResponseUtil.success(playPlanNvService.pushSchedule(planId, playerIds)); } @AnonymousAccess @GetMapping("/listPlan") public ResponseVO 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 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 list = playPlanNvService.list(wrapper); list.forEach(plan -> { // plan.setPlan(JSON.parseObject(plan.getSchedule(), Map.class)); plan.setPlan(JSON.parseObject(plan.getSchedules(), List.class)); // plan.setPlan(JSON.parseArray(plan.getSchedule(), SchedulesDTO.class)); }); return ResponseUtil.successPage(list); } }