package com.sandu.ximon.admin.service; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.param.LEDProgramParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.dao.domain.LEDProgram; import com.sandu.ximon.dao.mapper.LEDProgramMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.List; @Service @AllArgsConstructor public class LEDProgramService extends BaseServiceImpl { private final ClientService clientService; public boolean addProgram(LEDProgramParam receiveParam) { LEDProgram led = new LEDProgram(); led.setUserId(SecurityUtils.getUserId()); led.setUserName(SecurityUtils.getUsername()); if (clientService.findClientId()) { led.setClientId(clientService.getClientId()); } led.setName(receiveParam.getName()); led.setPreview(receiveParam.getPreviewUrl()); led.setWidth(receiveParam.getWidth()); led.setHeight(receiveParam.getHeight()); led.setPages(JSON.toJSONString(receiveParam.getPages())); return save(led); } public boolean updateProgram(Long pid, LEDProgramParam receiveParam) { LEDProgram led = getById(pid); if (led == null) { throw new BusinessException("未找到该节目"); } led.setName(receiveParam.getName()); led.setPreview(receiveParam.getPreviewUrl()); led.setWidth(receiveParam.getWidth()); led.setHeight(receiveParam.getHeight()); led.setPages(JSON.toJSONString(receiveParam.getPages())); return updateById(led); } public boolean deleteProgram(Long id) { LEDProgram byId = getById(id); if (byId == null) { throw new BusinessException("未找到该节目"); } return removeById(id); } public LEDProgramParam getByPid(Long id) { LEDProgram byId = getById(id); if (byId == null) { throw new BusinessException("未找到该节目"); } LEDProgramParam param = new LEDProgramParam(); param.setId(byId.getId()); param.setHeight(byId.getHeight()); param.setWidth(byId.getWidth()); param.setName(byId.getName()); param.setPreviewUrl(byId.getPreview()); param.setPages(JSON.parseObject(byId.getPages(), List.class)); return param; } public LambdaQueryWrapper listProgram() { if (SecurityUtils.getClientId() == null) { return Wrappers.lambdaQuery(LEDProgram.class); } else { return Wrappers.lambdaQuery(LEDProgram.class).eq(LEDProgram::getUserId, SecurityUtils.getUserId()) .or(w -> { w.eq(LEDProgram::getClientId, SecurityUtils.getClientId()); }); } } }