<?php

namespace app\api\controller;

use app\common\controller\Api;
use think\Db;
use app\common\service\UserService;


/**
 *
 */
class Userbank extends Api
{
    protected $noNeedLogin = [];
    protected $noNeedRight = ['*'];

    /**
     * 验证身份证号
     */
    public function validateCard() {
        $idcard = $this->request->request('idcard');// 身份证号
        if(!$idcard) $this->error("参数缺失!");
        // 获取用户信息
        $idcardInfo = \app\common\model\UserAuth::where(["user_id"=>$this->auth->id])->value("idcard");
        if($idcardInfo === $idcard) {
            $this->success("验证成功!");
        } else {
            $this->error("验证失败!");
        }
    }


    /**
     * 绑定银行卡
     */
    public function bindBank() {

        $bank_no = $this->request->request('bank_no');// 银行账号

        $open_bank = $this->request->request('open_bank');// 开户行

        $userId = $this->auth->id;

        if(!$bank_no || !$open_bank ) {
            $this->error("请将信息填写完整");
        }
        $userAuthWhere['user_id'] = $userId;
        $userAuth = Db::name('user_auth')->where($userAuthWhere)->find();
        if (empty($userAuth)) {
            $this->error('请先实名认证');
        }
        if ($userAuth['status'] != 1) {
            $this->error('请先实名认证通过');
        }
        $realname = $userAuth['realname'];
        $idCard = $userAuth['idcard'];
        $userService = new UserService();
        $aliParams = [
            'bank_no' => $bank_no,
            'id_card' => $idCard,
            'real_name' => $realname,
        ];
        $aliBankCheckRes = $userService->bankCheck($aliParams);
        if (!$aliBankCheckRes['status']) {
            $this->error($aliBankCheckRes['msg']);
        }


        // 查询是否有过绑定
        $bankInfo = \app\common\model\UserBank::where(["user_id"=>$userId])->find();
        $data = [];
        $data["realname"] = $realname;
        $data["bank_no"] = $bank_no;
        $data["open_bank"] = $open_bank;
        $data["id_card"] = $idCard;

        if($bankInfo) {
            $res = Db::name('user_bank')->where(["user_id"=>$userId])->update($data);
        } else {
            $data["user_id"] = $userId;
            $res = Db::name('user_bank')->insertGetId($data);
        }

        if(!$res) {
            $this->error("网络异常,请稍后重试!");
        }
        $this->success("银行卡绑定成功!");

    }

    /**
     * 获取绑定银行卡信息
     */
    public function getBankInfo() {
        // 查询是否有过绑定
        $bankInfo = Db::name('user_bank')->where(["user_id"=>$this->auth->id])->find();

        $this->success("获取成功!",$bankInfo);
    }

    /**
     * 绑定支付宝
     */
    public function bindAlipay() {
        $payNo = $this->request->request('pay_no');//支付宝账号

        $userId = $this->auth->id;
        //姓名和身份证号 取实名认证
        $userAuthWhere['user_id'] = $userId;
        $userAuth = Db::name('user_auth')->where($userAuthWhere)->find();
        if (empty($userAuth)) {
            $this->error('请先实名认证');
        }
        if ($userAuth['status'] != 1) {
            $this->error('请先实名认证通过');
        }
        $realname = $userAuth['realname'];
        $cardNo = $userAuth['idcard'];
        if(!$realname || !$payNo || !$cardNo) {
            $this->error("请将信息填写完整");
        }

        // 查询是否有过绑定
        $bankInfo = Db::name('user_alipay')->where(["user_id"=>$userId])->find();
        $data = [];
        $data["realname"] = $realname;
        $data["pay_no"] = $payNo;
        $data["card_no"] = $cardNo;
        if($bankInfo) {
            $data["updatetime"] = time();
            $res = Db::name('user_alipay')->where(["user_id"=>$userId])->update($data);
        } else {
            $data["user_id"] = $userId;
            $data["createtime"] = time();
            $res = Db::name('user_alipay')->insertGetId($data);
        }
        if($res) {
            $this->success("支付宝绑定成功!");
        } else {
            $this->error("网络异常,请稍后重试!");
        }
    }

    /**
     * 获取绑定银行卡信息
     */
    public function getAlipayInfo() {
        // 查询是否有过绑定
        $alipayInfo = Db::name('user_alipay')->where(["user_id"=>$this->auth->id])->find();
        $this->success("获取成功!",$alipayInfo);
    }


}