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)); } }