Commit 9385895f authored by luhongguang's avatar luhongguang

Merge branch 'colonel' into test

parents b5224e42 0ae7ff6d
...@@ -128,7 +128,7 @@ class ColonelService ...@@ -128,7 +128,7 @@ class ColonelService
foreach ($result['result'] as &$colonelVal) { foreach ($result['result'] as &$colonelVal) {
$userId = $colonelVal['user_id']; $userId = $colonelVal['user_id'];
$colonelVal['user_avatar'] = !empty($userMap[$userId]['user_avatar']) ? $userMap[$userId]['user_avatar'] : ''; $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; $colonelVal['total_income'] = !empty($incomeMap[$userId]['all_reward']) ? $incomeMap[$userId]['all_reward'] : 0;
} }
unset($colonelVal); unset($colonelVal);
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
namespace App\Services\marketing; namespace App\Services\marketing;
use Api\PhpUtils\Http\HttpUtil;
use App\Exception\custom\InterfaceException;
use App\Exception\custom\MarketingException; use App\Exception\custom\MarketingException;
use App\Models\marketing\mysql\ColonelDistributorColonel; use App\Models\marketing\mysql\ColonelDistributorColonel;
use App\Models\marketing\mysql\ColonelDistributorConfig; use App\Models\marketing\mysql\ColonelDistributorConfig;
...@@ -113,6 +115,12 @@ class PindanActivityInviteOrderService ...@@ -113,6 +115,12 @@ class PindanActivityInviteOrderService
} }
$data = []; $data = [];
//未结算收益
$noSettlementStatistics = self::noSettlementStatistics($userIds);
foreach ($noSettlementStatistics as $userId => $item) {
$data[$userId]["no_settlement"] = $item;
}
foreach ($userIds as $userId) { foreach ($userIds as $userId) {
$data[$userId]["all_reward"] = 0; $data[$userId]["all_reward"] = 0;
if (!empty($allData[$userId])) { if (!empty($allData[$userId])) {
...@@ -126,6 +134,8 @@ class PindanActivityInviteOrderService ...@@ -126,6 +134,8 @@ class PindanActivityInviteOrderService
/** /**
* 未结算收益 * 未结算收益
* @param $userIds * @param $userIds
* @return array
* @throws InterfaceException
*/ */
private static function noSettlementStatistics($userIds) private static function noSettlementStatistics($userIds)
{ {
...@@ -134,12 +144,54 @@ class PindanActivityInviteOrderService ...@@ -134,12 +144,54 @@ class PindanActivityInviteOrderService
"create_time[>]" => $timeRange["start_time"], "create_time[>]" => $timeRange["start_time"],
"create_time[<]" => $timeRange["end_time"], "create_time[<]" => $timeRange["end_time"],
], []); ], []);
$inviteOrderNumData = [];
$inviteOrderStatistics = [];
//多个userId, 订单任务累计的未结算收益
if (!empty($inviteOrderNumList)) { if (!empty($inviteOrderNumList)) {
foreach ($inviteOrderNumList as $inviteOrderNum) { 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 ...@@ -187,16 +239,34 @@ class PindanActivityInviteOrderService
]); ]);
} }
$configData = []; $configData = [];
if (empty($config['data'])) { if (!empty($config['data'])) {
$configData = json_decode($config['data'], true); $configData = json_decode($config['data'], true);
} }
return $configData; 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 ...@@ -226,18 +296,32 @@ class PindanActivityInviteOrderService
*/ */
public static function getPayInfoList($params = []) public static function getPayInfoList($params = [])
{ {
$weekDay = date("Y-m-d", strtotime("-7 day"));
$userId = $params["user_id"]; $userId = $params["user_id"];
if (empty($userId)) { if (empty($userId)) {
return []; 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("*", [ $payList = ColonelDistributorPayInfo::select("*", [
"colonel_user_id" => $userId, "colonel_user_id" => $userId,
"date[>=]" => $weekDay, "date[>=]" => $weekDay,
"ORDER" => ["date" => "DESC"] "ORDER" => ["date" => "DESC"]
], []); ], []);
$data = $res = [];
if (!empty($payList)) { if (!empty($payList)) {
foreach ($payList as $item) { foreach ($payList as $item) {
$tempItem = []; $tempItem = [];
...@@ -257,6 +341,7 @@ class PindanActivityInviteOrderService ...@@ -257,6 +341,7 @@ class PindanActivityInviteOrderService
$res[$key]["total"] = $total / 100; $res[$key]["total"] = $total / 100;
$res[$key]["date"] = $key; $res[$key]["date"] = $key;
$res[$key]["status"] = 1;
$res[$key]["data"] = $item; $res[$key]["data"] = $item;
foreach ($item as $k => $v) { foreach ($item as $k => $v) {
$res[$key]["data"][$k]["reward"] = $v["reward"] / 100; $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