78 lines
3.2 KiB
PHP
78 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace app\jobs\store\platformCommission;
|
|
|
|
|
|
use app\common\model\store\platformCommission\Record;
|
|
use app\common\repositories\store\platformCommission\RecordRepository;
|
|
use app\common\repositories\user\UserBillRepository;
|
|
use app\common\repositories\user\UserRepository;
|
|
use crmeb\interfaces\JobInterface;
|
|
use think\facade\Log;
|
|
|
|
/**
|
|
* Common: 推广员佣金结算
|
|
* Author: wu-hui
|
|
* Time: 2023/12/27 16:38
|
|
* Class CommissionMerchantsSettlementJob
|
|
* @package app\jobs\store\platformCommission
|
|
*/
|
|
class CommissionPromoterSettlementJob implements JobInterface{
|
|
|
|
public function fire($job,$data){
|
|
try{
|
|
Log::info('推广员佣金结算 - 开始处理: '.var_export($data,1));
|
|
$list = app()->make(RecordRepository::class)
|
|
->getSearch([])
|
|
->field(['id','uid','mer_id','order_id','commission_promoter_money'])
|
|
->whereIn('order_id',$data['order_ids'])
|
|
->where('commission_promoter_status',0)
|
|
->where('commission_promoter_money','>',0)
|
|
->with([
|
|
'user' => function($query){
|
|
$query->field('uid,nickname,avatar,spread_uid')->bind(['nickname','avatar','spread_uid']);
|
|
},
|
|
])
|
|
->select()
|
|
->toArray();
|
|
if($list){
|
|
$userBillRepository = app()->make(UserBillRepository::class);
|
|
$userRepository = app()->make(UserRepository::class);
|
|
$updateData = [];
|
|
foreach($list as $singleInfo){
|
|
if((int)$singleInfo['spread_uid'] > 0){
|
|
$userBillRepository->incBill($singleInfo['spread_uid'], 'brokerage', 'commission_promoter', [
|
|
'link_id' => $singleInfo['order_id'],
|
|
'status' => 0,
|
|
'title' => '获得推广佣金',
|
|
'number' => $singleInfo['commission_promoter_money'],
|
|
'mark' => $singleInfo['nickname'] . '进行消费,奖励推广佣金' . floatval($singleInfo['commission_promoter_money']),
|
|
'balance' => 0
|
|
]);
|
|
$userRepository->incBrokerage($singleInfo['spread_uid'], $singleInfo['commission_promoter_money']);
|
|
$updateData[] = [
|
|
'id' => $singleInfo['id'],
|
|
'commission_promoter_status' => 1
|
|
];
|
|
}else{
|
|
$updateData[] = [
|
|
'id' => $singleInfo['id'],
|
|
'commission_promoter_status' => 2
|
|
];
|
|
}
|
|
}
|
|
// 修改成功信息
|
|
Record::batchUpdate(array_values($updateData));
|
|
}
|
|
}
|
|
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));
|
|
}
|
|
}
|