jh-admin/addon/commission/job/MerchantsSettlementJob.php

83 lines
3.3 KiB
PHP

<?php
/**
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都SAAS云科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.gobuysaas.com
* =========================================================
*/
namespace addon\commission\job;
use app\model\NewBaseModel;
use think\queue\Job;
class MerchantsSettlementJob{
public function fire(Job $job,$data){
model("commission_record")->startTrans();
try{
// trace($data, '平台抽成 - 支付成功招商员佣金结算 - 开始处理');
$orderId = (int)$data['order_id'];
$where = [
['order_id', '=', $orderId],
['merchants_status', '=', 0],
];
$field = 'a.id,a.site_id,a.store_id,a.order_id,a.merchants_money,s.merchants_member_id,s.store_name';
$join = [
['store s', 's.store_id = a.store_id', 'LEFT'], // 关联客服
];
$list = model('commission_record')->getList($where,$field,'','a',$join);
// 循环处理
$updateData = [];
$insertData = [];
foreach($list as $recordInfo){
// 根据是否存在招商员 进行对应的处理
if((int)$recordInfo['merchants_member_id'] > 0){
// 存在招商员 招商员佣金结算
$insertData[] = [
'site_id' => $recordInfo['site_id'],
'member_id' => $recordInfo['merchants_member_id'],
'join_id' => $recordInfo['id'],
'account_type' => 'merchants',
'account_type_name' => '招商员佣金',
'account_data' => $recordInfo['merchants_money'],
'remark' => $recordInfo['store_name'] . '的订单收入',
];
// 修改信息
$updateData[] =[
'id' => $recordInfo['id'],
'merchants_status' => 1,
];
}
else{
// 不存在招商员
$updateData[] =[
'id' => $recordInfo['id'],
'merchants_status' => 2,
];
}
}
// 数据结果处理
if(count($insertData) > 0) model('commission_account')->addList($insertData);
if(count($updateData) > 0){
$updateModel = (new NewBaseModel(['table_name' => 'commission_record', 'pk' => 'id']));
$updateModel->saveAll($updateData);
}
model("commission_record")->commit();
}
catch(\Exception $e){
model("commission_record")->rollback();
$data['error_msg'] = $e->getMessage();
trace($data, '平台抽成 - 支付成功招商员佣金结算 - 失败');
}
$job->delete();
}
public function failed($data){
trace($data, '平台抽成 - 支付成功招商员佣金结算 - 失败(failed)');
}
}