package com.govmade.modules.system.service.impl; import java.util.List; import java.util.Map; import java.util.Set; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.govmade.common.utils.PageTreeUtils; import com.govmade.modules.system.dao.DictDao; import com.govmade.modules.system.entity.DictEntity; import com.govmade.modules.system.service.DictService; import cn.hutool.core.util.StrUtil; /** * 系统管理 - 字典设置 * * @author Fred * @email fangtaosh@qq.com * @date 2018年8月7日 */ @Service("DictService") public class DictServiceImpl extends ServiceImpl<DictDao, DictEntity> implements DictService { @Override public PageTreeUtils queryPage(Map<String, Object> params) { String name = (String) params.get("name"); int currPage = Integer.parseInt((String) params.get("currPage")); int pageSize = Integer.parseInt((String) params.get("pageSize")); int start = (currPage-1)*pageSize; params.put("name2", name); params.put("pageSize2", pageSize); params.put("start", start); List<DictEntity> allList=this.baseMapper.listTree(params); List<DictEntity> list=buildAreaTree(allList,0L); int totalCount = super.selectCount(new QueryWrapper<DictEntity>().like(StrUtil.isNotBlank(name), "name", name) .eq("pid", 0).eq("state", 1)); return new PageTreeUtils(list,totalCount,pageSize,currPage); } /** *递归方法 */ private List<DictEntity> buildAreaTree(List<DictEntity> dictList, Long id) { List<DictEntity> dList = Lists.newArrayList(); for (DictEntity dict : dictList) { if (id == dict.getPid()) { dict.setChildren(buildAreaTree(dictList, dict.getId())); dList.add(dict); } } return dList; } @Override public DictEntity queryOne(Map<String, Object> params) { String value = (String) params.get("value"); return (DictEntity) this .selectOne(new QueryWrapper<DictEntity>().eq(StrUtil.isNotBlank(value), "value", value)); } @Override public List<DictEntity> queryChilds(String pValue) { List<DictEntity> childs = baseMapper.selectChilds(pValue); return childs; } @Override public void save(DictEntity dict) { super.insertOrUpdate(dict); } @Override public void deleteBatch(Set<Long> ids) { this.baseMapper.deleteBatch(ids); } @Override public Integer checkDict(String name) { return super.selectCount(new QueryWrapper<DictEntity>().eq("name",name)); } @Override public DictEntity queryById(Long id) { return super.selectById(id); } }