package com.sandu.ximon.admin.service; import com.sandu.common.execption.BusinessException; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.param.MissionParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.dao.domain.LampMission; import com.sandu.ximon.dao.domain.LightAdjust; import com.sandu.ximon.dao.mapper.LampMissionMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service @AllArgsConstructor public class LampMissionService extends BaseServiceImpl { private final LightAdjustService lightAdjustService; // private final Snowflake snowflake; public boolean addLampMission(MissionParam MissionParam) { LampMission lampMission = new LampMission(); Long clientId = SecurityUtils.getClientId(); // lampMission.setId(snowflake.nextId()); lampMission.setUserId(clientId); lampMission.setWeeks(MissionParam.getWeeks()); lampMission.setInitial(MissionParam.getInitial()); lampMission.setOffTime(MissionParam.getOffTime()); lampMission.setOnTime(MissionParam.getOnTime()); boolean b1 = save(lampMission); // LampMission one = getOne(Wrappers.lambdaQuery(LampMission.class).last("limit 1")); // Long id = one.getId(); boolean b = false; if (MissionParam.getAdjusts() != null) { //LightAdjust adjust=new LightAdjust(); // adjust.setId(lampMission.getId()); List missions = new ArrayList<>(); for (LightAdjust adjust : MissionParam.getAdjusts() ) { LightAdjust lightAdjust = new LightAdjust(); lightAdjust.setId(lampMission.getId()); lightAdjust.setMissionId(lampMission.getId()); lightAdjust.setAdjustTime(adjust.getAdjustTime()); lightAdjust.setLuminance(adjust.getLuminance()); missions.add(lightAdjust); } b = lightAdjustService.saveBatch(missions); // lampMission.setAdjusts(MissionParam.getAdjusts()); } if (MissionParam.getAdjusts() != null) { return b; } else { return b1; } } public boolean updateLampMission(Long id, MissionParam MissionParam) { LampMission byId = getById(id); if (byId == null) { throw new BusinessException("未找到该灯杆"); } LampMission lampMission = new LampMission(); Long clientId = SecurityUtils.getClientId(); lampMission.setUserId(clientId); lampMission.setWeeks(MissionParam.getWeeks()); lampMission.setInitial(MissionParam.getInitial()); lampMission.setOffTime(MissionParam.getOffTime()); lampMission.setOnTime(MissionParam.getOnTime()); boolean b1 = updateById(lampMission); boolean b = false; if (MissionParam.getAdjusts() != null) { // lightAdjustService.deleteByMissionId(id);//删除原先的定时任务 List missions = new ArrayList<>(); //设置新的定时任务 for (LightAdjust adjust : MissionParam.getAdjusts() ) { LightAdjust lightAdjust = new LightAdjust(); lightAdjust.setId(adjust.getId()); lightAdjust.setMissionId(id); lightAdjust.setAdjustTime(adjust.getAdjustTime()); lightAdjust.setLuminance(adjust.getLuminance()); missions.add(lightAdjust); } b = lightAdjustService.updateBatchById(missions); } if (MissionParam.getAdjusts() != null) { return b; } else { return b1; } } public boolean deleteMission(Long id) { LampMission byId = getById(id); if (byId == null) { throw new BusinessException("未找到该灯杆"); } boolean removeById = removeById(id); if(removeById){ return lightAdjustService.deleteByMissionId(id); } return removeById(id); } }