<?php
/**
 * Created by PhpStorm.
 * User: ZCY
 * Date: 2018/10/11
 * Time: 16:55
 */

namespace backend\controllers;

use backend\models\coin\CoinApplicationCategoryForm;
use common\models\psources\CoinApplicationCategory;
use common\models\psources\CoinBanner;
use Yii;


class ApplicationCategoryController extends BaseController
{
    public function actionIndex()
    {
        if (Yii::$app->request->isAjax) {
            Yii::$app->response->format = 'json';
            $request = Yii::$app->request;
            $page    = $request->get('page', 1);
            $limit   = $request->get('limit', 10);
            $name    = $request->get('category_name', '');
            $where = [];
            if($name){
                $where[] = ['name' => $name];
            }
            $data    = CoinApplicationCategory::getList($page, $limit, $where);
            return $data;
        }
        return $this->render('index');
    }

    /**
     * 添加一个application category
     */
    public function actionAddAndEdit()
    {
        if (Yii::$app->request->isPost) {
            Yii::$app->response->format = 'json';
            $fields = ['id','name','sort','icon','banner','banner_url'];
            $params = $this->initParams(Yii::$app->request->post(), $fields);
            $application_category = new CoinApplicationCategoryForm();
            if($params['id']){   //edit
                $application_category->setScenario(CoinApplicationCategoryForm::SCENARIO_EDIT);
                $application_category->load($params,'');
                return $application_category->edit();
            }else{
                $application_category->setScenario(CoinApplicationCategoryForm::SCENARIO_ADD);
                $application_category->load($params,'');
                return $application_category->add();

            }
        }
    }

    /**
     * @return array
     * @throws \Throwable
     * @throws \yii\db\StaleObjectException
     */
    public function actionDelete()
    {
        Yii::$app->response->format = 'json';

        $id = Yii::$app->request->get('id');
        if ($id) {
            $application_category = new CoinApplicationCategoryForm();
            return $application_category->del($id);
        }
        return ['code' => 1, 'msg' => 'failed'];
    }

    public function actionSetSort()
    {
        if (Yii::$app->request->isAjax) {
            Yii::$app->response->format = 'json';
            $request = Yii::$app->request;
            $id    = $request->get('id', '');
            $sort  = $request->get('sort',1);
            if($id){
                $category = CoinApplicationCategory::getCategoryById($id);
                if(!$category){
                    return ['code' => 1,'msg' =>'分类不存在,不能设置排序'];
                }
                $category->sort=$sort;
                $category->save();
                return ['code' => 0,'msg' => '分类排序设置成功'];
            }else{
                return ['code' => 1 ,'msg' => '分类排序设置失败'];
            }
        }
    }

    public function actionBannerIndex()
    {
        if(Yii::$app->request->isAjax){
            $id = Yii::$app->request->get('id');
            Yii::$app->response->format = 'json';
            $applicate_category = CoinApplicationCategory::getCategoryById($id);
            if($applicate_category){
                $data = CoinBanner::getBannerInfoByIds($applicate_category->h5_banner);
            }else{
                $data = ['code' => 0,'data' => []];
            }
            return $data;
        }else{
            $id = Yii::$app->request->get('id');
            if($id){
                $applicate_category = CoinApplicationCategory::getCategoryById($id);
                if($applicate_category){
                    return $this->render('banner-index',['applicate_category' => $applicate_category]);
                }else{
                    $this->error('id参数不合法', Yii::$app->request->getReferrer());
                }
            }else{
                $this->error('id参数不能为空', Yii::$app->request->getReferrer());
            }
        }
    }

    public function actionAddBanner()
    {
        if(Yii::$app->request->isPost){
            Yii::$app->response->format = 'json';
            $id = Yii::$app->request->post('applicate_category_id',0);
            $image_id = Yii::$app->request->post('image',0);
            $banner_url = Yii::$app->request->post('banner_url',0);
            if($id && $image_id){
                $coin_applicate_category_form = new CoinApplicationCategoryForm();
                return $coin_applicate_category_form->addBanner($id,$image_id,$banner_url);
            }else{
                return ['code' => 1,'msg'=> 'banner添加失败'];
            }
        }
    }

    public function actionDeleteBanner()
    {
        Yii::$app->response->format = 'json';
        $id = Yii::$app->request->get('id');
        $applicate_category_id = Yii::$app->request->get('applicate_category_id');
        if ($id && $applicate_category_id) {
            $coin_applicateion_category_form = new CoinApplicationCategoryForm();
            return $coin_applicateion_category_form->delBanner($id,$applicate_category_id);
        }
        return ['code' => 1, 'msg' => 'failed'];
    }


}