jh-admin/addon/commission/job/GiveWeightValueJob.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)');
}
}