$mall['id']], ['source_table' => OrderDetail::tableName()], ['from_type' => AddonsEnum::ADDONS_NAME_CLOUD_STOCK_TWO], ['capital_type' => [UserWalletEnum::PAYMENT_FOR_GOODS_BUY]], ['status' => CapitalLog::STATUS_WAIT_SEND] ]; //货款 $wallet_type = 'commission'; CapitalLog::$capitalType = "{$wallet_type}_frozen"; $commission_list = CapitalLog::lists($params); if (empty($commission_list)) continue; $source_table_id = array_column($commission_list, 'source_table_id'); $order_detail_list = OrderDetail::lists(['where' => [['id' => $source_table_id]], 'select' => 'id,order_id', 'index' => 'id']); $order_ids = array_column($order_detail_list, 'order_id'); $order_list = Order::lists(['where' => [['id' => $order_ids], ['order_status' => OrderStatusEnum::ACCOMPLISH]], 'select' => 'id', 'index' => 'id']); $user_ids = array_column($commission_list,'user_id'); $user_arr = User::lists(['where'=>[['id'=>$user_ids]],'select'=>'id,mobile','index'=>'id']); $obj = new CloudStockTwoAgent(); foreach ($commission_list as $item) { if (empty($order_detail_list[$item['source_table_id']])) continue; $order_id = $order_detail_list[$item['source_table_id']]['order_id']; if (empty($order_list[$order_id])) continue; $res = UserWalletService::unfrozen($item['id'], $wallet_type); if ($res) { $cloud_stock_agent_model = CloudStockTwoAgent::findOne(['user_id' => $item['user_id'], 'status' => StatusEnum::ENABLED]); $cloud_stock_agent_model->frozen_price -= $item['change_num']; if ($cloud_stock_agent_model->frozen_price < 0) $cloud_stock_agent_model->frozen_price = 0; $cloud_stock_agent_model->save(); $obj->sendGoodsMoneyMessage($user_arr,$item); } } } } }