78 lines
3.4 KiB
PHP
78 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace app\jobs\store\platformCommission;
|
|
|
|
|
|
use app\common\model\store\order\StoreOrder;
|
|
use app\common\model\store\order\StoreOrderProduct;
|
|
use app\common\model\store\platformCommission\WeightValue;
|
|
use app\common\model\store\platformCommission\WeightValueLog;
|
|
use app\common\repositories\store\platformCommission\WeightValueRepository;
|
|
use crmeb\interfaces\JobInterface;
|
|
use think\facade\Log;
|
|
|
|
/**
|
|
* Common: 下单赠送权重值
|
|
* Author: wu-hui
|
|
* Time: 2023/12/27 10:30
|
|
* Class GiveWeightValueJob
|
|
* @package app\jobs\store\platformCommission
|
|
*/
|
|
class GiveWeightValueJob implements JobInterface{
|
|
|
|
public function fire($job,$data){
|
|
try{
|
|
Log::info('下单赠送权重值 - 开始处理: '.var_export($data,1));
|
|
// 获取所有用户的持有信息
|
|
$userList = app()->make(WeightValueRepository::class)->getUserHoldList($data['uid']);
|
|
$orderIds = StoreOrder::where('group_order_id',$data['group_order_id'])->column('order_id');// 获取订单id
|
|
$productList = StoreOrderProduct::whereIn('order_id',$orderIds)
|
|
->field('order_product_id,order_id,product_id,(product_price + use_legumes_integral) as product_price')
|
|
->select()
|
|
->toArray();// 获取当前订单中所有商品
|
|
$updateData = [];
|
|
$insertLogData = [];
|
|
foreach($userList as $userInfo){
|
|
foreach($productList as $productInfo){
|
|
// 判断:当前用户是否存在修改记录中 不存在添加修改信息
|
|
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)$productInfo['product_price'] + $changeFront;
|
|
// 记录变更记录
|
|
$insertLogData[] = [
|
|
'uid' => $userInfo['uid'],
|
|
'brokerage_level' => $userInfo['brokerage_level'],
|
|
'product_id' => $productInfo['product_id'],
|
|
'order_id' => $productInfo['order_id'],
|
|
'order_product_id' => $productInfo['order_product_id'],
|
|
'change_type' => 1,
|
|
'change_quantity' => $productInfo['product_price'],
|
|
'change_front' => $changeFront,
|
|
'change_after' => (float)$updateData[$userInfo['id']]['quantity'],
|
|
'remark' => '下线购买商品赠送',
|
|
];
|
|
}
|
|
}
|
|
// 数据结果处理
|
|
if(count($insertLogData) > 0){
|
|
WeightValue::batchUpdate(array_values($updateData));
|
|
WeightValueLog::insertAll($insertLogData);
|
|
}
|
|
}
|
|
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));
|
|
}
|
|
}
|