package com.cloud.device.service.impl;
|
|
import com.cloud.device.constants.Constants;
|
import com.cloud.device.dao.OrgDao;
|
import com.cloud.device.model.Org;
|
import com.cloud.device.service.OrgService;
|
import com.cloud.device.vo.MenuTreeVo;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Slf4j
|
@Service
|
public class OrgServiceImpl implements OrgService {
|
|
@Autowired
|
private OrgDao orgDao;
|
|
@Override
|
public int deleteById(Long id) {
|
return orgDao.deleteById(id);
|
}
|
|
@Override
|
public int insert(Org record) {
|
String parentIds = getParentByData(record);
|
record.setParentIds(parentIds);
|
return orgDao.insert(record);
|
}
|
|
@Override
|
public int insertSelective(Org record) {
|
String parentIds = getParentByData(record);
|
record.setParentIds(parentIds);
|
return orgDao.insertSelective(record);
|
}
|
|
@Override
|
public Org selectById(Long id) {
|
return orgDao.selectById(id);
|
}
|
|
@Override
|
public int updateByIdSelective(Org record) {
|
// String parentIds = getParentByData(record);
|
// record.setParentIds(parentIds);
|
return orgDao.updateByIdSelective(record);
|
}
|
|
@Override
|
public int updateById(Org record) {
|
return orgDao.updateById(record);
|
}
|
|
@Override
|
public List<Org> findChildById(Long id) {
|
return orgDao.findChildById(id);
|
}
|
|
|
/**
|
* 根据parent组装path
|
* @param org
|
* @return
|
*/
|
public String getParentByData(Org org){
|
String parentIds = "";
|
if(org.getParentId() > 0){
|
Org parentOrg = this.selectById(org.getParentId());
|
if(parentOrg !=null){
|
parentIds = parentOrg.getParentIds()+parentOrg.getId()+",";
|
}
|
}else{
|
parentIds = ","+org.getParentId()+",";
|
}
|
|
return parentIds;
|
}
|
|
public List<MenuTreeVo> findOrg(String name){
|
List<MenuTreeVo> dataList = new ArrayList<>();//返回的列表
|
|
Map<String,Object> param = new HashMap<>();
|
param.put("name", name);
|
List<Org> allOrgs = orgDao.findAll(param);
|
|
setOrgTree(0L,allOrgs, dataList);
|
|
return dataList;
|
}
|
|
private void setOrgTree(Long parentId, List<Org> all, List<MenuTreeVo> list){
|
all.forEach(org->{
|
if(parentId.equals(org.getParentId())){
|
MenuTreeVo menuTreeVo = new MenuTreeVo();
|
menuTreeVo.setId(org.getId().toString());
|
menuTreeVo.setName(org.getName());
|
menuTreeVo.setType(Constants.TYPE_MENU);
|
list.add(menuTreeVo);
|
|
List<MenuTreeVo> child = new ArrayList<>();
|
menuTreeVo.setChild(child);
|
setOrgTree(org.getId(), all, child);
|
}
|
|
});
|
}
|
}
|