<?php

namespace app\tencent\controller;

use fastphp\base\Controller;
use app\tencent\model\Agreement as AgreementModel;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;


class Index extends Controller
{
    private $accessKey = 'AfRhvJoAKL24ftGcHMor1WwSpVdular7L7X97JNY';
    private $secretKey = 'OyyU-6M45oDZAlVsf8fH0RFALGxTNHAT-yR6cmtU';
    private $bucket = 'zip9';

    public function upload()
    {
        $username = $this->userinfo['LoginName'];
        $userid = $this->userinfo['UserId'];
        $data = $_POST;

        $agreement_model = new AgreementModel;

        $is_ipload = $agreement_model->getOne(['user_id' => $userid]);

        if (!empty($is_ipload)) {
            echo json_encode(['code' => -1,'msg'=>'已经上传过！']);die;
        }



        $xieyi = $_FILES['xieyi'];
        
        $size_limit = 30 * 1024 * 1024;
        if ($xieyi['size']>$size_limit) {
            echo json_encode(['code' => -1,'msg'=>'文件过大，仅限30M']);
            die;
        }
        
        $agreement_data = [
            'user_id' => $userid,
            'username' => $username,
            'status' => 1,
            'describe' => $data['describe'],
        ];
        if(!$data['status']) {
            echo json_encode(['code' => -1,'msg'=>'失败']);die;
        }
        
        $auth = new Auth($this->accessKey, $this->secretKey);
        // 初始化 UploadManager 对象并进行文件的上传。
        $uploadMgr = new UploadManager();
        // 需要填写你的 Access Key 和 Secret Key
        // 构建鉴权对象
        // 生成上传 Token
        $token = $auth->uploadToken($this->bucket);
        // 要上传文件的本地路径
        $xieyi_filePath = $xieyi['tmp_name'];
        // 上传到存储后保存的文件名
        $xieyi_key = $username.'-'.time().'.png';

        // 调用 UploadManager 的 putFile 方法进行文件的上传。
        list($ret, $err) = $uploadMgr->putFile($token, $xieyi_key, $xieyi_filePath, null, 'application/octet-stream', true, null, 'v2');
        $agreement_data['xieyi'] = 'http://zip.juip.com/'.$xieyi_key;

        $status = $agreement_model->add($agreement_data);
        
        if ($status) {
            echo json_encode(['code' => 1,'msg'=>'成功']);
        } else {
            echo json_encode(['code' => -1,'msg'=>'失败']);
        }
    }

    public function get_list() {
        $get_data = json_decode(file_get_contents("php://input"), true);
        $agreement_model = new AgreementModel;
        $where = [];
        $page = 0;

        if (!empty($get_data['username'])) {
            $where['username'] = $get_data['username'];
        }

        if (isset($get_data['PageIndex'])) {
            $page = ($get_data['PageIndex'] - 1) * 50;
        }
        
        $list = $agreement_model->getListPage($where, '*', 'id desc', "$page,50");

        $data = [
            'Code' => 30000,
            'Data' => $list,
            'Message' => '',
            'TotalCount' => (int)$agreement_model->getCount($where)['count'],
        ];
        echo json_encode($data);
    }

    public function get_is_upload() {
        $agreement_model = new AgreementModel;

        $data = $agreement_model->getOne(['user_id' => $this->userinfo['UserId']]);

        if (empty($data)) {
            echo json_encode(['code'=>-1]);
        } else {
            echo json_encode(['code'=>1]);
        }
    }
}