package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.mdc.dto.MdcUtilizationRateDto; import org.jeecg.modules.mdc.entity.MdcUtilizationRate; import org.jeecg.modules.mdc.mapper.MdcUtilizationRateMapper; import org.jeecg.modules.mdc.service.IMdcUtilizationRateService; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @Description: 率参数设置 * @Author: Sake * @Date: 2023-03-31 15:03 */ @Service public class MdcUtilizationRateServiceImpl extends ServiceImpl implements IMdcUtilizationRateService { @Override public IPage queryPageList(Page page, HttpServletRequest req) { //创建查询器 QueryWrapper queryWrapper = new QueryWrapper(); //检查HTTP请求体中是否存在名为驱动类型的参数,存在则true,获取第一个数据使用模糊查询添加到到查询器中 if (req.getParameterMap().containsKey("rateParameterCategory")) { String rateParameterCategory = req.getParameterMap().get("rateParameterCategory")[0]; queryWrapper.like(StringUtils.isNotBlank(rateParameterCategory), "rate_parameter_category", rateParameterCategory); } //根据参数类别排序 //创建一个返回对象 值为根据分页后查询所得数据 IPage pageList = this.page(page, queryWrapper); return pageList; } @Override public Boolean addUtilization(MdcUtilizationRate mdcUtilizationRate) { return this.save(mdcUtilizationRate); } @Override public Boolean editUtilization(MdcUtilizationRate mdcUtilizationRate) { return this.updateById(mdcUtilizationRate); } @Override public Boolean deleteUtilization(String id) { return this.removeById(id); } @Override public Boolean deleteBatchUtilization(String ids) { return this.removeByIds(Arrays.asList(ids.split(","))); } /** * 根据类型查询利用率层级 * * @param type * @return */ @Override public List listByType(String type) { return this.baseMapper.selectList(new LambdaQueryWrapper().eq(MdcUtilizationRate::getRateParameterType, type)); } /** * 根据类型获取颜色标签 * * @param type * @return */ @Override public List getByType(String type) { List result = new ArrayList<>(); List list = this.list(new LambdaQueryWrapper().eq(MdcUtilizationRate::getRateParameterType, type).orderByAsc(MdcUtilizationRate::getRateParameterLevel)); for (MdcUtilizationRate mdcUtilizationRate : list) { MdcUtilizationRateDto mdcUtilizationRateDto = new MdcUtilizationRateDto(); mdcUtilizationRateDto.setColor(mdcUtilizationRate.getRateParameterColor()); String title; if (mdcUtilizationRate.getMinimumRange() == 0) { title = mdcUtilizationRate.getRateParameterCategory() + " < " + mdcUtilizationRate.getMaximumRange() + "%"; } else if (mdcUtilizationRate.getMaximumRange() == 100) { title = mdcUtilizationRate.getRateParameterCategory() + ">= " + mdcUtilizationRate.getMinimumRange() + "%"; } else { title = mdcUtilizationRate.getMinimumRange() + "% <= " + mdcUtilizationRate.getRateParameterCategory() + " < " + mdcUtilizationRate.getMaximumRange() + "%"; } mdcUtilizationRateDto.setTitle(title); result.add(mdcUtilizationRateDto); } return result; } /** * 据类型获取数据区间和颜色 * * @param type * @return */ @Override public List getSectionByType(String type) { return this.list(new LambdaQueryWrapper().eq(MdcUtilizationRate::getRateParameterType, type).orderByAsc(MdcUtilizationRate::getRateParameterLevel)); } }