<?php

namespace App\Http\Controllers\QuickApp;

use App\Modules\SendOrder\Models\QappSendOrder;
use App\Modules\User\Models\User;
use App\Modules\User\Services\QappUserService;
use App\Modules\User\Services\ReadRecordService;
use Illuminate\Routing\Controller;

/**
 * @property User $user_info 用户基本信息
 * @property int $uid 
 * @property string $phone 手机号
 * @property int $distribution_channel_id 渠道号ID
 * @property int $send_order_id 派单ID
 * @property int $app_pay_merchat_id 微信app支付通道ID
 * @property int $h5_pay_merchat_id 微信h5支付通道ID
 * @property int $ali_pay_merchat_id 支付宝支付通道ID
 */
class BaseController extends Controller
{
    private $field = [];
    protected $account_send_order;

    public function __get($name)
    {

        if (!isset($this->field[$name])) {
            $qapp_user = (new QappUserService)->getGolableUser();
            if ($name == 'user_info') {
                $user = User::find($qapp_user->uid);
                $this->field[$name] = $user;
            }
            if ($name == 'uid') {
                $this->field[$name] = $qapp_user->uid;
            }
            if ($name == 'phone') {
                $this->field[$name] = $qapp_user->phone;
            }
            if ($name == 'distribution_channel_id') {
//                \Log::info('user:'.$qapp_user);
                $this->field[$name] = (isset($qapp_user->user)  && !empty($qapp_user->user))? $qapp_user->user->distribution_channel_id : $qapp_user->distribution_channel_id;
            }
            if ($name == 'send_order_id') {
                //$this->field[$name] = $qapp_user->send_order_id;
                $this->field[$name] = ReadRecordService::getSendOrderId($qapp_user->uid);
            }
            if ($name == 'app_pay_merchat_id') {
                $this->field[$name] = $qapp_user->app_pay_merchat_id;
            }
            if ($name == 'h5_pay_merchat_id') {
                $this->field[$name] = $qapp_user->h5_pay_merchat_id;
            }
            if ($name == 'ali_pay_merchat_id') {
                $this->field[$name] = $qapp_user->ali_pay_merchat_id;
            }
        }
        return  $this->field[$name];
    }

    protected function getNowSendOrderInfo(){
        $send_order_id =   $this->send_order_id;
        if(!$send_order_id){
           return null;
        }
        if(!$this->account_send_order){
            $this->account_send_order = QappSendOrder::getSendOrderById($send_order_id);
        }
        return $this->account_send_order;
    }
}