package com.sandu.ximon.admin.service; import com.alibaba.fastjson.JSON; 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.VnnoxProgramAPIUtil; import com.sandu.ximon.admin.utils.request.PlayerProgram; import com.sandu.ximon.admin.utils.response.VnnoxResultResponse; import com.sandu.ximon.dao.domain.PlayPlanNv; import com.sandu.ximon.dao.domain.PushToLed; 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.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 播放计划 */ @Service @AllArgsConstructor public class PlayPlanNvService extends BaseServiceImpl { private final PlayPlanNvMapper playPlanMapper; private final VnnoxProgramAPIUtil vnnoxProgramAPIUtil; 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()); 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(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(playPlanParam.getSchedule()); playPlan.setStartTime(playPlanParam.getStartTime()); playPlan.setEndTime(playPlanParam.getEndTime()); return updateById(playPlan); } public boolean deletePlan(List ids) { for(Long id:ids){ PlayPlanNv byId = getById(id); if (byId == null) { throw new BusinessException("部分操作对象不存在"); } } return removeByIds(ids); } public Map pushToLed(Long planId,List playerIds){ // public PlayerProgram pushToLed(Long planId){ PushToLed pushToLed = playPlanMapper.pushToLed(planId); if(pushToLed==null){ throw new BusinessException("未找到该播放计划"); } //List playerIds=new ArrayList<>(); // playerIds.add("872bb51ae0f06e70c21e913cf3dc9e4d"); //List> 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 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); // VnnoxResultResponse vnnoxResultResponse = vnnoxProgramAPIUtil.normalProgram(push); List success = vnnoxResultResponse.getData().getSuccess(); List fail = vnnoxResultResponse.getData().getFail(); Map result=new HashMap<>(); result.put("success",success); result.put("fail",fail); return result; // return program; } }