|
|
@@ -102,9 +102,13 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
}
|
|
|
$orderInfo['send_name'] = $orderInfo['real_name'];
|
|
|
$spread_id = User::where('uid',$orderInfo['uid'])->value('spread_uid');
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['buyerUid'=>$orderInfo['uid'],'spread_id'=>$spread_id,'order_type'=>$orderInfo['order_type']??0,'total_price'=>$orderInfo['total_price']??0])."-paySuccess入口\r\n", 8);
|
|
|
if ($spread_id>0){ //上级分销奖励
|
|
|
// self::spreadReward($spread_id,$orderInfo);
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['call'=>'issueServiceFee','uid'=>$orderInfo['uid'],'spread_id'=>$spread_id])."-paySuccess调用issueServiceFee\r\n", 8);
|
|
|
self::issueServiceFee($orderInfo['uid'],$orderInfo);
|
|
|
+ } else {
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['buyerUid'=>$orderInfo['uid'],'spread_id'=>$spread_id])."-paySuccess无推荐人跳过\r\n", 8);
|
|
|
}
|
|
|
//订单支付成功后置事件
|
|
|
event('OrderPaySuccessListener', [$orderInfo]);
|
|
|
@@ -132,6 +136,7 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
}
|
|
|
}
|
|
|
if ($spread_id>0){ //上级分销奖励
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['spread_id'=>$spread_id,'order_type'=>$orderInfo['order_type']??0])."-paySuccess调用spreadReward\r\n", 8);
|
|
|
self::spreadReward($spread_id,$orderInfo);
|
|
|
// self::issueServiceFee($orderInfo['uid'],$orderInfo);
|
|
|
}
|
|
|
@@ -163,15 +168,26 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
public function spreadReward($spread_uid, $orderInfo){
|
|
|
try {
|
|
|
$uid = $spread_uid;
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['start_spread_uid'=>$spread_uid,'order_type'=>$orderInfo['order_type']??0])."-spreadReward开始\r\n", 8);
|
|
|
while ($uid > 0) {
|
|
|
$levelId = User::where('uid', $uid)->value('agent_level');
|
|
|
$agentLevel = $levelId ? \app\model\agent\AgentLevel::find($levelId) : null;
|
|
|
- if ($agentLevel && ($agentLevel['grade'] ?? 0) >= 2 && $agentLevel['free_issue'] > 0) {
|
|
|
- $orderInfo['order_type'] == 1 && $this->grantUser($agentLevel['free_issue'], $uid);
|
|
|
+ $gradeValue = $agentLevel['grade'] ?? 0;
|
|
|
+ $freeIssue = $agentLevel['free_issue'] ?? 0;
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'levelId'=>$levelId,'grade'=>$gradeValue,'free_issue'=>$freeIssue,'order_type'=>$orderInfo['order_type']??0])."-spreadReward逐级检查\r\n", 8);
|
|
|
+ if ($agentLevel && $gradeValue >= 2 && $freeIssue > 0) {
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'grade'=>$gradeValue,'free_issue'=>$freeIssue])."-spreadReward命中发放优惠券\r\n", 8);
|
|
|
+ $orderInfo['order_type'] == 1 && $this->grantUser($freeIssue, $uid);
|
|
|
break;
|
|
|
}
|
|
|
+ if (!$agentLevel) {
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'levelId'=>$levelId])."-spreadReward无分销等级跳过\r\n", 8);
|
|
|
+ } else {
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'grade'=>$gradeValue,'reason'=>($gradeValue<2?'grade<2':'free_issue<=0')])."-spreadReward不满足条件跳过\r\n", 8);
|
|
|
+ }
|
|
|
$uid = User::where('uid', $uid)->value('spread_uid');
|
|
|
}
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['final_uid'=>$uid])."-spreadReward结束未找到\r\n", 8);
|
|
|
return true;
|
|
|
} catch (\Exception $e) {
|
|
|
@file_put_contents("quanju.txt", json_encode($e->getMessage())."-spreadReward报错内容\r\n", 8);
|
|
|
@@ -199,6 +215,7 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
if ($orderType === 1) {
|
|
|
// 礼包订单:使用系统配置的服务费金额
|
|
|
$serviceAmount = floatval(sys_config('service_gift', 0));
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['orderType'=>1,'service_gift_config'=>sys_config('service_gift'),'serviceAmount'=>$serviceAmount])."-礼包服务费金额\r\n", 8);
|
|
|
} elseif ($orderType == 2) {
|
|
|
// 复购订单:根据订单金额计算服务费(订单金额 ÷ 50)
|
|
|
$orderPrice = isset($orderInfo['total_price']) ? floatval($orderInfo['total_price']) : 0;
|
|
|
@@ -211,6 +228,7 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
}
|
|
|
|
|
|
if ($serviceAmount <= 0) {
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['serviceAmount'=>$serviceAmount,'orderType'=>$orderType])."-issueServiceFee金额为0跳过\r\n", 8);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
@@ -220,6 +238,7 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
if ($orderType === 1) {
|
|
|
// 礼包订单:向上查找第一个V2或以上等级的用户
|
|
|
$spreadUid = $this->findFirstV2User($uid);
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['findFirstV2User结果'=>$spreadUid,'buyerUid'=>$uid])."-issueServiceFee查找V2上级结果\r\n", 8);
|
|
|
} elseif ($orderType == 2) {
|
|
|
// 复购订单:查找该用户之前礼包服务费的接收者
|
|
|
// 1. 在store_order表查找该用户 paid=1 且 order_type=1 且 is_del=0 的订单id
|
|
|
@@ -278,6 +297,7 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
* @return int 找到的上级用户UID,未找到返回0
|
|
|
*/
|
|
|
private function findFirstV2User($uid) {
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['start_uid'=>$uid])."-findFirstV2User开始\r\n", 8);
|
|
|
// 获取分销等级表中grade >= 3的等级ID(V2及以上)
|
|
|
$qualifiedLevels = \app\model\agent\AgentLevel::where('grade', '>=', 3)
|
|
|
->where('is_del', 0)
|
|
|
@@ -311,12 +331,14 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
// 检查上级的分销等级是否在V2及以上
|
|
|
if (in_array($spreadAgentLevelId, $qualifiedLevels)) {
|
|
|
// 找到了,返回该用户UID
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['foundUid'=>$spreadUid,'agent_level'=>$spreadAgentLevelId])."-findFirstV2User找到了\r\n", 8);
|
|
|
return $spreadUid;
|
|
|
}
|
|
|
|
|
|
$currentUid = $spreadUid;
|
|
|
}
|
|
|
|
|
|
+ @file_put_contents("quanju.txt", json_encode(['result'=>0])."-findFirstV2User未找到返回0\r\n", 8);
|
|
|
return 0;
|
|
|
}
|
|
|
|