package com.sandu.ximon.admin.controller;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.github.pagehelper.PageHelper;
|
import com.sandu.common.domain.ResponseVO;
|
import com.sandu.common.execption.BusinessException;
|
import com.sandu.common.object.BaseConditionVO;
|
import com.sandu.common.util.ResponseUtil;
|
import com.sandu.ximon.admin.entity.ProgramPro;
|
import com.sandu.ximon.admin.param.LEDScheduleParam_xixun;
|
import com.sandu.ximon.admin.param.SetVolumeParam;
|
import com.sandu.ximon.admin.security.SecurityUtils;
|
import com.sandu.ximon.admin.service.ClientService;
|
import com.sandu.ximon.admin.service.LedScheduleService;
|
import com.sandu.ximon.admin.service.PoleLightemitService;
|
import com.sandu.ximon.admin.service.XiXunPlayerService;
|
import com.sandu.ximon.admin.utils.LightemitUtils;
|
import com.sandu.ximon.dao.domain.PoleLightemitEntity;
|
import com.sandu.ximon.dao.domain.PoleXixunPlayerEntity;
|
import com.sandu.ximon.dao.enums.AdministratorEnums;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.Arrays;
|
import java.util.Collection;
|
import java.util.Iterator;
|
import java.util.List;
|
|
/**
|
* @Author liuhaonan
|
* @Date 2022/2/22 13:55
|
* @Version 1.0
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/v1/xixun")
|
public class XiXunController {
|
|
private final XiXunPlayerService xiXunPlayerService;
|
private final ClientService clientService;
|
private final PoleLightemitService poleLightemitService;
|
private final LightemitUtils lightemitUtils;
|
private final LedScheduleService scheduleService;
|
|
/**
|
* 新增节目
|
* @param programPro
|
* @return
|
*/
|
@PostMapping("/addProgram")
|
public ResponseVO<Object> addProgram(@RequestBody ProgramPro programPro){
|
return ResponseUtil.success(xiXunPlayerService.insert(programPro));
|
}
|
|
/**
|
* 修改
|
*/
|
@PostMapping("/updateProgram")
|
// @RequiresPermissions("pole:polexixunplayer:update")
|
public ResponseVO<Object> update(@RequestBody ProgramPro programPro){
|
PoleXixunPlayerEntity byId = xiXunPlayerService.getById(programPro.getProgramId());
|
if(byId==null){
|
throw new BusinessException("参数错误");
|
}
|
// QueryWrapper<PoleXixunPlayerEntity> queryWrapper = new QueryWrapper<>();
|
// queryWrapper.eq("program_code", programPro.get_id());
|
boolean insert=false;
|
if(xiXunPlayerService.removeById(programPro.getProgramId())){
|
insert = xiXunPlayerService.insert(programPro);
|
};
|
return ResponseUtil.success(insert);
|
}
|
|
/**
|
* 删除节目
|
* @param pid
|
* @return
|
*/
|
@PostMapping("/deleteProgram/{pid}")
|
public ResponseVO<Object> deleteProgram(@PathVariable Long pid){
|
return ResponseUtil.success(xiXunPlayerService.deleteProgram(pid));
|
}
|
|
/**
|
* 获取节目详情
|
* @param pid
|
* @return
|
*/
|
@GetMapping("/getByPid/{pid}")
|
public ResponseVO<Object> getByPid(@PathVariable Long pid){
|
return ResponseUtil.success(xiXunPlayerService.getByPid(pid));
|
}
|
|
/**
|
* 节目列表
|
* @param baseConditionVO
|
* @param keyword
|
* @return
|
*/
|
@GetMapping("/list")
|
public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
|
LambdaQueryWrapper<PoleXixunPlayerEntity> wrapper = Wrappers.lambdaQuery(PoleXixunPlayerEntity.class).like(PoleXixunPlayerEntity::getProgramName, keyword);
|
// if(AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())){
|
// boolean clientId = clientService.findClientId();
|
// if(clientId){
|
// wrapper= wrapper.eq(PoleXixunPlayerEntity::getUserId,SecurityUtils.getUserId());
|
// }
|
// wrapper= wrapper.eq(PoleXixunPlayerEntity::getClientId,clientService.getClientId());
|
// }
|
// wrapper=Wrappers.lambdaQuery(PoleXixunPlayerEntity.class);
|
// if(StrUtil.isNotBlank(keyword)){
|
// wrapper.like(PoleXixunPlayerEntity::getLightemitName,keyword).or(
|
// lambdaQueryWrapper -> {
|
// lambdaQueryWrapper.like(PoleXixunPlayerEntity::getLightemitControlCode, keyword);
|
// }
|
// );
|
// }
|
// return ResponseUtil.success(poleLightemitService.list(wrapper));
|
if(AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
|
|
return ResponseUtil.success(xiXunPlayerService.list(wrapper)); // todo
|
}else {
|
return ResponseUtil.success(xiXunPlayerService.list(wrapper));
|
}
|
}
|
|
|
/**
|
* 节目推送
|
* @param pid
|
* @param lightemitIds
|
* @return
|
*/
|
@GetMapping("/pushToXixun/{pid}")
|
public ResponseVO<Object> getByPid(@PathVariable Long pid, @RequestBody List<Long> lightemitIds ){
|
xiXunPlayerService.videoXixunPlayer(pid,lightemitIds);
|
return ResponseUtil.success("推送成功");
|
}
|
|
/**
|
* LED屏幕新增
|
* @param poleLightemit
|
* @return
|
*/
|
@PostMapping("/saveLed")
|
public ResponseVO<Object> save(@RequestBody PoleLightemitEntity poleLightemit){
|
int count = poleLightemitService.count(new QueryWrapper<PoleLightemitEntity>().eq("lightemit_control_code", poleLightemit.getLightemitControlCode()));
|
if(count != 0){
|
throw new BusinessException("LED控制卡编号不能重复");
|
}
|
|
poleLightemit.setCreateUserId(SecurityUtils.getClientId());
|
|
poleLightemitService.savePoleLightemit(poleLightemit);
|
|
|
return ResponseUtil.success("新增成功");
|
}
|
|
/**
|
* LED屏幕修改
|
* @param ledId
|
* @param poleLightemit
|
* @return
|
*/
|
@PostMapping("/updateLed/{ledId}")
|
public ResponseVO<Object> updatePoleLightemit(@PathVariable Long ledId,@RequestBody PoleLightemitEntity poleLightemit){
|
poleLightemitService.updatePoleLightemit(ledId,poleLightemit);
|
return ResponseUtil.success("修改成功");
|
}
|
|
/**
|
* LED屏幕删除
|
* @param ledIds
|
* @return
|
*/
|
@PostMapping("/deleteLed")
|
public ResponseVO<Object> deleteLed(@RequestBody List<Long> ledIds){
|
boolean b = poleLightemitService.deletePoleLightemit(ledIds);
|
if(b){
|
return ResponseUtil.success("删除成功");
|
}else {
|
return ResponseUtil.success("删除失败");
|
}
|
}
|
|
/**
|
* LED屏幕列表
|
* @param baseConditionVO
|
* @param keyword
|
* @return
|
*/
|
@GetMapping("/listLed")
|
public ResponseVO<Object> listLed(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
LambdaQueryWrapper<PoleLightemitEntity> wrapper = Wrappers.lambdaQuery(PoleLightemitEntity.class);
|
if(AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())){
|
boolean clientId = clientService.findClientId();
|
if(clientId){
|
wrapper= wrapper.eq(PoleLightemitEntity::getUserId,SecurityUtils.getUserId());
|
}
|
wrapper= wrapper.eq(PoleLightemitEntity::getClientId,clientService.getClientId());
|
}
|
wrapper=Wrappers.lambdaQuery(PoleLightemitEntity.class);
|
if(StrUtil.isNotBlank(keyword)){
|
wrapper.like(PoleLightemitEntity::getLightemitName,keyword).or(
|
lambdaQueryWrapper -> {
|
lambdaQueryWrapper.like(PoleLightemitEntity::getLightemitControlCode, keyword);
|
}
|
);
|
}
|
return ResponseUtil.success(poleLightemitService.list(wrapper));
|
}
|
|
/*
|
获取led实时画面
|
*/
|
@GetMapping("/getPicture/{id}")
|
public ResponseVO<Object> getPicture(@PathVariable Long id){
|
if(id == null){
|
throw new BusinessException("未选择LED屏");
|
}
|
PoleLightemitEntity poleLightemitEntity = poleLightemitService.getById(id);
|
if(poleLightemitEntity != null){
|
String result = lightemitUtils.getPicture(poleLightemitEntity.getLightemitControlCode());
|
return ResponseUtil.success(result);
|
}else {
|
throw new BusinessException("未选择LED屏");
|
}
|
}
|
|
/*
|
获取音量
|
*/
|
@GetMapping("/getVolume/{id}")
|
public ResponseVO<Object> getVolume(@PathVariable Long id){
|
if(id == null){
|
throw new BusinessException("未选择LED屏");
|
}
|
PoleLightemitEntity poleLightemitEntity = poleLightemitService.getById(id);
|
if(poleLightemitEntity != null){
|
String result = lightemitUtils.getVoiume(poleLightemitEntity.getLightemitControlCode());
|
return ResponseUtil.success(result);
|
}else {
|
throw new BusinessException("未选择LED屏");
|
}
|
}
|
|
|
/*
|
设置音量
|
*/
|
@GetMapping("/setVolume")
|
public ResponseVO<Object> setVolume(@RequestBody SetVolumeParam setVolumeEntity){
|
|
if(setVolumeEntity == null || setVolumeEntity.getIds() == null || setVolumeEntity.getVolume() > 15){
|
throw new BusinessException("参数错误");
|
}
|
|
Collection poleLightemitControllers = poleLightemitService.listByIds(Arrays.asList(setVolumeEntity.getIds()));
|
if (!poleLightemitControllers.isEmpty()) {
|
Iterator iterator = poleLightemitControllers.iterator();
|
while (iterator.hasNext()) {
|
PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
|
poleLightemitService.setVolume(poleLightemitEntity.getLightemitControlCode(), setVolumeEntity.getVolume());
|
}
|
return ResponseUtil.success("设置音量成功");
|
}else {
|
throw new BusinessException("未选择LED屏");
|
}
|
}
|
|
@PostMapping("/addSchedule")
|
public ResponseVO<Object> addSchedule(@RequestBody LEDScheduleParam_xixun ledEntity){
|
return ResponseUtil.success(scheduleService.insert(ledEntity));
|
}
|
|
@PostMapping("/updateSchedule")
|
public ResponseVO<Object> updateSchedule(@RequestBody LEDScheduleParam_xixun ledEntity){
|
return ResponseUtil.success(scheduleService.updateSchedule(ledEntity));
|
}
|
|
@GetMapping("/getSchedule/{id}")
|
public ResponseVO<Object> getSchedule(@PathVariable Integer id){
|
return ResponseUtil.success(scheduleService.getSchedule(id));
|
}
|
|
@GetMapping("/pushSchedule/{id}")
|
public ResponseVO<Object> pushSchedule(@PathVariable Integer id,@RequestBody Long[] lightemitIds){
|
scheduleService.ledschedulepush(id,lightemitIds);
|
return ResponseUtil.success("设置成功");
|
}
|
|
|
}
|