<?php

namespace addons\groupon\controller\store;

use addons\groupon\exception\Exception;
use addons\groupon\controller\Base as AddonsBase;
use addons\groupon\model\Store;
use addons\groupon\model\User;
use addons\groupon\model\UserStore;

class Base extends AddonsBase
{
    public function _initialize()
    {
        parent::_initialize();

        // 验证登录用户是否可以访问门店接口
        $this->checkUserStore();
    }


    /**
     * 检测用户管理的是否有门店
     */
    private function checkUserStore() {
        // 获取当前用户的门店
        $user = User::info();
        $store_id = $this->request->param('store_id');

        if (!$store_id) {
            $this->error('请选择自提点');
        }

        $userStore = UserStore::with('store')->where('user_id', $user->id)->where('store_id', $store_id)->find();
        if (!$userStore || !$userStore->store) {
            $this->error('权限不足');
        }

        $store = $userStore->store->toArray();

        if (!$store['status']) {
            $this->error('自提点已被禁用');
        }

        // 存 session 本次请求有效
        session('current_oper_store', $store);
    }
}