<?php
/**
 * HomeController.php UTF-8
 * 首页
 *
 * @date    : 2018/9/13 10:24
 *
 * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 * @author  : wuyonghong <wyh@huosdk.com>
 * @version : HuoMp 1.0
 */

namespace box\api\controller;

use box\common\controller\V2ApiBaseController;
use huo\controller\game\GameCache;
use huo\model\game\CategoryModel;
use huo\model\slide\SlideItemModel;
use huolib\constant\CategoryConst;
use huolib\constant\GameConst;
use huolib\constant\SlideConst;
use huolib\status\CommonStatus;
use huomp\logic\game\GameMiniCateListLogic;

class HomeController extends V2ApiBaseController {
    /**
     * 盒子启动闪屏图926
     * http://doc.huosdk.com/159?page_id=4732
     * 【域名】/mp/startup
     */
    public function startup() {
        $_game_rq = $this->setGameData();
        $_app_id = $_game_rq->getHAppId();
        $_rdata = [
            'splash_image' => '',
            'mini_app_id'  => '',
            'url'          => '',
        ];
        $_ads = (new SlideItemModel())->getAdByCode(SlideConst::SLIDE_MP_SPLASH_IMAGE.$_app_id);
        if (!empty($_ads[0])) {
            $_ads = $_ads[0];
            $_rdata['splash_image'] = get_val($_ads, 'image', '');
            $_rdata['mini_app_id'] = get_val($_ads, 'mini_app_id', '');
            if (!empty($_ads['game_id'])) {
                $_app_info = GameCache::ins()->getInfoByAppId($_ads['game_id']);
                $_rdata['url'] = empty($_app_info['gv'][0]['package_url']) ? '' : $_app_info['gv'][0]['package_url'];
            }
        }
        $_code = CommonStatus::NO_ERROR;
        $this->success(CommonStatus::getMsg($_code), $_rdata, $_code);
    }

    /**
     * 玩游戏首页912
     * http://doc.1tsdk.com/159?page_id=4636
     * 【域名】/play/index
     */
    public function playIndex() {
        $_cates = (new CategoryModel())->getCatesByType(CategoryConst::CATE_TYPE_HOME_4);
        if (empty($_cates)) {
            $_code = CommonStatus::NO_ERROR;
            $this->success(CommonStatus::getMsg($_code), $_code);
        }
        $_cnt = 0;
        $_list = [];
        $_data = [];
        $_gmc_logic = new GameMiniCateListLogic();
        $_si_model = new SlideItemModel();
        foreach ($_cates as $_key => $_val) {
            $_data['type_id'] = $_val['type_id'];
            $_data['type_name'] = $_val['type_name'];
            $_data['item_cnt'] = $_val['item_cnt'];
            $_data['image'] = $_val['image'];
            $_param = ['status'   => GameConst::GAME_STATUS_ON,
                       'classify' => GameConst::GAME_MP,
                       'cate_id'  => $_val['type_id'],
                       'item_cnt' => $_val['item_cnt'],
                       'mem_id'   => $this->mem_id
            ];
            $_page = '1,'.$_data['item_cnt'];
            $_game_list = $_gmc_logic->getCateGameList($_param, $_page);
            if (empty($_game_list) || empty($_game_list['count'])) {
                continue;
            }
            $_data['game_cnt'] = $_game_list['count'];
            $_data['gamelist'] = $_game_list['list'];
            $_ads = $_si_model->getAdsByCode(CategoryConst::CATE_TYPE_HOME_SLIDE.$_val['type_id']);
            $_data['ads'] = !empty($_ads) ? $_ads[0] : [];
            $_list[] = $_data;
            $_cnt++;
        }
        $_mptopper_slides = $_si_model->getAdsByCode(SlideConst::SLIDE_MP_TOPPER);
        $_top_ads = [
            'count' => count($_mptopper_slides),
            'list'  => $_mptopper_slides
        ];
        $_rdata = ['count' => $_cnt, 'list' => $_list, 'topads' => $_top_ads];
        $_code = CommonStatus::NO_ERROR;
        $this->success(CommonStatus::getMsg($_code), $_rdata, $_code);
    }
}