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