|
@@ -284,28 +284,38 @@ class OrderService
|
|
|
{
|
|
|
$referralType = sysConfig('referral_type');
|
|
|
|
|
|
- if ($referralType && $user->inviter_id) {// 是否需要支付佣金
|
|
|
+ if ($referralType && $user->inviter_id) {
|
|
|
$inviter = $user->inviter;
|
|
|
- // 获取历史返利记录
|
|
|
$referral = ReferralLog::whereInviteeId(self::$order->user_id)->doesntExist();
|
|
|
- // 无记录 / 首次返利
|
|
|
- if ($referral && sysConfig('is_invite_register')) {
|
|
|
- // 邀请注册功能开启时,返还邀请者邀请名额
|
|
|
- $inviter->update(['invite_num' => $inviter->invite_num + 1]);
|
|
|
- }
|
|
|
- // 按照返利模式进行返利判断
|
|
|
- if ($referralType == 2 || $referral) {
|
|
|
- $this->addReferralLog(
|
|
|
- $user->id,
|
|
|
- $inviter->id,
|
|
|
- self::$order->id,
|
|
|
- self::$order->amount,
|
|
|
- self::$order->amount * sysConfig('referral_percent')
|
|
|
- );
|
|
|
+
|
|
|
+ DB::beginTransaction();
|
|
|
+ try {
|
|
|
+ if ($referral && sysConfig('is_invite_register')) {
|
|
|
+ $inviter->update(['invite_num' => $inviter->invite_num + 1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($referralType == 2 || $referral) {
|
|
|
+ $this->addReferralLog(
|
|
|
+ $user->id,
|
|
|
+ $inviter->id,
|
|
|
+ self::$order->id,
|
|
|
+ self::$order->amount,
|
|
|
+ self::$order->amount * sysConfig('referral_percent')
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ Log::error("Failed to set commission expense", [
|
|
|
+ 'exception' => $e->getMessage(),
|
|
|
+ 'userid' => $user->id,
|
|
|
+ 'orderId' => self::$order->id
|
|
|
+ ]);
|
|
|
+ return false;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|