<?php
/**
 * MemberController.php UTF-8
 * 玩家处理类
 *
 * @date    : 2018/1/19 16:25
 *
 * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 * @author  : linjiebin <ljb@huosdk.com>
 * @version : HUOSDK 8.0
 */
namespace web\pc\controller\v8;

use think\Session;
use web\common\controller\WebBaseController;
use web\pc\logic\MemberLogic;
use web\pc\logic\GiftLogic;
use web\pc\logic\MessageLogic;
use web\pc\logic\WalletLogic;

class MemberController extends WebBaseController {
    public function __construct() {
        parent::__construct();
    }

    /**
     * 玩家中心
     *
     * @return mixed
     */
    public function index() {
        if (!$this->isLogin()) {
            $this->error('请先登录');
        }
        $_mem_id = Session::get('user.id');
        $_member_class = new MemberLogic();
        $_gift_class = new GiftLogic();
        $_message_class = new MessageLogic();
        $_wallet_class = new WalletLogic();
        $_row = $this->request->param('row', 4);
        $_gift_page = $this->request->param('gift_page', 1);
        $_msg_page = $this->request->param('msg_page', 1);
        $_gm_page = $this->request->param('gm_page', 1);
        $_ptb_page = $this->request->param('ptb_page', 1);
        $_consum_page = $this->request->param('consum_page', 1);
        $_member_info = $_member_class->getMemberInfo();
        $_gift_list = $_gift_class->getMemGifts($_mem_id, $_gift_page.','.$_row);
        $_msg_list = [
            'list'  => $_message_class->getList(['mem_id' => $_mem_id,'readed'=>1], $_msg_page.','.$_row),
            'count' => $_message_class->getCnt(['mem_id' => $_mem_id]),
        ];
        $_member_info['ptb_remain'] = $_wallet_class->getMemPtb();
        $_gm_list = $_wallet_class->getMemGmlist(0, '1,100');
        $_gm_rechare_log = $_wallet_class->getGmRechargeList($_gm_page.','.$_row);
        $_ptb_rechare_log = $_wallet_class->getPtbRechargeList($_ptb_page.','.$_row);
        $_consum_log = $_wallet_class->getConsumelist($_consum_page.','.$_row);
        $_ptb_rate = $_wallet_class->getPtbRate();

        $_rdata['member_info'] = $_member_info;
        $_rdata['gift_list'] = $_gift_list;
        $_rdata['msg_list'] = $_msg_list;
        $_rdata['gm_list'] = $_gm_list;
        $_rdata['gm_recharge_log'] = $_gm_rechare_log;
        $_rdata['consumption_log'] = $_consum_log;
        $_rdata['ptb_recharge_log'] = $_ptb_rechare_log;
        $_rdata['ptb_rate'] = $_ptb_rate;
        if ($this->request->isAjax()) {
            return $_rdata;
        }
//        print_r($_rdata);
        $this->assign($_rdata);

        return $this->fetch('Member/index');
    }

    public function message_detail() {
        if (!$this->isLogin()) {
            $this->error('请先登录');
        }
        $_mem_id = Session::get('user.id');
        $_msg_id = $this->request->param('msg_id',0);
        $_message_class = new MessageLogic();
        $_message_class->getDetail($_msg_id, $_mem_id, true);
    }

    /**
     * 玩家登陆
     *
     * @return array|bool
     */
    public function login() {
        if ($this->request->isPost()) {
            $_member_class = new MemberLogic();
            $data = $this->request->post();
            $_rdata = $_member_class->login($data);

            return $_rdata;
        }

        return true;
    }

    /**
     * 玩家注册
     *
     * @return array|bool
     */
    public function reg() {
        if ($this->request->isPost()) {
            $_member_class = new MemberLogic();
            $data = $this->request->post();
            $_rdata = $_member_class->reg($data);

            return $_rdata;
        }

        return true;
    }

    /**
     * 玩家退出登陆
     *
     * @return array
     */
    public function logout() {
        $_member_class = new MemberLogic();
        $_rdata = $_member_class->logout();

        return $_rdata;
    }

    /**
     * 玩家修改密码
     *
     * @return array
     */
    public function edit_password() {
        if (!$this->isLogin()) {
            $this->error('请先登录');
        }
        if ($this->request->isPost()) {
            $_member_class = new MemberLogic();
            $data = $this->request->post();
            $data['id'] = Session::get('user.id');
            $_rdata = $_member_class->editPassword($data);

            return $_rdata;
        }
    }

    /**
     * 玩家实名认证
     *
     * @return array
     */
    public function auth_realname() {
        if (!$this->isLogin()) {
            $this->error('请先登录');
        }
        $_data['truename'] = $this->request->param('truename', '');
        $_data['idcard'] = $this->request->param('idcard', '');
        $_member_class = new MemberLogic();
        $_data['id'] = Session::get('user.id');
        $_rdata = $_member_class->authRealname($_data);

        return $_rdata;
    }

    /**
     * 玩家修改资料
     *
     * @return array
     */
    public function edit_member_info() {
        if (!$this->isLogin()) {
            $this->error('请先登录');
        }
        $_data['nickname'] = $this->request->param('nickname', '');
        $_member_class = new MemberLogic();
        $_data['id'] = Session::get('user.id');
        $_rdata = $_member_class->editInfo($_data);

        return $_rdata;
    }

    /**
     * 玩家找回密码
     */
    public function find_password() {
        return $this->fetch('Member/find_password');
    }

    /**
     * 获取验证码图片
     *
     * @return \think\Response
     */
    public function captcha_img() {
        return $this->getCaptchaImg();
    }

    /**
     * 1 校验用户是否存在
     *
     * @return array
     */
    public function username_is_exists() {
        $_username = $this->request->param('username', '');
        $_code = $this->request->param('code', '');
        $_r = $this->checkCaptchaVerify($_code);
        if (!$_r) {
            return [
                'error' => 1,
                'msg'   => '验证码错误'
            ];
        }
        if (empty($_username)) {
            return [
                'error' => 1,
                'msg'   => '请输入用户名'
            ];
        }
        $_member_class = new MemberLogic();
        $_rdata = $_member_class->usernameIsExists($_username);

        return $_rdata;
    }

    /**
     * 2发送验证码
     *
     * @return array
     */
    public function send_code() {
        $_username = $this->request->param('username', '');
        $_email = $this->request->param('email', '');
        $_mobile = $this->request->param('mobile', '');
        $_member_class = new MemberLogic();
        $_res = $_member_class->sendCode($_username, $_mobile, $_email);
        if ($_res['code'] != 200) {
            return [
                'error' => 1,
                'msg'   => $_res['msg']
            ];
        }
        $_rdata = [
            'error' => 0,
            'msg'   => '发送成功'
        ];

        return $_rdata;
    }

    /**
     * 3校验验证码
     *
     * @return array
     */
    public function check_code() {
        $_email = $this->request->param('email', '');
        $_mobile = $this->request->param('mobile', '');
        $_code = $this->request->param('code', '');
        $_member_class = new MemberLogic();
        $_rdata = $_member_class->checkCode($_mobile, $_email, $_code);

        return $_rdata;
    }

    /**
     * 4设置密码
     *
     * @return array
     */
    public function set_password() {
        $_email = $this->request->param('email', '');
        $_mobile = $this->request->param('mobile', '');
        $_password = $this->request->param('password', '');
        $_code = $this->request->param('code', '');
        $_member_class = new MemberLogic();
        $_rdata = $_member_class->setPassword($_mobile, $_email, $_password, $_code);

        return $_rdata;
    }

    /**
     * 修改绑定手机
     */
    public function edit_mobile() {
        if (!$this->isLogin()) {
            $this->error('请先登录');
        }
        $_mobile = $this->request->param('mobile');
        $_code = $this->request->param('code');
        $_member_class = new MemberLogic(Session::get('user.id'));
        $_rdata = $_member_class->editMobile($_mobile, $_code);

        return $_rdata;
    }
}