Commit 9385895f authored by luhongguang's avatar luhongguang

Merge branch 'colonel' into test

parents b5224e42 0ae7ff6d
......@@ -128,7 +128,7 @@ class ColonelService
foreach ($result['result'] as &$colonelVal) {
$userId = $colonelVal['user_id'];
$colonelVal['user_avatar'] = !empty($userMap[$userId]['user_avatar']) ? $userMap[$userId]['user_avatar'] : '';
$colonelVal['yesterday_income'] = !empty($incomeMap[$userId]['yesterday_reward']) ? $incomeMap[$userId]['yesterday_reward'] : 0;
$colonelVal['no_settlement_income'] = !empty($incomeMap[$userId]['no_settlement']) ? $incomeMap[$userId]['no_settlement'] : 0;
$colonelVal['total_income'] = !empty($incomeMap[$userId]['all_reward']) ? $incomeMap[$userId]['all_reward'] : 0;
}
unset($colonelVal);
......
......@@ -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,54 @@ 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] = sprintf("%.1f", ($inviteOrder + $inviteUser) / 100);;
}
return $statistic;
}
......@@ -187,16 +239,34 @@ class PindanActivityInviteOrderService
]);
}
$configData = [];
if (empty($config['data'])) {
if (!empty($config['data'])) {
$configData = json_decode($config['data'], true);
}
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 [];
}
/**
* 团长分销,昨日转化单数,总转化单数
......@@ -226,18 +296,32 @@ class PindanActivityInviteOrderService
*/
public static function getPayInfoList($params = [])
{
$weekDay = date("Y-m-d", strtotime("-7 day"));
$userId = $params["user_id"];
if (empty($userId)) {
return [];
}
$data = $res = [];
$nowHour = date("H");
if ($nowHour < 12) {
$todayNum = 3;
} else {
$todayNum = 2;
}
for ($i = 0; $i < $todayNum; $i++) {
$date = date("Y-m-d", strtotime("-$i day"));
$res[$date]["total"] = 0;
$res[$date]["date"] = $date;
$res[$date]["status"] = 2;
$res[$date]["data"] = [];
}
$weekDay = date("Y-m-d", strtotime("-7 day"));
$payList = ColonelDistributorPayInfo::select("*", [
"colonel_user_id" => $userId,
"date[>=]" => $weekDay,
"ORDER" => ["date" => "DESC"]
], []);
$data = $res = [];
if (!empty($payList)) {
foreach ($payList as $item) {
$tempItem = [];
......@@ -257,6 +341,7 @@ class PindanActivityInviteOrderService
$res[$key]["total"] = $total / 100;
$res[$key]["date"] = $key;
$res[$key]["status"] = 1;
$res[$key]["data"] = $item;
foreach ($item as $k => $v) {
$res[$key]["data"][$k]["reward"] = $v["reward"] / 100;
......
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