一、数据表结构:
CREATE TABLE `unit` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`unit_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '单位名称',
`parent_unit_id` bigint(11) DEFAULT NULL,
`logo_img` varchar(1024) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '公司logo',
`unit_as` varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '公司简称',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`status` tinyint(1) DEFAULT '0' COMMENT '0 : 正常;1:禁止使用',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
递归代码:
/**
*
* 单位id获取单位树形图
*/
public UnitTreeDto unitByUserTree(Long unitId ) {
//根据id获取Unit数据
UnitTreeDto unit = unitDao.selectTreeByUntiId(unitId);
//根据parent_unit_id获取Unit数据
List<UnitTreeDto> ch = unitDao.findUnitByParentId(unitId);
for (UnitTreeDto child : ch) {
UnitTreeDto userTree = unitByUserTree(child.getId()); //递归
unit.getUnitTreeByUser().add(userTree);
}
return unit;
}
UnitTreeDto类:
public class UnitTreeDto {
/**
*
*/
private Long id;
/**
* 单位名称
*/
private String unitName;
/**
*单位父id
*/
private Long parentUnitId;
/**
* 公司logo
*/
private String logoImg;
/**
* 公司简称
*/
private String unitAs;
private List<UnitTreeDto> children;
private List unitTreeByUser = new ArrayList();
省略get、set方法 。。。。
}