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.github.pagehelper.PageHelper; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; 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.enums.OrderByEnums; import com.sandu.ximon.dao.mapper.LEDProgramMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; 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 List listProgram(BaseConditionVO baseConditionVO, Integer order, Integer seq, String keyword) { LambdaQueryWrapper wrapper = listPrograms(); if (keyword != null && !keyword.isEmpty()) { wrapper.like(LEDProgram::getName, keyword); } //排序字段 String orderByResult = "id"; //正序、倒叙 String orderBySeq = OrderByEnums.ASC.getCode(); if (order != null) { switch (order) { case 1: orderByResult = OrderByEnums.LED_N_PROGRAM_CREATE_TIME.getCode(); break; default: } } if (seq != null) { switch (seq) { case 1: orderBySeq = " ASC"; break; case 2: orderBySeq = " DESC"; break; default: break; } } //排序方式 String orderBy = orderByResult + " " + orderBySeq; if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), orderBy); } return list(wrapper); } public List listProgramOnBinding(String keyword) { LambdaQueryWrapper wrapper = listPrograms(); if (keyword != null && !keyword.isEmpty()) { wrapper.like(LEDProgram::getName, keyword); } return list(wrapper); } public LambdaQueryWrapper listPrograms() { 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()); }); } } }