admin-api/app/jobs/store/platformCommission/refundOrderHandle/HandleCommissionPartnerMone...

85 lines
3.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\jobs\store\platformCommission\refundOrderHandle;
use app\common\model\store\platformCommission\PartnerSettlement;
use app\common\model\store\platformCommission\PartnerSettlementCycle;
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:25
* Class HandleWeightValueJob
* @package app\jobs\store\platformCommission\refundOrderHandle
*/
class HandleCommissionPartnerMoneyJob implements JobInterface{
public function fire($job,$data){
try{
Log::info("订单退款成功 - 合伙人佣金处理 - 开始处理: ".var_export($data,1));
$platformCommissionRecord = Record::where('order_product_id',$data['order_product_id'])->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));
}
}