<?php
declare(strict_types=1);
namespace App\Controller;

use App\JsonRpc\NewsServiceInterface;
use App\JsonRpc\WebsiteServiceInterface;
use App\Tools\PublicData;
use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpServer\Annotation\AutoController;
use App\Tools\Result;
use Hyperf\Validation\Contract\ValidatorFactoryInterface;
use App\Constants\ErrorCode;
use Hyperf\Context\Context;

/**
 * Class WebController
 * @package App\Controller
 */
class WebController extends AbstractController
{

    #[Inject]
    protected ValidatorFactoryInterface $validationFactory;

    /**
     * @var NewsServiceInterface
     */
    #[Inject]
    private $newsServiceClient;

    /**
     * @var WebsiteServiceInterface
     */
    #[Inject]
    private $websiteServiceClient;


    private $PublicController;
    public function __construct(PublicController $PublicController)
    {
        $this->PublicController = $PublicController;
    }

    /**
     * 获取栏目导航
     * @return array
     */
    public function getWebsiteCategory()
    {
        $data = [
            'website_id'=>Context::get("SiteId")
        ];
        // var_dump("网站id:",Context::get("SiteId"));
        $result = $this->websiteServiceClient->getWebsiteCategory($data);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }

    /**
     * 获取各省名称
     */
    public function getWebsiteDistrit()
    {
        $data= [
            'pid' => 0,
            'website_id'=>Context::get("SiteId")
        ];
        $result=$this->PublicController->getDistrictList($data);
        
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        // var_dump($result['data']);
        return Result::success($result['data']);
        
    }

     /**
     * 获取广告1
     * @return array
     */
    public function getWebsiteAdvertisement()
    {
        $requireData = $this->request->all();
        $data = ['website_id'=>Context::get("SiteId")]; 
        if($requireData['ad_tag']){
            $validator = $this->validationFactory->make(
                $requireData,
                [
                    'ad_tag' => 'required'
                ],
                [
                    'ad_tag.required' => '广告位置表示不能为空'
                ]
            );
            if ($validator->fails()){
                $errorMessage = $validator->errors()->first();
                return Result::error($errorMessage);
            }
            $data['ad_tag'] = $requireData['ad_tag'];
        }
        
        
        // return Result::success($data);//测试
        $result = $this->websiteServiceClient->getWebsiteAdvertisement($data);

        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }

    /**
     * 搜索并获取职能部门
     */
    public function selectWebsiteDepartment(){
        $requireData = $this->request->all();
        $data = [
            
            'website_id'=>Context::get("SiteId")
        ]; 
       
        if(!empty($requireData)){
            $data = [
                'keyword'=>$requireData['keyword'],
                'website_id'=>Context::get("SiteId")
            ]; 
        }
   
        $result = $this->websiteServiceClient->selectWebsiteDepartment($data);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }

    /**
     *各省市查询 
     */
    public function selectWebsiteArea()
    {
        $requireData = $this->request->all();
        // return Result::success($requireData);                          
        $result = $this->websiteServiceClient->selectWebsiteArea($requireData);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }
    
    /**
     * 获取新闻
     */
    public function getWebsiteArticlett()
    {
       
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'level' => 'required',
                'imgnum' => 'required',
                'textnum' =>'required',
            ],
            [
                'level.required' => '新闻类型不能为空',
                'imgnum.required' => '图片新闻条数不能为空',
                'textnum.required' => '文字新闻条数不能为空'
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        } 
        $requireData['website_id'] = Context::get("SiteId");
        $result = $this->newsServiceClient->getWebsiteArticlett($requireData);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }

     /**
     * 获取模块新闻
     */
    public function getWebsiteModelArticles()
    {
        $requireData = $this->request->all();     
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'catid' => 'required',
                'level' => 'required',
                'pagesize' => 'required'
            ],
            [
                'catid.required' => '栏目id不能为空',
                'level.required' => '新闻类型不能为空',
                'pagesize.required' => '新闻条数不能为空'
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }

        if(isset($requireData['placeid']) && !empty($requireData['placeid'])){
            $data =[
                'website_id'=>Context::get("SiteId"),
                'catid' => $requireData['catid'],
                'level' => $requireData['level'],
                'pagesize' => $requireData['pagesize'],
                'placeid' => $requireData['placeid']
            ];
        }else{
            $data = [
                'website_id'=>Context::get("SiteId"),
                'catid' => $requireData['catid'],
                'level' => $requireData['level'],
                'pagesize' => $requireData['pagesize']
            ];   
        }      
        $result = $this->newsServiceClient->getWebsiteModelArticles($data);
        // var_dump($result);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }

    /**
     * 获取模块栏目
     */
    public function getWebsiteModelCategory()
    {
        $requireData = $this->request->all();     
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'placeid' => 'required',
                'pid' => 'required',
                'num' => 'required'
            ],
            [
                'placeid.required' => '栏目位置不能为空',
                'pid' => '栏目类型不能为空',
                'num' => '父级栏目数量'
            ]
        );
        
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = [
            'website_id'=>Context::get("SiteId"),
            'pid' => $requireData['pid'],
            'placeid' => $requireData['placeid'],
            'num' => $requireData['num']
        ];    
        $result=$this->websiteServiceClient->getWebsiteModelCategory($data);
        
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        // var_dump($result['data']);
        return Result::success($result['data']);
        
    }

     /**
     * 获取友情链接
     * @return array
     */
    public function selectWebsiteLinks()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'type' => 'required',
                'num' => 'required'
            ],
            [
                'type.required' => '友情链接类型不能为空',
                'num.required' => '友情链接数量不能为空'
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = [
            'website_id'=>Context::get("SiteId"),
            'type'=>$requireData['type'],
            'num' =>$requireData['num']
        ];
        $result = $this->websiteServiceClient->selectWebsiteLinks($data);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }

    /**
     * 获取文章列表
     * @return array
     */
    public function getWebsiteArticleList()
    {
       
        $requireData = $this->request->all();
        // return Result::success($requireData);
        if(isset($requireData['catid'])){
            $validator = $this->validationFactory->make(
            $requireData,
            [
                'catid' => 'required'
            ],
            [
                'catid.required' => '栏目id不能为空'

            ]
            );
        }
            
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'page' => 'required',
                'pageSize' => 'required'
            ],
            [
                'page.required' => '分页不能为空',
                'pageSize.required' => '显示条数不能为空'

            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }

        $requireData['website_id'] = Context::get("SiteId");
        $result = $this->newsServiceClient->getWebsiteArticleList($requireData);
        // var_dump($result);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        // $result = $data; 
        return Result::success($result['data']);
        
    }
    
     /**
     * 获取文章详情
     */
    public function selectWebsiteArticleInfo()
    {
       
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'articleid' => 'required'
            ],
            [
                'articleid.required' => '新闻id不能为空'
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = [
            'website_id'=>Context::get("SiteId"),
            'id'=>$requireData['articleid'],
        ]; 
        $result = $this->newsServiceClient->selectWebsiteArticleInfo($data);
        // var_dump($result);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
        
    }
    /**
     * 获取网站底部信息
     * @return array
     */
    public function getWebsiteFootInfo()
    {
        $data = [
            'website_id'=>Context::get("SiteId")
        ];
        $result = $this->websiteServiceClient->getWebsiteFootInfo($data);
        if ($result['code'] != ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }
        return Result::success($result['data']);
    }
    /**
     * 获取网站底部导航
     * @return array
    */
    public function getWebsiteFooterCategory()
    {
        $data = [
            'website_id'=>Context::get("SiteId")
        ];
        $result = $this->websiteServiceClient->getWebsiteFooterCategory($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]); 
        }else{
            return Result::success($result['data']);
        }
    }
    /**
     * 获取网站底部导航列表
     * @return array
    */
    public function getWebsiteFooterCategoryList()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'fcat_id' =>'required|integer'
            ],
            [
                'fcat_id.required' => '底部导航栏目id不能为空',
                'fcat_id.integer' => '底部导航栏目id必须为整数'
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first(); 
            return Result::error($errorMessage);
        }
        $data = [
            'fcat_id'=>$requireData['fcat_id'],
            'website_id'=>Context::get("SiteId")
        ];
        $result = $this->websiteServiceClient->getWebsiteFooterCategoryList($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]); 
        }else{
            return Result::success($result['data']);
        }
    }
    /**
     * 获取网站底部导航内容
     * @return array
    */
    public function getWebsiteFooterCategoryInfo()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'fcat_id' =>'required|integer',
                'type' => 'nullable|in:0'
            ],
            [
                'fcat_id.required' => 'id不能为空',
                'fcat_id.integer' => 'id必须为整数',
                'type.in' => '类型必须为0'
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage); 
        }
        $data = [
            'fcat_id'=>$requireData['fcat_id'],
            'website_id'=>Context::get("SiteId")
        ];
        if(isset($requireData['type'])){
            $data['type'] = $requireData['type'];
        }
        $result = $this->websiteServiceClient->getWebsiteFooterCategoryInfo($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]); 
        }else{
            return Result::success($result['data']);
        }
    }
    /**
     * 搜索导航
     * @return array
     */
    public function selectWebsiteCategory()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'cityid' => 'nullable|numeric',
                'department_id' => 'nullable|numeric',
            ], 
            [
                'cityid.numeric' => '城市id必须为数字',
                'department_id.numeric' => '部门id必须为数字' 
            ]
        ) ;
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = $requireData;
        $data['website_id'] = Context::get("SiteId");
        $result = $this->newsServiceClient->selectWebsiteArticle($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]); 
        }else{
            return Result::success($result['data']);
        }

    }
    /**
     * 搜索栏目的seo信息
     * @return array
     */
    public function getWebsiteCategoryHead()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'catid' =>'required|integer'
            ], 
            [
                'catid.required' => 'id不能为空'
            ]
        ) ;
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = $requireData;
        $data['website_id'] = Context::get("SiteId");
        $result = $this->websiteServiceClient->getWebsiteCategoryHead($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]); 
        }else{
            return Result::success($result['data']);
         }

    }
    /**
     * 搜索某个导航
     * @return array
     */
    public function getOneWebsiteCategory()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'catid' =>'required|integer'
            ], 
            [
                'catid.required' => 'catid不能为空'
            ]
        ) ;
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = [
            'category_id' => $requireData['catid'],
            'website_id' => Context::get("SiteId")
        ];
        $result = $this->websiteServiceClient->getOneWebsiteCategory($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]); 
        }else{
            return Result::success($result['data']);
         }

    }
    /**
     * 获取网站调查问卷
     */
    public function getWebsiteSurvey()
    {
        $requireData = $this->request->all();
        if(isset($requireData['art_id'])){
            $validator = $this->validationFactory->make(
                $requireData,
                [
                    'art_id' =>'required|integer'
                ],
                [
                    'art_id.required' => 'id不能为空',
                    'art_id.integer' => 'id必须为整数'
                ]
            ); 
            if ($validator->fails()){
                $errorMessage = $validator->errors()->first();
                return Result::error($errorMessage);
            }
            $data['art_id'] = $requireData['art_id'];
        }
        $data['website_id'] =  Context::get("SiteId");
        // return Result::success($data);
        $result = $this->newsServiceClient->getWebsiteSurvey($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }else{
            return Result::success($result['data']);
        }

    }
    /*
     * 添加网站调查问卷选项
     * 
     * */
    public function addWebsiteSurveyOption()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'sur_id' =>'required',
                'choice_name' =>'required|string|max:30',
            ],
            [
                'sur_id.required' => '问卷id不能为空',
                'choice_name.required' => '选项名称不能为空',
                'choice_name.string' => '选项名称必须为字符串',
                'choice_name.max' => '选项名称不能超过30个字符',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = [
            'website_id' => Context::get("SiteId"),
            'sur_id' => $requireData['sur_id'],
            'choice_name' => $requireData['choice_name'],
        ];
        $result = $this->newsServiceClient->addWebsiteSurveyOption($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }else{
            return Result::success($result['data']);
        }
    }
    /*
     * 调查问卷-投票
     * 
     * */
    public function addWebsiteSurveyVote()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'sur_id' =>'required',
                'choice_id' =>'required',
            ],
            [
                'sur_id.required' => '问卷id不能为空',
                'choice_id.required' => '选项名称不能为空'
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $data = [
            'website_id' => Context::get("SiteId"),
            'sur_id' => $requireData['sur_id'],
            'choice_id' => $requireData['choice_id']
        ];
        // return Result::success($data);
        $result = $this->newsServiceClient->addWebsiteSurveyVote($data);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]);
        }else{
            return Result::success($result['data']);
        }
    }
    /**
     * 获取父级/子级导航----路由
     * @return array
     */
    public function getWebsiteParentCategory()
    {
        $requireData = $this->request->all();
        $requireData['website_id'] =  Context::get("SiteId") ?? 0;
        $result = $this->websiteServiceClient->getWebsiteParentCategory($requireData);
        if ($result['code']!= ErrorCode::SUCCESS) {
            return Result::error($result['message'],0,[]); 
        }else{
            return Result::success($result['data']);
         }

    }
    /**
     * 获取网站模块新闻----图文
     * @return array
     */
    public function getWebsiteCatidArticle()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'catid' =>'required|integer'
            ],
            [
                'catid.required' => 'id不能为空' 
            ] 
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage); 
        }
        $requireData['website_id'] =  Context::get("SiteId");
        // return Result::success($requireData);
        $result = $this->newsServiceClient->getWebsiteCatidArticle($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * 获取底部所有信息
     * 
     * */
    public function getWebsiteFootAll()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'link_textnum' => 'required|integer',
                'link_imgnum' => 'required|integer',
                'link_footnum' => 'required|integer',
            ],
            [
                'link_textnum.required' => '文字类型友情链接数量不能为空',
                'link_textnum.integer' => '文字类型友情链接数量必须为整数',
                'link_imgnum.required' => '图片类型友情链接数量不能为空',
                'link_imgnum.integer' => '图片类型友情链接数量必须为整数',
                'link_footnum.required' => '底部友情链接数量不能为空',
                'link_footnum.integer' => '底部友情链接数量必须为整数',
            ] 
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage); 
        }
        $requireData['website_id'] =  Context::get("SiteId");
        $result = $this->websiteServiceClient->getWebsiteFootAll($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * 获取网站顶部信息
     * 
     * */
    public function getWebsiteHead()
    {
        $data = [
            'website_id'=>Context::get("SiteId")
        ];
        $result = $this->websiteServiceClient->getWebsiteHead($data);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * 获取网站底部信息
     *
     * */
    public function getWebsiteAllArticle()
    {
        $requireData = $this->request->all();
        $requireData['website_id'] =  Context::get("SiteId");
        $result = $this->newsServiceClient->getWebsiteAllArticle($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * 乡村网-获取特殊新闻模块
     *
     * */
    public function getWebsiteArticles()
    {
        $requireData = $this->request->all();
        $requireData['website_id'] =  Context::get("SiteId");
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
            ],
            [
                'id.required' => 'id不能为空',
            ] 
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $result = $this->newsServiceClient->getWebsiteArticles($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * 匹配路由
     *
     * */
    public function getWebsiteRoute()
    {
       
        $requireData = $this->request->all();
        $requireData['website_id'] =  Context::get("SiteId");
        $result = $this->websiteServiceClient->getWebsiteRoute($requireData); 
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }


    /*
     * c端商城-获取商品
     *
    * */
    public function getWebsiteshop()
    {
        $requireData = $this->request->all();   
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
            ],
            [
                'id.required' => 'id不能为空',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId") ?? 2;
        $result = $this->newsServiceClient->getWebsiteshop($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端商城-获取商品分类
     *
    * */
    public function getWebsiteshopCat()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
                'page' =>'required',
                'pageSize' =>'required'
            ],
            [
                'id.required' => 'id不能为空',
                'page.required' => '第几页不能为空',
                'pageSize.required' => '每页数量不能为空',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage); 
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteshopCat($requireData); 
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端商城-获取商品列表
     *
    * */
    public function getWebsiteshopList()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'page' =>'required',
                'pageSize' =>'required'
            ],
            [
                'page.required' => 'id不能为空',
                'pageSize.required' => 'id不能为空',
            ]
        );
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteshopList($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端商城-获取商品详情
     *
     * */
    public function getWebsiteshopInfo()
    {
        $requireData = $this->request->all(); 
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
            ], 
            [
                'id.required' => 'id不能为空', 
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteshopInfo($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端书刊信息-获取商品评论
     *
     * */
    public function getWebsiteBook()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
            ],
            [
                'id.required' => 'id不能为空',
            ]
            );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteBook($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端书刊信息-获取书刊列表
     *
     * */
    public function getWebsiteBookList()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
                'page' =>'required',
                'pageSize' =>'required'
            ],
            [
                'id.required' => 'id不能为空',
                'page.required' => '第几页不能为空',
                'pageSize.required' => '每页数量不能为空',  
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteBookList($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端书刊信息-获取书刊详情
     *
     * */
    public function getWebsiteBookInfo()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
            ],
            [
                'id.required' => 'id不能为空',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteBookInfo($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端求职招聘-获取职位
     *
     * */
    public function getWebsiteJob()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'job1_num' =>'required|integer',
                'job2_num' =>'required|integer',
            ],
            [
                'job1_num.required' => '职位信息数量不能为空',
                'job1_num.integer' => '职位信息数量必须为整数',
                'job2_num.required' => '简历信息数量不能为空',
                'job2_num.integer' => '简历信息数量必须为整数',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        // return Result::success($requireData);
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteJob($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端求职招聘-获取职位列表
     *
     * */
    public function getWebsiteJobList()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'page' =>'required|integer',
                'pageSize' =>'required|integer'
            ],
            [
                'page.required' => '第几页不能为空',
                'page.integer' => '第几页必须为整数',
                'pageSize.required' => '每页数量不能为空',
                'pageSize.integer' => '每页数量必须为整数',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->getWebsiteJobList($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端求职招聘-获取职位详情
     *
     * */
    public function getWebsiteJobInfo()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required|integer',
                'type' =>'required|integer',
                'pageSize' =>'required|integer'
            ],
            [
                'id.required' => 'id不能为空',
                'id.integer' => 'id必须为整数',
                'type.required' => 'type不能为空',
                'type.integer' => 'type必须为整数',
                'pageSize.required' => '每页数量不能为空',
                'pageSize.integer' => '每页数量必须为整数',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        // $requireData['user_id'] = Context::get("userId")?? 0;
        $result = $this->newsServiceClient->getWebsiteJobInfo($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * c端求职招聘-申请职位
     *
     * */
    public function getWebsiteJobApply()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'website_id' =>'required|integer',
                'recruit_id' =>'required|array',
            ],
            [
                'website_id.required' =>'website_id不能为空',
                'website_id.integer' =>'website_id必须为整数',
                'recruit_id.required' => 'recruit_id不能为空',
                'recruit_id.array' => 'recruit_id必须为数组',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['user_id'] =  Context::get("UserId")?? 2;

        // return Result::success($requireData);
        $result = $this->newsServiceClient->getWebsiteJobApply($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }/*
     * c端求职招聘-沟通简历
     *
     * */
    public function getWebsiteJobResume()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'website_id' =>'required|integer',
                'hunt_id' =>'required|array',
            ],
            [
                'website_id.required' =>'website_id不能为空',
                'website_id.integer' =>'website_id必须为整数',
                'hunt_id.required' => 'hunt_id不能为空',
                'hunt_id.array' => 'hunt_id必须为数组',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['user_id'] =  Context::get("UserId")?? 2;

        // return Result::success($requireData);
        $result = $this->newsServiceClient->getWebsiteJobResume($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
    /*
     * 乡村网-获取文章
     *
     * */
    public function test()
    {
        $requireData = $this->request->all();
        $validator = $this->validationFactory->make(
            $requireData,
            [
                'id' =>'required',
            ],
            [
                'id.required' => 'id不能为空',
            ]
        );
        if ($validator->fails()){
            $errorMessage = $validator->errors()->first();
            return Result::error($errorMessage);
        }
        $requireData['website_id'] =  Context::get("SiteId")?? 2;
        $result = $this->newsServiceClient->test($requireData);
        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
    }
}