package com.youlai.system.service.impl; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.youlai.system.converter.DictItemConverter; import com.youlai.system.mapper.SysDictItemMapper; import com.youlai.system.pojo.entity.SysDictItem; import com.youlai.system.pojo.form.DictItemForm; import com.youlai.system.pojo.query.DictItemPageQuery; import com.youlai.system.pojo.vo.DictItemPageVO; import com.youlai.system.service.SysDictItemService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 数据字典项业务实现类 * * @author haoxr * @date 2022/10/12 */ @Service @RequiredArgsConstructor public class SysDictItemServiceImpl extends ServiceImpl implements SysDictItemService { private final DictItemConverter dictItemConverter; /** * 字典数据项分页列表 * * @param queryParams * @return */ @Override public Page listDictItemPages(DictItemPageQuery queryParams) { // 查询参数 int pageNum = queryParams.getPageNum(); int pageSize = queryParams.getPageSize(); String keywords = queryParams.getKeywords(); String typeCode = queryParams.getTypeCode(); // 查询数据 Page dictItemPage = this.page( new Page<>(pageNum, pageSize), new LambdaQueryWrapper() .like(StrUtil.isNotBlank(keywords), SysDictItem::getName, keywords) .eq(StrUtil.isNotBlank(typeCode), SysDictItem::getTypeCode, typeCode) .select(SysDictItem::getId, SysDictItem::getName, SysDictItem::getValue, SysDictItem::getStatus) ); // 实体转换 Page pageResult = dictItemConverter.entity2Page(dictItemPage); return pageResult; } /** * 字典数据项表单详情 * * @param id 字典数据项ID * @return */ @Override public DictItemForm getDictItemForm(Long id) { // 获取entity SysDictItem entity = this.getOne(new LambdaQueryWrapper() .eq(SysDictItem::getId, id) .select( SysDictItem::getId, SysDictItem::getTypeCode, SysDictItem::getName, SysDictItem::getValue, SysDictItem::getStatus, SysDictItem::getSort, SysDictItem::getRemark )); Assert.isTrue(entity != null, "字典数据项不存在"); // 实体转换 DictItemForm dictItemForm = dictItemConverter.entity2Form(entity); return dictItemForm; } /** * 新增字典数据项 * * @param dictItemForm 字典数据项表单 * @return */ @Override public boolean saveDictItem(DictItemForm dictItemForm) { // 实体对象转换 form->entity SysDictItem entity = dictItemConverter.form2Entity(dictItemForm); // 持久化 boolean result = this.save(entity); return result; } /** * 修改字典数据项 * * @param id 字典数据项ID * @param dictItemForm 字典数据项表单 * @return */ @Override public boolean updateDictItem(Long id, DictItemForm dictItemForm) { SysDictItem entity = dictItemConverter.form2Entity(dictItemForm); boolean result = this.updateById(entity); return result; } /** * 删除字典数据项 * * @param idsStr 字典数据项ID,多个以英文逗号(,)分割 * @return */ @Override public boolean deleteDictItems(String idsStr) { Assert.isTrue(StrUtil.isNotBlank(idsStr), "删除数据为空"); // List ids = Arrays.asList(idsStr.split(",")) .stream() .map(id -> Long.parseLong(id)) .collect(Collectors.toList()); // 删除字典数据项 boolean result = this.removeByIds(ids); return result; } }