|
@@ -1,6 +1,8 @@
|
|
|
package com.boman.system.service.impl;
|
|
|
|
|
|
import com.boman.domain.SysDictData;
|
|
|
+import com.boman.domain.SysMenu;
|
|
|
+import com.boman.domain.dto.AjaxResult;
|
|
|
import com.boman.system.mapper.SysDictDataMapper;
|
|
|
import com.boman.system.service.ISysDictDataService;
|
|
|
import com.boman.system.service.ISysDictTypeService;
|
|
@@ -9,16 +11,19 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import static com.boman.common.core.utils.obj.ObjectUtils.map;
|
|
|
+
|
|
|
/**
|
|
|
* 字典 业务层处理
|
|
|
- *
|
|
|
+ *
|
|
|
* @author ruoyi
|
|
|
*/
|
|
|
@Service
|
|
|
-public class SysDictDataServiceImpl implements ISysDictDataService
|
|
|
-{
|
|
|
+public class SysDictDataServiceImpl implements ISysDictDataService {
|
|
|
@Autowired
|
|
|
private SysDictDataMapper dictDataMapper;
|
|
|
@Resource
|
|
@@ -26,20 +31,19 @@ public class SysDictDataServiceImpl implements ISysDictDataService
|
|
|
|
|
|
/**
|
|
|
* 根据条件分页查询字典数据
|
|
|
- *
|
|
|
+ *
|
|
|
* @param dictData 字典数据信息
|
|
|
* @return 字典数据集合信息
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<SysDictData> selectDictDataList(SysDictData dictData)
|
|
|
- {
|
|
|
+ public List<SysDictData> selectDictDataList(SysDictData dictData) {
|
|
|
return dictDataMapper.selectDictDataList(dictData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据字典类型和字典键值查询字典数据信息
|
|
|
- *
|
|
|
- * @param dictType 字典类型
|
|
|
+ *
|
|
|
+ * @param dictType 字典类型
|
|
|
* @param dictValue 字典键值
|
|
|
* @return 字典标签
|
|
|
*/
|
|
@@ -57,28 +61,25 @@ public class SysDictDataServiceImpl implements ISysDictDataService
|
|
|
|
|
|
/**
|
|
|
* 根据字典数据ID查询信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param id 字典数据ID
|
|
|
* @return 字典数据
|
|
|
*/
|
|
|
@Override
|
|
|
- public SysDictData selectDictDataById(Long id)
|
|
|
- {
|
|
|
+ public SysDictData selectDictDataById(Long id) {
|
|
|
return dictDataMapper.selectDictDataById(id);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 批量删除字典数据信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param ids 需要删除的字典数据ID
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int deleteDictDataByIds(Long[] ids)
|
|
|
- {
|
|
|
+ public int deleteDictDataByIds(Long[] ids) {
|
|
|
int row = dictDataMapper.deleteDictDataByIds(ids);
|
|
|
- if (row > 0)
|
|
|
- {
|
|
|
+ if (row > 0) {
|
|
|
DictUtils.clearDictCache();
|
|
|
}
|
|
|
return row;
|
|
@@ -86,16 +87,14 @@ public class SysDictDataServiceImpl implements ISysDictDataService
|
|
|
|
|
|
/**
|
|
|
* 新增保存字典数据信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param dictData 字典数据信息
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int insertDictData(SysDictData dictData)
|
|
|
- {
|
|
|
+ public int insertDictData(SysDictData dictData) {
|
|
|
int row = dictDataMapper.insertDictData(dictData);
|
|
|
- if (row > 0)
|
|
|
- {
|
|
|
+ if (row > 0) {
|
|
|
DictUtils.clearDictCache();
|
|
|
}
|
|
|
return row;
|
|
@@ -103,18 +102,73 @@ public class SysDictDataServiceImpl implements ISysDictDataService
|
|
|
|
|
|
/**
|
|
|
* 修改保存字典数据信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param dictData 字典数据信息
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int updateDictData(SysDictData dictData)
|
|
|
- {
|
|
|
+ public int updateDictData(SysDictData dictData) {
|
|
|
int row = dictDataMapper.updateDictData(dictData);
|
|
|
- if (row > 0)
|
|
|
- {
|
|
|
+ if (row > 0) {
|
|
|
DictUtils.clearDictCache();
|
|
|
}
|
|
|
return row;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据字典类型查询字典数据信息下拉树列表
|
|
|
+ *
|
|
|
+ * @param dictType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<SysDictData> selectTreeSelect(String dictType) {
|
|
|
+ List<SysDictData> sysDictData = dictDataMapper.selectDictDataByType(dictType);
|
|
|
+ return recursionFn(sysDictData);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 递归列表
|
|
|
+ *
|
|
|
+ * @param sysDictData 子节点列表
|
|
|
+ */
|
|
|
+ private List<SysDictData> recursionFn(List<SysDictData> sysDictData) {
|
|
|
+ if (sysDictData.size() > 0){
|
|
|
+ //获取所有节点的id
|
|
|
+ List<Long> allDictDataId = map(sysDictData, SysDictData::getId);
|
|
|
+ //获得所有节点的子节点
|
|
|
+ List<SysDictData> sysDictDataList = dictDataMapper.selectDictDataByParentId(allDictDataId);
|
|
|
+ //如果子节点有数据
|
|
|
+ if (sysDictDataList.size() > 0){
|
|
|
+ for (SysDictData dictData : sysDictData) {
|
|
|
+ //找到对应的子节点
|
|
|
+ List<SysDictData> childList = getChildList(sysDictDataList, dictData);
|
|
|
+ dictData.setChildren(childList);
|
|
|
+ }
|
|
|
+ recursionFn(sysDictDataList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysDictData;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 功能描述: 获取menu下所有的子节点
|
|
|
+ *
|
|
|
+ * @param allDictData 所有的
|
|
|
+ * @param dictData 父节点
|
|
|
+ * @return java.util.List<com.boman.domain.SysMenu>
|
|
|
+ */
|
|
|
+
|
|
|
+ private List<SysDictData> getChildList(List<SysDictData> allDictData, SysDictData dictData) {
|
|
|
+ //定义子节点
|
|
|
+ List<SysDictData> childrenList = new ArrayList<SysDictData>();
|
|
|
+ Iterator<SysDictData> it = allDictData.iterator();
|
|
|
+ while (it.hasNext()) {
|
|
|
+ SysDictData n = (SysDictData) it.next();
|
|
|
+ if (n.getParentId().longValue() == dictData.getId().longValue()) {
|
|
|
+ childrenList.add(n);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return childrenList;
|
|
|
+ }
|
|
|
+
|
|
|
}
|