Commit 1b4cf0c4 authored by luhongguang's avatar luhongguang

update: 未结算数据

parent 7deddc45
......@@ -2,6 +2,8 @@
namespace App\Services\marketing;
use Api\PhpUtils\Http\HttpUtil;
use App\Exception\custom\InterfaceException;
use App\Exception\custom\MarketingException;
use App\Models\marketing\mysql\ColonelDistributorColonel;
use App\Models\marketing\mysql\ColonelDistributorConfig;
......@@ -113,6 +115,12 @@ class PindanActivityInviteOrderService
}
$data = [];
//未结算收益
$noSettlementStatistics = self::noSettlementStatistics($userIds);
foreach ($noSettlementStatistics as $userId => $item) {
$data[$userId]["no_settlement"] = $item;
}
foreach ($userIds as $userId) {
$data[$userId]["all_reward"] = 0;
if (!empty($allData[$userId])) {
......@@ -126,6 +134,8 @@ class PindanActivityInviteOrderService
/**
* 未结算收益
* @param $userIds
* @return array
* @throws InterfaceException
*/
private static function noSettlementStatistics($userIds)
{
......@@ -134,12 +144,53 @@ class PindanActivityInviteOrderService
"create_time[>]" => $timeRange["start_time"],
"create_time[<]" => $timeRange["end_time"],
], []);
$inviteOrderNumData = [];
$inviteOrderStatistics = [];
//多个userId, 订单任务累计的未结算收益
if (!empty($inviteOrderNumList)) {
foreach ($inviteOrderNumList as $inviteOrderNum) {
$inviteOrderNumData[$inviteOrderNum["colonel_user_id"]][$inviteOrderNum["date"]] = $inviteOrderNum["num"];
}
if (!empty($inviteOrderNumData)) {
foreach ($inviteOrderNumData as $userId => $itemList) {
foreach ($itemList as $date => $num) {
$configList = self::getColonelConfig($date);
if (!empty($configList)) {
foreach ($configList as $config) {
if ($num >= $config["assess_order_num"]) {
if (empty($inviteOrderStatistics[$userId])) {
$inviteOrderStatistics[$userId] = 0;
}
$inviteOrderStatistics[$userId] += $config['reward_amount'] * 100;
}
}
}
}
}
}
}
//获取新用户奖励
$inviteUserData = [];
$inviteUserStatistics = [];
$inviteUserList = self::getInviteNewUserList($userIds, $timeRange["start_time"], $timeRange["end_time"]);
if (!empty($inviteUserList)) {
foreach ($inviteUserList as $userId => $item) {
$inviteUserData[$item["inviter_user_id"]][] = $userId;
}
foreach ($inviteUserData as $colonelUserId => $item) {
$inviteUserStatistics[$colonelUserId] = count($item) * 3 * 100;
}
}
$statistic = [];
foreach ($userIds as $userId) {
$inviteOrder = empty($inviteOrderStatistics[$userId]) ? 0 : $inviteOrderStatistics[$userId];
$inviteUser = empty($inviteUserStatistics[$userId]) ? 0 : $inviteUserStatistics[$userId];
$statistic[$userId] = $inviteOrder + $inviteUser;
}
return $statistic;
}
......@@ -193,10 +244,28 @@ class PindanActivityInviteOrderService
return $configData;
}
/**
* 获取新用户奖励
* @param $userIds
* @param $startTime
* @param $endTime
* @return array
* @throws InterfaceException
*/
private static function getInviteNewUserList($userIds, $startTime, $endTime): array
{
$url = config('interface', 'coupon.background.wx_invite_relation_list_by_user_ids');
if (empty($url)) {
throw new InterfaceException(['cus' => 0]);
}
$res = HttpUtil::get($url,
['user_ids' => $userIds, 'start_time' => $startTime, 'end_time' => $endTime]);
if (!empty($res['response']['result'])) {
return array_column($res['response']['result'], null, 'user_id');
}
return [];
}
/**
* 团长分销,昨日转化单数,总转化单数
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment