|
|
|
@ -48,6 +48,7 @@ use think\facade\Queue; |
|
|
|
|
use crmeb\jobs\SendSmsJob; |
|
|
|
|
use crmeb\jobs\OrderPartnerJob; |
|
|
|
|
use app\common\model\store\order\StoreOrder; |
|
|
|
|
use think\helper\Arr; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Class Auth |
|
|
|
@ -776,30 +777,41 @@ class Auth extends BaseController |
|
|
|
|
->select() |
|
|
|
|
->toArray(); |
|
|
|
|
|
|
|
|
|
$spreads = userModel::getDB()->order("uid asc") |
|
|
|
|
$data = userModel::getDB()->order("uid asc") |
|
|
|
|
->field("uid,spread_uid as sid, spread_uid2 as tid") |
|
|
|
|
->where("spread_uid", $userInfo->uid) |
|
|
|
|
->select() |
|
|
|
|
->toArray(); |
|
|
|
|
|
|
|
|
|
$data = []; |
|
|
|
|
$res = []; |
|
|
|
|
foreach ($spreads as $item) { |
|
|
|
|
$res['invites'] = $this->countSpInvites($users, $item['uid']); |
|
|
|
|
$res['referrals'] = $this->countSpReferrals($users, $item['tid']); |
|
|
|
|
array_push($data, $res); |
|
|
|
|
foreach ($data as &$item) { |
|
|
|
|
$item['invites'] = $this->countSpInvites($users, $item['uid']); |
|
|
|
|
$item['referrals'] = $this->countSpReferrals($users, $item['tid'], 'spread_count'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return app("json")->success(['data' => $data]); |
|
|
|
|
|
|
|
|
|
return app("json")->success($data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function fansStatistics() |
|
|
|
|
{ |
|
|
|
|
$userInfo = $this->request->userInfo(); |
|
|
|
|
$data = userModel::getDB()->order("uid desc") |
|
|
|
|
->field("uid,phone,nickname,create_time,community_level,pay_count") |
|
|
|
|
->field("uid,phone,nickname,create_time,community_level,pay_count,spread_uid as sid,spread_uid2 as tid") |
|
|
|
|
->where("spread_uid2", $userInfo->uid) |
|
|
|
|
->select()->toArray(); |
|
|
|
|
->select() |
|
|
|
|
->toArray(); |
|
|
|
|
|
|
|
|
|
$users = userModel::getDB()->order("uid asc") |
|
|
|
|
->field("uid,spread_uid as sid,spread_uid2 as tid,spread_count,spread_pay_price") |
|
|
|
|
->select() |
|
|
|
|
->toArray(); |
|
|
|
|
|
|
|
|
|
$level = Arr::pluck(config('partner.community_level') ?? [], 'level_name', 'id'); |
|
|
|
|
foreach ($data as &$item) { |
|
|
|
|
$item['community_level'] = $level[$item['community_level']] ?? ''; |
|
|
|
|
$item['invites'] = $this->countSpInvites($users, $item['uid']); |
|
|
|
|
$item['referrals'] = $this->countSpReferrals($users, $item['tid'], 'spread_count'); |
|
|
|
|
$item['amount'] = $this->countSpReferrals($users, $item['tid'], 'spread_pay_price'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return app("json")->success($data); |
|
|
|
|
|
|
|
|
@ -824,7 +836,7 @@ class Auth extends BaseController |
|
|
|
|
return $count; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function countSpReferrals($nodes, $parentId, &$visited = []) |
|
|
|
|
public function countSpReferrals($nodes, $parentId, $field, &$visited = []) |
|
|
|
|
{ |
|
|
|
|
if (in_array($parentId, $visited)) { |
|
|
|
|
return 0; |
|
|
|
@ -834,10 +846,10 @@ class Auth extends BaseController |
|
|
|
|
$visited[] = $parentId; // 将当前节点标记为已访问 |
|
|
|
|
|
|
|
|
|
foreach ($nodes as $node) { |
|
|
|
|
if ($node['sid'] == $parentId && $node['spread_count'] > 0) { |
|
|
|
|
$count += $node['spread_count']; |
|
|
|
|
if ($node['sid'] == $parentId && $node[$field] > 0) { |
|
|
|
|
$count += $node[$field]; |
|
|
|
|
|
|
|
|
|
$count += $this->countSpReferrals($nodes, $node['uid'], $visited); |
|
|
|
|
$count += $this->countSpReferrals($nodes, $node['uid'], $field, $visited); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|