package com.xy.service; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.xy.dto.SysDict.SysDictDto; import com.xy.dto.SysDict.SysDictItemDto; import com.xy.dto.SysDict.SysDictItemPageDto; import com.xy.dto.SysDict.SysDictPageDto; import com.xy.entity.SysDict; import com.xy.entity.SysDictItem; import com.xy.utils.Beans; import com.xy.utils.PageBean; import com.xy.utils.R; import com.xy.vo.SysDictItemVo; import com.xy.vo.SysDictVo; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import static com.xy.utils.Beans.copy; import static com.xy.utils.PlusBeans.toIPage; import static com.xy.utils.PlusBeans.toPageBean; @Service @RequiredArgsConstructor @Api(tags = "字典表管理API") public class SysApiServiceImpl implements SysDicApiService { private final SysDictItemService sysDictItemService; private final SysDictService sysDictService; @Override public R getById(Long id) { return R.ok(Beans.copy(SysDictVo.class, sysDictItemService.getById(id))); } @Override public R> getDictPage(SysDictPageDto dto) { PageBean pageBean = dto.getPage(); IPage page = sysDictService.page(toIPage(pageBean), Wrappers.lambdaQuery() .like(StrUtil.isNotBlank(dto.getDictKey()), com.xy.entity.SysDict::getDictKey, dto.getDictKey())); return R.ok(toPageBean(SysDictVo.class, page)); } @Override public R> getDictByKey(String key) { List sysDictItemList = sysDictItemService.list(Wrappers.lambdaQuery().eq(SysDictItem::getDictKey, key)); return R.ok(copy(SysDictItemVo.class, sysDictItemList)); } @Override public R add(SysDictDto sysDictDto) { return R.ok(sysDictService.save(copy(SysDict.class, sysDictDto))); } @Override public R removeById(Long id) { sysDictService.removeDict(id); return R.ok(); } @Override public R updateSysDictById(SysDictDto sysDictDto) { sysDictService.updateDict(copy(com.xy.entity.SysDict.class, sysDictDto)); return R.ok(); } @Override public R> getSysDictItemPage(SysDictItemPageDto pageDto) { PageBean pageBean = pageDto.getPage(); SysDictItem sysDictItem = copy(SysDictItem.class, pageDto); IPage page = sysDictItemService.page(toIPage(pageBean), Wrappers.query(sysDictItem)); return R.ok(toPageBean(SysDictItemVo.class, page)); } @Override public R getDictItemById(Long id) { return R.ok(copy(SysDictItemVo.class, sysDictItemService.getById(id))); } @Override public R addItem(SysDictItemDto sysDictItemDto) { return R.ok(sysDictItemService.save(copy(SysDictItem.class, sysDictItemDto))); } @Override public R updateSysDictItemById(SysDictItemDto sysDictItemDto) { sysDictItemService.updateDictItem(copy(SysDictItem.class, sysDictItemDto)); return R.ok(); } @Override public R removeDictItemById(Long id) { sysDictItemService.removeDictItem(id); return R.ok(); } @Override public R clearDictCache() { sysDictService.clearDictCache(); return R.ok(); } }