|
|
|
@ -21,10 +21,21 @@ class PromoteRepository {
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的角色创建数
|
|
|
|
|
*/
|
|
|
|
|
public function getCreateRoleCountByIds(array $ids, $params)
|
|
|
|
|
public function getCreateRoleCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
if (count($ids) == 0) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
$isContainSubs = false;
|
|
|
|
|
if (isset($params['isContainSubs']) && $params['isContainSubs']) {
|
|
|
|
|
$isContainSubs = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$map = [];
|
|
|
|
|
$map['id'] = ['in', $ids];
|
|
|
|
|
$map['promote_id'] = ['in', $ids];
|
|
|
|
|
if ($isContainSubs) {
|
|
|
|
|
$map['promote_id'] = ['in', array_merge($ids, array_keys($params['basicPromotes']))];
|
|
|
|
|
}
|
|
|
|
|
if (isset($params['begin_time']) && isset($params['begin_time'])) {
|
|
|
|
|
$map['create_time'] = ['between', [$params['begin_time'], $params['end_time']]];
|
|
|
|
|
}
|
|
|
|
@ -37,12 +48,18 @@ class PromoteRepository {
|
|
|
|
|
if (isset($params['sdk_version'])) {
|
|
|
|
|
$map['sdk_version'] = $params['sdk_version'];
|
|
|
|
|
}
|
|
|
|
|
$items = M('user_play_info', 'tab_')->field(['count(*) count', 'promote_id'])->where($map)->groupBy('promote_id')->select();
|
|
|
|
|
|
|
|
|
|
$items = M('user_play_info', 'tab_')->field(['count(*) count', 'promote_id'])->where($map)->group('promote_id')->select();
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($items as $item) {
|
|
|
|
|
$records[$item['promote_id']] = $item['count'];
|
|
|
|
|
|
|
|
|
|
$promoteId = $item['promote_id'];
|
|
|
|
|
if (isset($params['basicPromotes'][$item['promote_id']])) {
|
|
|
|
|
$promoteId = $params['basicPromotes'][$item['promote_id']];
|
|
|
|
|
}
|
|
|
|
|
if (isset($records[$promoteId])) {
|
|
|
|
|
$records[$promoteId] += $item['count'];
|
|
|
|
|
} else {
|
|
|
|
|
$records[$promoteId] = $item['count'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$records = $this->assembleZero($ids, $records, 0);
|
|
|
|
@ -53,10 +70,20 @@ class PromoteRepository {
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的角色创建的用户数
|
|
|
|
|
*/
|
|
|
|
|
public function getCreateRoleUserCountByIds($ids, $beginTime, $endTime)
|
|
|
|
|
public function getCreateRoleUserCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
if (count($ids) == 0) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
$isContainSubs = false;
|
|
|
|
|
if (isset($params['isContainSubs']) && $params['isContainSubs']) {
|
|
|
|
|
$isContainSubs = true;
|
|
|
|
|
}
|
|
|
|
|
$map = [];
|
|
|
|
|
$map['id'] = ['in', $ids];
|
|
|
|
|
$map['promote_id'] = ['in', $ids];
|
|
|
|
|
if ($isContainSubs) {
|
|
|
|
|
$map['promote_id'] = ['in', array_merge($ids, array_keys($params['basicPromotes']))];
|
|
|
|
|
}
|
|
|
|
|
if (isset($params['begin_time']) && isset($params['begin_time'])) {
|
|
|
|
|
$map['create_time'] = ['between', [$params['begin_time'], $params['end_time']]];
|
|
|
|
|
}
|
|
|
|
@ -69,11 +96,19 @@ class PromoteRepository {
|
|
|
|
|
if (isset($params['sdk_version'])) {
|
|
|
|
|
$map['sdk_version'] = $params['sdk_version'];
|
|
|
|
|
}
|
|
|
|
|
$items = M('user_play_info', 'tab_')->field(['count(distinct user_id) count', 'promote_id'])->where($map)->groupBy('promote_id')->select();
|
|
|
|
|
$items = M('user_play_info', 'tab_')->field(['count(distinct user_id) count', 'promote_id'])->where($map)->group('promote_id')->select();
|
|
|
|
|
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($items as $item) {
|
|
|
|
|
$records[$item['promote_id']] = $item['count'];
|
|
|
|
|
$promoteId = $item['promote_id'];
|
|
|
|
|
if (isset($params['basicPromotes'][$item['promote_id']])) {
|
|
|
|
|
$promoteId = $params['basicPromotes'][$item['promote_id']];
|
|
|
|
|
}
|
|
|
|
|
if (isset($records[$promoteId])) {
|
|
|
|
|
$records[$promoteId] += $item['count'];
|
|
|
|
|
} else {
|
|
|
|
|
$records[$promoteId] = $item['count'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$records = $this->assembleZero($ids, $records, 0);
|
|
|
|
@ -82,25 +117,49 @@ class PromoteRepository {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* 获取指定推广员底下的新创角设备数
|
|
|
|
|
*/
|
|
|
|
|
public function getCreateRoleDeviceCountByIds($ids, $beginTime, $endTime)
|
|
|
|
|
public function getNewCreateRoleDeviceCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
$records = $this->assembleZero($ids, [], 0);
|
|
|
|
|
return $records;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getCreateRoleIpCountByIds($ids, $beginTime, $endTime)
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的新创角IP数
|
|
|
|
|
*/
|
|
|
|
|
public function getNewCreateRoleIpCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
$records = $this->assembleZero($ids, [], 0);
|
|
|
|
|
return $records;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的新创角用户数
|
|
|
|
|
*/
|
|
|
|
|
public function getNewCreateRoleUserCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
$records = $this->assembleZero($ids, [], 0);
|
|
|
|
|
return $records;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的登录用户数
|
|
|
|
|
*/
|
|
|
|
|
public function getLoginUserCountByIds($ids, $beginTime, $endTime)
|
|
|
|
|
public function getLoginUserCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
if (count($ids) == 0) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
$isContainSubs = false;
|
|
|
|
|
if (isset($params['isContainSubs']) && $params['isContainSubs']) {
|
|
|
|
|
$isContainSubs = true;
|
|
|
|
|
}
|
|
|
|
|
$map = [];
|
|
|
|
|
$map['id'] = ['in', $ids];
|
|
|
|
|
$map['promote_id'] = ['in', $ids];
|
|
|
|
|
if ($isContainSubs) {
|
|
|
|
|
$map['promote_id'] = ['in', array_merge($ids, array_keys($params['basicPromotes']))];
|
|
|
|
|
}
|
|
|
|
|
if (isset($params['begin_time']) && isset($params['begin_time'])) {
|
|
|
|
|
$map['login_time'] = ['between', [$params['begin_time'], $params['end_time']]];
|
|
|
|
|
}
|
|
|
|
@ -113,11 +172,19 @@ class PromoteRepository {
|
|
|
|
|
if (isset($params['sdk_version'])) {
|
|
|
|
|
$map['sdk_version'] = $params['sdk_version'];
|
|
|
|
|
}
|
|
|
|
|
$items = M('user', 'tab_')->field(['count(*) count', 'promote_id'])->where($map)->groupBy('promote_id')->select();
|
|
|
|
|
$items = M('user', 'tab_')->field(['count(*) count', 'promote_id'])->where($map)->group('promote_id')->select();
|
|
|
|
|
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($items as $item) {
|
|
|
|
|
$records[$item['promote_id']] = $item['count'];
|
|
|
|
|
$promoteId = $item['promote_id'];
|
|
|
|
|
if (isset($params['basicPromotes'][$item['promote_id']])) {
|
|
|
|
|
$promoteId = $params['basicPromotes'][$item['promote_id']];
|
|
|
|
|
}
|
|
|
|
|
if (isset($records[$promoteId])) {
|
|
|
|
|
$records[$promoteId] += $item['count'];
|
|
|
|
|
} else {
|
|
|
|
|
$records[$promoteId] = $item['count'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$records = $this->assembleZero($ids, $records, 0);
|
|
|
|
@ -128,9 +195,19 @@ class PromoteRepository {
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的充值次数
|
|
|
|
|
*/
|
|
|
|
|
public function getRechargeCountByIds($ids, $beginTime, $endTime)
|
|
|
|
|
public function getRechargeCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
$map = ['pay_status' => 1, 'id' => ['in', $ids]];
|
|
|
|
|
if (count($ids) == 0) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
$isContainSubs = false;
|
|
|
|
|
if (isset($params['isContainSubs']) && $params['isContainSubs']) {
|
|
|
|
|
$isContainSubs = true;
|
|
|
|
|
}
|
|
|
|
|
$map = ['pay_status' => 1, 'promote_id' => ['in', $ids]];
|
|
|
|
|
if ($isContainSubs) {
|
|
|
|
|
$map['promote_id'] = ['in', array_merge($ids, array_keys($params['basicPromotes']))];
|
|
|
|
|
}
|
|
|
|
|
if (isset($params['begin_time']) && isset($params['begin_time'])) {
|
|
|
|
|
$map['pay_time'] = ['between', [$params['begin_time'], $params['end_time']]];
|
|
|
|
|
}
|
|
|
|
@ -144,11 +221,19 @@ class PromoteRepository {
|
|
|
|
|
$map['sdk_version'] = $params['sdk_version'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$items = M('spend', 'tab_')->field(['count(*) count', 'promote_id'])->where($map)->groupBy('promote_id')->select();
|
|
|
|
|
$items = M('spend', 'tab_')->field(['count(*) count', 'promote_id'])->where($map)->group('promote_id')->select();
|
|
|
|
|
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($items as $item) {
|
|
|
|
|
$records[$item['promote_id']] = $item['count'];
|
|
|
|
|
$promoteId = $item['promote_id'];
|
|
|
|
|
if (isset($params['basicPromotes'][$item['promote_id']])) {
|
|
|
|
|
$promoteId = $params['basicPromotes'][$item['promote_id']];
|
|
|
|
|
}
|
|
|
|
|
if (isset($records[$promoteId])) {
|
|
|
|
|
$records[$promoteId] += $item['count'];
|
|
|
|
|
} else {
|
|
|
|
|
$records[$promoteId] = $item['count'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$records = $this->assembleZero($ids, $records, 0);
|
|
|
|
@ -159,9 +244,19 @@ class PromoteRepository {
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的充值用户数
|
|
|
|
|
*/
|
|
|
|
|
public function getRechargeUserCountByIds($ids, $beginTime, $endTime)
|
|
|
|
|
public function getRechargeUserCountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
$map = ['pay_status' => 1, 'id' => ['in', $ids]];
|
|
|
|
|
if (count($ids) == 0) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
$isContainSubs = false;
|
|
|
|
|
if (isset($params['isContainSubs']) && $params['isContainSubs']) {
|
|
|
|
|
$isContainSubs = true;
|
|
|
|
|
}
|
|
|
|
|
$map = ['pay_status' => 1, 'promote_id' => ['in', $ids]];
|
|
|
|
|
if ($isContainSubs) {
|
|
|
|
|
$map['promote_id'] = ['in', array_merge($ids, array_keys($params['basicPromotes']))];
|
|
|
|
|
}
|
|
|
|
|
if (isset($params['begin_time']) && isset($params['begin_time'])) {
|
|
|
|
|
$map['pay_time'] = ['between', [$params['begin_time'], $params['end_time']]];
|
|
|
|
|
}
|
|
|
|
@ -174,11 +269,19 @@ class PromoteRepository {
|
|
|
|
|
if (isset($params['sdk_version'])) {
|
|
|
|
|
$map['sdk_version'] = $params['sdk_version'];
|
|
|
|
|
}
|
|
|
|
|
$items = M('spend', 'tab_')->field(['count(distinct user_id) count', 'promote_id'])->where($map)->groupBy('promote_id')->select();
|
|
|
|
|
$items = M('spend', 'tab_')->field(['count(distinct user_id) count', 'promote_id'])->where($map)->group('promote_id')->select();
|
|
|
|
|
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($items as $item) {
|
|
|
|
|
$records[$item['promote_id']] = $item['count'];
|
|
|
|
|
$promoteId = $item['promote_id'];
|
|
|
|
|
if (isset($params['basicPromotes'][$item['promote_id']])) {
|
|
|
|
|
$promoteId = $params['basicPromotes'][$item['promote_id']];
|
|
|
|
|
}
|
|
|
|
|
if (isset($records[$promoteId])) {
|
|
|
|
|
$records[$promoteId] += $item['count'];
|
|
|
|
|
} else {
|
|
|
|
|
$records[$promoteId] = $item['count'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$records = $this->assembleZero($ids, $records, 0);
|
|
|
|
@ -186,9 +289,22 @@ class PromoteRepository {
|
|
|
|
|
return $records;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getRechargeAmountByIds($ids, $beginTime, $endTime)
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定推广员底下的充值金额(分类型)
|
|
|
|
|
*/
|
|
|
|
|
public function getRechargeAmountByIds(array $ids, array $params = [])
|
|
|
|
|
{
|
|
|
|
|
$map = ['pay_status' => 1, 'id' => ['in', $ids]];
|
|
|
|
|
if (count($ids) == 0) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
$isContainSubs = false;
|
|
|
|
|
if (isset($params['isContainSubs']) && $params['isContainSubs']) {
|
|
|
|
|
$isContainSubs = true;
|
|
|
|
|
}
|
|
|
|
|
$map = ['pay_status' => 1, 'promote_id' => ['in', $ids]];
|
|
|
|
|
if ($isContainSubs) {
|
|
|
|
|
$map['promote_id'] = ['in', array_merge($ids, array_keys($params['basicPromotes']))];
|
|
|
|
|
}
|
|
|
|
|
if (isset($params['begin_time']) && isset($params['begin_time'])) {
|
|
|
|
|
$map['pay_time'] = ['between', [$params['begin_time'], $params['end_time']]];
|
|
|
|
|
}
|
|
|
|
@ -201,21 +317,39 @@ class PromoteRepository {
|
|
|
|
|
if (isset($params['sdk_version'])) {
|
|
|
|
|
$map['sdk_version'] = $params['sdk_version'];
|
|
|
|
|
}
|
|
|
|
|
$items = M('spend', 'tab_')->field(['sum(pay_amount) amount', 'promote_id', 'pay_way'])->where($map)->groupBy('promote_id, pay_way')->select();
|
|
|
|
|
$items = M('spend', 'tab_')->field(['sum(pay_amount) amount', 'promote_id', 'pay_way'])->where($map)->group('promote_id, pay_way')->select();
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($items as $item) {
|
|
|
|
|
if (isset($records[$item['promote_id']])) {
|
|
|
|
|
if ($item['pay_way'] == -1) {
|
|
|
|
|
$records[$item['promote_id']]['ban_coin'] = $item['amount'];
|
|
|
|
|
} elseif ($item['pay_way'] == 0) {
|
|
|
|
|
$records[$item['promote_id']]['coin'] = $item['amount'];
|
|
|
|
|
if ($item['pay_way'] == -1) {
|
|
|
|
|
$records[$item['promote_id']]['ban_coin'] = $item['amount'];
|
|
|
|
|
} elseif ($item['pay_way'] == 0) {
|
|
|
|
|
$records[$item['promote_id']]['coin'] = $item['amount'];
|
|
|
|
|
} else {
|
|
|
|
|
if (isset($records[$item['promote_id']])) {
|
|
|
|
|
$records[$item['promote_id']]['cash'] = isset($records[$item['promote_id']]['cash']) ?
|
|
|
|
|
$records[$item['promote_id']]['cash'] + $item['amount'] :
|
|
|
|
|
$item['amount'];
|
|
|
|
|
} else {
|
|
|
|
|
$records[$item['promote_id']]['cash'] = isset$item['amount'];
|
|
|
|
|
$records[$item['promote_id']]['cash'] = $item['amount'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
foreach ($ids as $id) {
|
|
|
|
|
if (isset($records[$id])) {
|
|
|
|
|
$records[$id] = [
|
|
|
|
|
'ban_coin' => isset($records[$id]['ban_coin']) ? $records[$id]['ban_coin'] : 0,
|
|
|
|
|
'coin' => isset($records[$id]['coin']) ? $records[$id]['coin'] : 0,
|
|
|
|
|
'cash' => isset($records[$id]['cash']) ? $records[$id]['cash'] : 0,
|
|
|
|
|
];
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
$records[$id] = [
|
|
|
|
|
'ban_coin' => 0,
|
|
|
|
|
'coin' => 0,
|
|
|
|
|
'cash' => 0,
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
$records[$item['promote_id']] = $item['count'];
|
|
|
|
|
}
|
|
|
|
|
return $records;
|
|
|
|
|
}
|
|
|
|
|
}
|