DictServiceImpl.java 2.67 KB
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);
	}
}