添加:获取指定用户的团队概况
This commit is contained in:
parent
94cbebc1b8
commit
405600a047
|
|
@ -3318,4 +3318,23 @@ class MemberController extends ApiController
|
|||
return $this->successJson('小程序码', ['qr_code_url' => $qrCodeUrl]);
|
||||
}
|
||||
|
||||
// 会员概况及关系
|
||||
public function myRelationShip(){
|
||||
// 参数获取
|
||||
$uid = (int)request()->input('uid', 0);
|
||||
if($uid <= 0) return $this->errorJson('无有效用户!');
|
||||
$memberReferral = new MemberReferralService();
|
||||
// 获取当前用户基本信息
|
||||
$self_info = $memberReferral->getAgentData($uid);
|
||||
$children = $memberReferral->getAgentData($self_info['member_children_ids']);
|
||||
|
||||
return $this->successJson('success', compact('self_info','children'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -375,4 +375,97 @@ class MemberReferralService
|
|||
}
|
||||
}
|
||||
|
||||
// 获取指定的团队信息
|
||||
public function getAgentData($uid){
|
||||
$orderStatus = Setting::get('shop.relation_base.member_order_status') == 1 ? [1, 2, 3] : [3];
|
||||
$model = MemberModel::select(['mobile','createtime','avatar','nickname','uid','realname'])
|
||||
->when(is_array($uid),function($query) use ($uid){
|
||||
$query->whereIn('uid',$uid);
|
||||
},function($query) use ($uid){
|
||||
$query->where('uid',$uid);
|
||||
})
|
||||
->with([
|
||||
'yzMember' => function($builder){
|
||||
$builder->select(['member_id','is_agent','status','wechat','deleted_at','inviter','yz_openid']);
|
||||
},
|
||||
'orders' => function($order) use ($orderStatus){
|
||||
$order->select(['id','uid','price','status','order_sn'])
|
||||
->whereIn('status',$orderStatus)
|
||||
->with(['hasManyOrderGoods'=>function($orderGoods){
|
||||
$orderGoods->select(['id','goods_id','order_id','total','title','thumb','price']);
|
||||
}]);
|
||||
},
|
||||
'memberChildren' => function($member) use ($orderStatus){
|
||||
$member->select(['id','child_id','level','member_id'])
|
||||
->where('level',1)
|
||||
->with([
|
||||
'orders' => function($order) use ($orderStatus){
|
||||
$order->select(['id','uid','price','status'])
|
||||
->whereIn('status',$orderStatus);
|
||||
}
|
||||
]);
|
||||
}
|
||||
])
|
||||
->orderBy('uid','desc');
|
||||
// 根据查询类型 进行对应的处理
|
||||
if(is_array($uid)){
|
||||
// 多个
|
||||
$list = $model->get()->toArray();
|
||||
foreach($list as &$itemInfo){
|
||||
// 当前用户信息
|
||||
$itemInfo['child_order_total'] = collect($itemInfo['orders'])->count();// 订单数
|
||||
$itemInfo['team_total'] = collect($itemInfo['member_children'])->count();// 直推下级总数
|
||||
$itemInfo['child_order_money'] = round(collect($itemInfo['orders'])->sum('price'),2);// 订单总额
|
||||
// 客户订单总额
|
||||
$itemInfo['team_order_money'] = round(collect($itemInfo['member_children'])->sum(function($memberChildren){
|
||||
return collect($memberChildren['orders'])->sum('price');
|
||||
}),2);
|
||||
|
||||
$itemInfo['createtime'] = date('Y-m-d H:i:s', $itemInfo['createtime']);
|
||||
unset($itemInfo['member_children']);
|
||||
unset($itemInfo['yz_member']);
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
else{
|
||||
// 单个
|
||||
$info = $model->first();
|
||||
$info = $info ? $info->toArray() : [];
|
||||
// 当前用户信息
|
||||
$info['child_order_total'] = collect($info['orders'])->count();// 订单数
|
||||
$info['team_total'] = collect($info['member_children'])->count();// 直推下级总数
|
||||
$info['child_order_money'] = round(collect($info['orders'])->sum('price'),2);// 订单总额
|
||||
// 客户订单总额
|
||||
$info['team_order_money'] = round(collect($info['member_children'])->sum(function($memberChildren){
|
||||
return collect($memberChildren['orders'])->sum('price');
|
||||
}),2);
|
||||
$info['member_children_ids'] = $info['member_children'] ? array_column($info['member_children'], 'child_id') : [];// 直推下级ids
|
||||
unset($info['member_children']);
|
||||
unset($info['yz_member']);
|
||||
// 订单处理
|
||||
$info['orders'] = array_map(function($orderItem){
|
||||
$orderItem['has_many_order_goods'] = array_map(function($orderGoods){
|
||||
unset($orderGoods['buttons']);
|
||||
unset($orderGoods['after_sales']);
|
||||
unset($orderGoods['order']);
|
||||
|
||||
return $orderGoods;
|
||||
}, $orderItem['has_many_order_goods']);
|
||||
|
||||
return $orderItem;
|
||||
},$info['orders']);
|
||||
|
||||
|
||||
return $info;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue