84 lines
3.3 KiB
PHP
84 lines
3.3 KiB
PHP
<?php
|
|
namespace app\jobs\store\platformCommission\refundOrderHandle;
|
|
|
|
use app\common\model\store\platformCommission\Record;
|
|
use app\common\repositories\user\UserBillRepository;
|
|
use crmeb\interfaces\JobInterface;
|
|
use think\facade\Log;
|
|
|
|
/**
|
|
* Common: 订单退款成功 - 招商员佣金 & 推广员佣金处理
|
|
* Author: wu-hui
|
|
* Time: 2024/01/03 9:26
|
|
* Class HandleCommissionMoneyJob
|
|
* @package app\jobs\store\platformCommission\refundOrderHandle
|
|
*/
|
|
class HandleCommissionMoneyJob implements JobInterface{
|
|
public function fire($job,$data){
|
|
try{
|
|
// Log::info("订单退款成功 - 招商员佣金&推广员佣金处理 - 开始处理: ".var_export($data,1));
|
|
$recordInfo = Record::where('order_product_id',$data['order_product_id'])
|
|
->field(['id','uid','mer_id','order_id','commission_merchants_money','commission_promoter_money'])
|
|
->with([
|
|
'mer' => function($query){
|
|
$query->field('mer_id,spread_uid as mer_spread_uid')->bind(['mer_spread_uid']);
|
|
},
|
|
'user' => function($query){
|
|
$query->field('uid,spread_uid')->bind(['spread_uid']);
|
|
},
|
|
])->find();
|
|
if(!$recordInfo) return false;
|
|
$recordInfo = $recordInfo->toArray();
|
|
$userBillRepository = app()->make(UserBillRepository::class);
|
|
// 处理招商员佣金
|
|
if((int)$recordInfo['mer_spread_uid'] > 0){
|
|
// 获取冻结中佣金信息
|
|
$reduce = (float)sprintf("%.3f",$recordInfo['commission_merchants_money'] * $data['refund_rate'] / 100);// 减少数量
|
|
// 添加减少记录
|
|
$userBillRepository->decBill($recordInfo['mer_spread_uid'], 'brokerage', 'commission_merchants', [
|
|
'link_id' => $recordInfo['order_id'],
|
|
'status' => 1,
|
|
'title' => '减少招商佣金',
|
|
'number' => $reduce,
|
|
'mark' => '订单退款,减少招商佣金' . floatval($reduce),
|
|
'balance' => 0
|
|
]);
|
|
}
|
|
// 处理推广员佣金
|
|
if((int)$recordInfo['spread_uid'] > 0){
|
|
// 获取冻结中佣金信息
|
|
$reduce = (float)sprintf("%.3f",$recordInfo['commission_promoter_money'] * $data['refund_rate'] / 100);// 减少数量
|
|
// 添加减少记录
|
|
$userBillRepository->decBill($recordInfo['spread_uid'], 'brokerage', 'commission_promoter', [
|
|
'link_id' => $recordInfo['order_id'],
|
|
'status' => 1,
|
|
'title' => '减少推广佣金',
|
|
'number' => $reduce,
|
|
'mark' => '订单退款,减少推广佣金' . floatval($reduce),
|
|
'balance' => 0
|
|
]);
|
|
}
|
|
}
|
|
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));
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|