find(); // 待结算-结算时处理,已结算-减少用户已获得佣金,2、3-无处理 if($platformCommissionRecord->commission_partner_status == 1){ // 获取:获取当前抽成结算的归属周期 $createTime = strtotime($platformCommissionRecord->create_time); $cycleInfo = PartnerSettlementCycle::where('start_time','<',$createTime) ->where('end_time','>',$createTime) ->find(); if($cycleInfo){ // 计算总退款的合伙人佣金 $reduceCommissionMoney = (float)sprintf("%.2f",$platformCommissionRecord['commission_partner_money'] * $data['refund_rate'] / 100);// 减少数量 // 获取退款的用户列表 $userList = PartnerSettlement::field('id,uid,money,proportion,cycle_id') ->where('cycle_id',$cycleInfo->id) ->select() ->toArray(); $bills = []; foreach($userList as $partnerInfo){ // 计算当前用户应扣除合伙人佣金 $reduce = (float)sprintf("%.2f",$reduceCommissionMoney * $partnerInfo['proportion'] / 100); // 记录账单 $bills[] = [ 'uid' => $partnerInfo['uid'], 'link_id' => $partnerInfo['cycle_id'], 'pm' => 0, 'title' => '订单退款-扣除合伙人佣金', 'category' => 'brokerage', 'type' => 'commission_partner', 'number' => $reduce, 'balance' => 0, 'mark' => '订单退款,扣除合伙人佣金'.floatval($reduce).'元', 'mer_id' => 0, 'status' => 1 ]; } // 记录账单变化信息 if (count($bills) > 0) app()->make(UserBillRepository::class)->insertAll($bills); } } } catch(\Exception $e){ $data['error_msg'] = $e->getMessage(); Log::info('订单退款成功 - 合伙人佣金处理 - 失败: '.var_export($data,1)); } $job->delete(); } public function failed($data){ Log::info('订单退款成功 - 合伙人佣金处理 - 失败(failed): '.var_export($data,1)); } }