75 lines
3.4 KiB
PHP
75 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
|
|
* =========================================================
|
|
* Copy right 2019-2029 成都SAAS云科技有限公司, 保留所有权利。
|
|
* ----------------------------------------------
|
|
* 官方网址: https://www.gobuysaas.com
|
|
* =========================================================
|
|
*/
|
|
namespace addon\commission\job;
|
|
|
|
|
|
use addon\commission\model\WeightValue;
|
|
use app\model\NewBaseModel;
|
|
use think\queue\Job;
|
|
|
|
class GiveWeightValueJob{
|
|
|
|
public function fire(Job $job,$data){
|
|
try{
|
|
// trace($data, '下单赠送权重值 - 开始处理');
|
|
// 获取当前用户 所有有效上级的 权重值持有信息
|
|
$userHoldList = (new WeightValue())->getUserHoldList((int)$data['member_id'], (int)$data['site_id']);
|
|
// 获取当前订单中所有商品
|
|
$orderGoodsField = 'order_goods_id,order_id,goods_id,(real_goods_money + legumes_integral_use) as use_money';
|
|
$orderGoodsList = model('order_goods')->getList([['order_id','=', $data['order_id']]], $orderGoodsField);
|
|
$updateData = [];
|
|
$insertLogData = [];
|
|
foreach($userHoldList as $userInfo){
|
|
foreach($orderGoodsList as $goodsInfo){
|
|
// 判断:当前用户是否存在修改记录中 不存在添加修改信息
|
|
if(empty($updateData[$userInfo['id']])){
|
|
$updateData[$userInfo['id']] = [
|
|
'id' => $userInfo['id'],
|
|
'quantity' => $userInfo['quantity'],
|
|
];
|
|
}
|
|
// 持有数量增加
|
|
$changeFront = (float)$updateData[$userInfo['id']]['quantity'];
|
|
$updateData[$userInfo['id']]['quantity'] = (float)sprintf("%.2f",(float)$goodsInfo['use_money'] + $changeFront);
|
|
// 记录变更记录
|
|
$insertLogData[] = [
|
|
'site_id' => (int)$data['site_id'],
|
|
'member_id' => $userInfo['member_id'],
|
|
'level_id' => $userInfo['level_id'],
|
|
'goods_id' => $goodsInfo['goods_id'],
|
|
'order_id' => $goodsInfo['order_id'],
|
|
'order_goods_id' => $goodsInfo['order_goods_id'],
|
|
'change_type' => 1,
|
|
'change_quantity' => $goodsInfo['use_money'],
|
|
'change_front' => $changeFront,
|
|
'change_after' => (float)$updateData[$userInfo['id']]['quantity'],
|
|
'remark' => '下线购买商品赠送',
|
|
];
|
|
}
|
|
}
|
|
// 数据结果处理
|
|
if(count($insertLogData) > 0){
|
|
// 修改
|
|
$updateModel = (new NewBaseModel(['table_name' => 'commission_weight_value', 'pk' => 'id']));
|
|
$updateModel->saveAll($updateData);
|
|
model('commission_weight_value_log')->addList($insertLogData);
|
|
}
|
|
}
|
|
catch(\Exception $e){
|
|
$data['error_msg'] = $e->getMessage();
|
|
trace($data, '下单赠送权重值 - 失败');
|
|
}
|
|
$job->delete();
|
|
}
|
|
public function failed($data){
|
|
trace($data, '下单赠送权重值 - 失败(failed)');
|
|
}
|
|
}
|