<?php
namespace admin\action\wdzy;

use model\rcaApi;
use model\wdzy\resource;
use model\wdzy\user;

class resourceAction extends \action
{
    public function list()
    {
        $req = \mvc::$req;
        $ckv = new \model\ckv();
		$setArr['edc_status'] = $ckv->getKV('edc_status');
        $setArr['hdc_status'] = $ckv->getKV('hdc_status');
        \view::set('setArr',$setArr);
        \view::put();
    }

    public function getList()
    {
        $req = \mvc::$req;
        $resource = new resource();
        $data = $resource->getList($req);
        $this->successJson($data);
    }

    public function detail()
    {
        $req = \mvc::$req;
        $id = $req['id'];
        $resource = new resource(); 
        $data = $resource->getRowByKey($id);
        \view::set('item',$data);
        \view::put();
    }

    public function base()
    {
        $req = \mvc::$req;
        $id = $req['id'];
        if($id){
			$resource = new resource();
            $item = $resource->getDetail($id);
        }else{
            $item['resourceProvideTime'] = date('Y-m-d H:i:s');
        }
        \view::set('dataArr',$item);
        \view::put();
    }

    public function saveDetail()
    {
        $req = \mvc::$req;
        if(!$req['id'])
        {
            $reqfiles = \mvc::$reqfiles;
            $resource = new resource();
            $data = $resource->createResource($req,$reqfiles['excelFile']??[]);
        }
        else
        {
            $resource = new resource();
            $data = $resource->updateResource($req['id'],$req);
        }
       
        $this->successJson($data);
    }


    public function delData()
    {
        $req = \mvc::$req;
        if(!$req['ids'])
        {
            $this->errorJson('请选择要删除的数据');
        }
        $resource = new resource();
        $data = $resource->deleteResource(explode(',',$req['ids']));
        $this->successJson($data);
        
    }

    /**
     * @method 快照信息
     * @author zhengweihua 
     * @copyright 2025-07-14
     */
    public function getSnapShotList()
    {
        $req = \mvc::$req;
        $data  = [];
        if($req['id'])
        {
            $resource = new resource();
            $data  = $resource->getSnapShotList($req);
            
        }
        $this->successJson($data);
    }

    /**
     * @method 获取号码列表
     * @author zhengweihua 
     * @copyright 2025-07-18
     */
    public function getNumberList()
    {
        $req = \mvc::$req;
        $data  = [];
        if($req['id'])
        {
            $resource = new resource();
            $data  = $resource->getNumberList($req);
        }
        $this->successJson($data);
    }

    /**
     * @method 获取数据列表
     * @author zhengweihua 
     * @copyright 2025-07-18
     */
    public function getDataList()
    {
        $req = \mvc::$req;
        $data  = [];
        if($req['id'])
        {
            $resource = new resource();
            $data  = $resource->getDataList($req);
        }
        $this->successJson($data);
    }

    public function initUpload()
    {
        $req = \mvc::$req;
        $resource = new resource();
        $data = $resource->initUpload($req);
        
        $this->successJson($data);
    }

    public function partUpload()
    {
        $req = \mvc::$req;
        $reqfiles = \mvc::$reqfiles;
        $resource = new resource();
        $data = $resource->partUpload($req,$reqfiles['file']);
        $this->successJson($data);
    }

    public function completeUpload()
    {
        $req = \mvc::$req;
        $resource = new resource();
        $data = $resource->completeUpload($req);
        $this->successJson($data);
    }

    /**
     * @method 上传文件块
     * @author zhengweihua 
     * @copyright 2025-07-18
     */
    public function chunk()
    {
        $req = \mvc::$req;
        $reqfiles = \mvc::$reqfiles;
        $resource = new resource();
        $data = $resource->chunk($req,$reqfiles['file']); 
        $this->successJson($data);
    }

    /**
     * @method 合并文件块
     * @author zhengweihua 
     * @copyright 2025-07-18
     */
    public function merge()
    {
        $req = \mvc::$req;
        $resource = new resource();
        $data = $resource->merge($req); 
        $this->successJson($data);
    }

    /**
     * @method 同步用户
     */
    public function syncUser()
    {
        $user =  new user();
        $res = $user->syncUser();
        $this->successJson('同步成功');
    }

    /**
     * @method 解析所选快照
     * @author zhengweihua 
     * @copyright 2025-07-18
     */
    public function rebuildIndex()
    {
        $req = \mvc::$req;
        if(!$req['ids'] && !$req['id']) {
            $this->errorJson('请选择要解析的快照');
        }   
        if($req['ids']){
            $data = ['ids' => $req['ids']];
        }elseif ($req['id']) {
            $data = ['id' => $req['id']];
        }
        $rcaApi = new rcaApi();
        $data = $rcaApi->Get('resourcesnapshots/rebuildindex',[],$data); 
        $this->successJson($data);
    }

    /**
     * @method 重新解析资源
     * @author zhengweihua 
     * @copyright 2025-08-05
     */
    public function rebuildResource()
    {
        $req = \mvc::$req;
        if(!$req['id']) {
            $this->errorJson('请选择要解析的快照');
        }   
        $data = ['id' => $req['id']];
        $rcaApi = new rcaApi();
        $data = $rcaApi->Get('resources/rebuildindex',[],$data); 
        $this->successJson($data);
    }


    public function getCosCredentials()
    {
        $data = ['action'=>0];
        $rcaApi = new rcaApi();
        $data = $rcaApi->Get('tencentcos/getstscredential',[],$data); 
        $this->successJson($data['data']);
    }

    /**
     * @method 更新资源库配置
     * @author zhengweihua 
     * @copyright 2025-09-27
     */
    public function updateConfig()
    {
        if(!\p::isAdmin()){
            $this->errorJson(-1,'无权限操作');
        }
        $req = \mvc::$req;
        $paramname = $req['paramname'];
        $paramvalue = $req['paramvalue'];
        if(!in_array($paramname, ['edc_status','hdc_status'])) {
            $this->errorJson(-1,'参数错误');
        }
        $ckv = new \model\ckv();
		$data = $ckv->setKV($paramname, $paramvalue);
        $this->successJson('设置成功');
    }

}