package com.sandu.ximon.admin.service;
|
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.sandu.common.execption.BusinessException;
|
import com.sandu.common.service.impl.BaseServiceImpl;
|
import com.sandu.ximon.admin.config.VnnoxConstant;
|
import com.sandu.ximon.admin.param.PlayPlanParam;
|
import com.sandu.ximon.admin.security.SecurityUtils;
|
import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
|
import com.sandu.ximon.admin.utils.VnnoxProgramAPIUtil;
|
import com.sandu.ximon.admin.utils.request.PlayerProgram;
|
import com.sandu.ximon.admin.utils.response.VnnoxResult;
|
import com.sandu.ximon.admin.utils.response.VnnoxResultResponse;
|
import com.sandu.ximon.dao.domain.*;
|
import com.sandu.ximon.dao.enums.AdministratorEnums;
|
import com.sandu.ximon.dao.mapper.PlayPlanNvMapper;
|
import lombok.AllArgsConstructor;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.*;
|
|
/**
|
* 播放计划
|
*/
|
@Service
|
@AllArgsConstructor
|
public class PlayPlanNvService extends BaseServiceImpl<PlayPlanNvMapper, PlayPlanNv> {
|
|
private final PlayPlanNvMapper playPlanMapper;
|
private final VnnoxProgramAPIUtil vnnoxProgramAPIUtil;
|
private final LedPlayerEntityService ledPlayerEntityService;
|
private VnnoxAPIUtil vnnoxAPIUtil;
|
private final LEDProgramService ledProgramService;
|
|
public boolean addPlan(PlayPlanParam playPlanParam) {
|
|
PlayPlanNv playPlan = new PlayPlanNv();
|
if (AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
|
playPlan.setUserId(SecurityUtils.getUserId());
|
}
|
playPlan.setName(playPlanParam.getName());
|
playPlan.setLedProgramName(playPlanParam.getLedProgramName());
|
LEDProgram byId = ledProgramService.getById(playPlanParam.getLedProgramId());
|
if(byId==null){
|
throw new BusinessException("ledProgramId有误,未找到该节目");
|
}
|
playPlan.setLedProgramId(playPlanParam.getLedProgramId());
|
playPlan.setVolume(playPlanParam.getVolume());
|
playPlan.setApplySeries(playPlanParam.getApplySeries());
|
playPlan.setStartDate(playPlanParam.getStartDate());
|
playPlan.setEndDate(playPlanParam.getEndDate());
|
playPlan.setWeekDays(playPlanParam.getWeekDays());
|
playPlan.setSchedule(JSON.toJSONString(playPlanParam.getSchedule()));
|
playPlan.setStartTime(playPlanParam.getStartTime());
|
playPlan.setEndTime(playPlanParam.getEndTime());
|
// BeanUtils.copyProperties(playPlanParam, playPlan);
|
|
|
return save(playPlan);
|
|
}
|
|
public boolean updatePlan(Long id, PlayPlanParam playPlanParam) {
|
PlayPlanNv byId = getById(id);
|
if (byId == null) {
|
throw new BusinessException("操作对象不存在");
|
}
|
PlayPlanNv playPlan = new PlayPlanNv();
|
playPlan.setId(id);
|
playPlan.setName(playPlanParam.getName());
|
playPlan.setLedProgramName(playPlanParam.getLedProgramName());
|
playPlan.setLedProgramId(playPlanParam.getLedProgramId());
|
playPlan.setVolume(playPlanParam.getVolume());
|
playPlan.setApplySeries(playPlanParam.getApplySeries());
|
playPlan.setStartDate(playPlanParam.getStartDate());
|
playPlan.setEndDate(playPlanParam.getEndDate());
|
playPlan.setWeekDays(playPlanParam.getWeekDays());
|
playPlan.setSchedule(JSON.toJSONString(playPlanParam.getSchedule()));
|
playPlan.setStartTime(playPlanParam.getStartTime());
|
playPlan.setEndTime(playPlanParam.getEndTime());
|
|
return updateById(playPlan);
|
|
}
|
|
public boolean deletePlan(List<Long> ids) {
|
for(Long id:ids){
|
PlayPlanNv byId = getById(id);
|
if (byId == null) {
|
throw new BusinessException("部分操作对象不存在");
|
}
|
}
|
return removeByIds(ids);
|
}
|
|
public Map<String, Object> pushToLed(Long planId,List<String> playerIds){
|
// public PlayerProgram pushToLed(Long planId){
|
PushToLed pushToLed = playPlanMapper.pushToLed(planId);
|
PlayPlanNv one =getOne(Wrappers.lambdaQuery(PlayPlanNv.class).eq(PlayPlanNv::getId, planId));
|
if(pushToLed==null){
|
throw new BusinessException("未找到该播放计划");
|
}
|
//List<String> playerIds=new ArrayList<>();
|
// playerIds.add("872bb51ae0f06e70c21e913cf3dc9e4d");
|
//List<Map<String,Object>> pages = JSON.parseObject(pushToLed.getPages(), List.class);
|
PlayerProgram program=new PlayerProgram();
|
program.setPlayerIds(playerIds);
|
System.out.println(pushToLed.getPages());
|
|
System.out.println(JSON.parseArray(pushToLed.getPages(), Map.class));
|
program.setPages(JSON.parseObject(pushToLed.getPages(), List.class));
|
program.setSchedule(JSON.parseObject(pushToLed.getSchedule(), Map.class));
|
program.setNoticeUrl(VnnoxConstant.NOTIFY_URL);
|
/* Map schedule = JSON.parseObject(pushToLed.getSchedule(), Map.class);
|
Map<String,Object> push=new HashMap<>();
|
push.put("playerIds",playerIds);
|
push.put("pages",pages);
|
push.put("schedule",schedule);
|
push.put("noticeUrl", VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
|
*/
|
VnnoxResultResponse vnnoxResultResponse = vnnoxProgramAPIUtil.normalProgram(program);
|
VnnoxResult vnnoxResult = vnnoxAPIUtil.volChange(playerIds, Integer.valueOf(one.getVolume()).intValue());
|
|
// VnnoxResultResponse vnnoxResultResponse = vnnoxProgramAPIUtil.normalProgram(push);
|
List<String> success=new ArrayList<>();
|
List<String> fail= new ArrayList<>();
|
// List<String> success=new ArrayList<>();
|
// if(vnnoxResultResponse.getData().getSuccess()!=null&&vnnoxResultResponse.getData()!=null){
|
// success = vnnoxResultResponse.getData().getSuccess();
|
// }
|
// //success.addAll(vnnoxResult.getSuccess());
|
|
// if(vnnoxResultResponse.getData().getFail()!=null&vnnoxResultResponse.getData()!=null){
|
// fail= vnnoxResultResponse.getData().getFail();
|
// }
|
if(vnnoxResultResponse.getData()!=null){
|
success = vnnoxResultResponse.getData().getSuccess();
|
fail= vnnoxResultResponse.getData().getFail();
|
}
|
|
|
// fail.addAll(vnnoxResult.getFail());
|
Map<String,Object> result=new HashMap<>();
|
List<LedPlayerEntity> successList= new ArrayList<>();
|
List<LedPlayerEntity> faileList= new ArrayList<>();
|
for (String playerId:success){
|
successList.add(ledPlayerEntityService.getByPlayerId(playerId));
|
}
|
for (String playerId:fail){
|
faileList.add( ledPlayerEntityService.getByPlayerId(playerId));
|
}
|
|
|
result.put("success",successList);
|
result.put("fail",faileList);
|
|
return result;
|
// return program;
|
|
}
|
}
|