基于yii2框架:
controller:
public function actionDigui()
{
$uid = $this->current_user['uid'];
$userid = '';
$dataWxUsers = WxUsers::getWxusersByuid($uid);
if (!empty($dataWxUsers)) {
$userid = $dataWxUsers['userid'];
}
$mydata = self::getWeiXininfo($userid);
$data = WxUserRelation::getMySub($userid);
$list = [
'name' => isset($mydata['nickname']) ? $mydata['nickname'] : '',
'title' => '下级列表',
'relationship' => ['children_num'=>count($data)],
'children'=>$data
];
print_r($list);
die;
}
WxUserRelation这个model中添加2个方法:
public static function getMySub($userid)
{
$mysub = self::getSubordinate($userid);
if (!empty($mysub)) {
foreach ($mysub as $key => $value) {
$mysub[$key]['children'] = self::getMySub($value['userid']);
}
return $mysub;
}
}
/**
* 获取我的下级
* @param $userid
* @return array|\yii\db\ActiveRecord[]
*/
public static function getSubordinate($userid)
{
if (empty($userid)) {
return [];
}
$data = self::find()->select('userid')->where(['parentuserid' => $userid])->asArray()->all();
$number = self::find()->select('userid')->where(['parentuserid' => $userid])->count();
if (!empty($data)) {
foreach ($data as $key => $value) {
$weixininfo = self::getWeiXininfo($value['userid']);
$data[$key]['title'] = !isset($value['userid']) ? '' : $value['userid'];
$data[$key]['name'] = isset($weixininfo['nickname']) ? $weixininfo['nickname'] : '';
$data[$key]['relationship'] = [
'children_num' => $number,
'parent_num' => 1,
'sibling_num' => 1
];
}
}
return empty($data) ? [] : $data;
}
http://www.htmleaf.com/jQuery/Chart/201602233135.html