<?php
class pjlArticleAction extends baseAction
{	
	private $article;

	/**
	 * @method    文章首页
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function index()
	{
		LibRule::Check('JA01');
		LibTpl::Set('title','文章列表-跑街令');
		LibTpl::Put();

	}


	/**
	 * @method    文章筛选框
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function artLeft()
	{
		LibRule::Check('JA01');
		$Params = mvc::$URL_PARAMS;
		$LibYpApi = new LibYpApi();
		$artSortArr = $LibYpApi->Get('pjl/getAllArticleSorts',[]);
		$artStatus = $LibYpApi->Get('pjl/getArticleStatus',[]);

		LibTpl::Set('artStatus',$artStatus['data']);

		LibTpl::Set('artSort',json_encode($artSortArr['data']));
		LibTpl::Put();
	}


	/**
	 * @method    文章列表
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function lists()
	{
		LibRule::Check('JA01');
		$LibYpApi = new LibYpApi();
		$artSortArr = $LibYpApi->Get('pjl/getAllArticleSorts',[]);
		LibTpl::Set('artSortJson',json_encode($artSortArr['data']));
		$artStatus = $LibYpApi->Get('pjl/getArticleStatus',[]);
		LibTpl::Set('artStatus',$artStatus['data']);

		$Params = mvc::$URL_PARAMS;
		$NowPage = isset($Params['page']) && $Params['page'] > 0 ? (int) $Params['page']:1;
		$PerPage = empty($_COOKIE['perPage'])? 20: (int) $_COOKIE['perPage'];

		if($Params['order'] == 'select')
		{
			if(!empty($_POST['artId']))
			{
				foreach ($_POST['artId'] as $key=>$value) 
				{
					if(!LibFc::Int($value)) unset($_POST['artId'][$key]);
				}
				if(!empty($_POST['artId']))
				{
					$where = sprintf(' and art_id in (%s)',implode(',',$_POST['artId']));
				}	
			}
		}else
		{
			$status = isset($Params['artStatus']) && $Params['artStatus'] != 'all'?sprintf(" and art_status='%s'",LibFc::Escape($Params['artStatus'])):'';
			$startTime = isset($Params['startTime']) &&  $Params['startTime']!= '' ?sprintf(" and art_atime >=%s",strtotime(LibFc::Escape($Params['startTime']))):'';

			$endTime = isset($Params['endTime']) &&  $Params['endTime']!= '' ?sprintf(" and art_atime <=%s",strtotime(LibFc::Escape($Params['endTime']))):'';

			$artTitle = isset($Params['artTitle']) && $Params['artTitle']!='' ? " and art_title like '%".LibFc::Escape($Params['artTitle'])."%'" : '';
			switch ($Params['artSeq']) 
			{
				case '0':
					$artSeq = ' order by art_seq asc';
					break;
				case '1':
					$artSeq = ' order by art_seq desc';
					break;
				case '2':
					$artSeq = ' order by art_id asc';
					break;
				case '3':
					$artSeq = ' order by art_id desc';
					break;
			}
			$order = '';
			if(isset($Params['artSortId']) && !empty($Params['artSortId']))
			{	
				$artSortId = rtrim($Params['artSortId'],',');
				$order = sprintf("and art_id in (select arc_art_id from cm_article_category left join cm_category on arc_cat_id=cat_id where arc_cat_id in (%s))",LibFc::Escape(rtrim($Params['artSortId'],',')));
			}
			$keyword = isset($Params['keyword']) && $Params['keyword']!='' ? " and art_title like '%".LibFc::Escape($Params['keyword'])."%' or art_short_des like '%".LibFc::Escape($Params['keyword'])."%'": '';
			$where = !empty($order.$startTime.$endTime.$status.$keyword.$artTitle.$artSeq)?$order.$startTime.$endTime.$status.$keyword.$artTitle.$artSeq:'order by art_seq asc,art_atime desc';
		}

		if (!empty($where))
			$count = $LibYpApi->get('pjl/getArticleByWhere',['field'=>['count(*) as count'],'where'=>$where,'oneRow'=>true]);

		$total = $count['data']['count']>0?$count['data']['count']:0;
		if($total>0)
		{
			if($total>0)
			{
				$artInfoArr = $LibYpApi->Get('pjl/getPageArt',['NowPage'=>$NowPage,'PerPage'=>$PerPage,'where'=>$where]);
				LibTpl::Set('artInfo',$artInfoArr['data']);	
			}
		}
		$page = LibPage::Show($total, $PerPage);
		LibTpl::Set('Page', $page);
		LibTpl::Set('title', '文章列表-跑街令');
		LibTpl::Put();
	}

	/**
	 * @method 文章栏目分类
	 * @author 廖 
	 * @copyright 2017/6/21
	 */
	public function cat()
	{
		LibRule::Check('JC01');
		$LibYpApi = new LibYpApi();

		if($_SERVER['REQUEST_METHOD']=="POST")
		{
			LibRule::Check('JC02');
			$LibYpApi->Get('pjl/saveArtSort',[],['data'=>$_POST['data']]);
			header('Location:cat');	
		}

		$data = $LibYpApi->Get('pjl/getArtColumnSort',[]);
		LibTpl::Set('artArr',$data['data']);
		LibTpl::Set('title', '文章分类-跑街令');
		LibTpl::Put();
	}

	/**
	 * @method    添加文章方法
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function add()
	{
		$Params = mvc::$URL_PARAMS;
		$LibYpApi = new LibYpApi();
		// 入库
		if($_SERVER['REQUEST_METHOD']=="POST")
		{
			if(empty($_POST['artTitle']))
			{
				$error['title'] = '文章开头不能为空';
				goto end;
			}
			if(empty($_POST['artSort']))
			{
				$error['sort'] = '文章分类不能为空';
				goto end;
			}
			if(empty($_POST['artInfo']))
			{
				$error['info'] = '文章内容不能为空';
				goto end;
			}
			$dataArr = [
				'art_status' => $_POST['art_status'] == 'on' ? 1 : 0,
                'art_title'=>$_POST['artTitle'],
                'art_short_des'=>$_POST['desc'],
                'art_txt'=>$_POST['artInfo'],
                'art_seq'=>$_POST['artSeqNum'],
                'art_sys'=>$_POST['art_sys'] == 'on' ? 1 : 0
			];
			//接口保存
			$LibYpApi->Get('pjl/saveArticle',[],['userid'=>$_SESSION['admin_userid'],'art_id'=>$Params['art_id'],'data'=>$dataArr,'artSort'=>$_POST['artSort']]);
		}
		end:
		LibTpl::Set('error',$error);

		// 文章信息
		if(LibFc::Int($Params['art_id']))
		{
			LibRule::Check('JC03');
			$res = $LibYpApi->Get('pjl/getArticleByWhere',['field'=>['*'],'where'=>' and art_id='.$Params['art_id'],'oneRow'=>true]);
			LibTpl::Set('artInfo',$res['data']);

			$res = $LibYpApi->Get('pjl/getArtCategoryByWhere',['field'=>['cat_id,cat_name'],'where'=>' and arc_art_id='.$Params['art_id']]);
			foreach ($res['data'] as $key => $value) 
			{
				$artSortId .=','. $value['cat_id'];
				$artSortName .= ','. $value['cat_name'];
			}
			LibTpl::Set('artSortId',$artSortId);
			LibTpl::Set('artSortName',$artSortName);
		}else
		{
			LibRule::Check('JA02');
		}
		//分类信息
		$artSortArr = $LibYpApi->Get('pjl/getAllArticleSorts',[]);

		LibTpl::Set('artSortJson',json_encode($artSortArr['data']));
		//文章状态枚举
		$artStatus = $LibYpApi->Get('pjl/getArticleStatus',[]);
		LibTpl::Set('artStatus',$artStatus['data']);

		$title = empty($id)?'添加文章-跑街令':'文章编辑-跑街令';
		LibTpl::Set('title', $title);
		$this->HEAD_CSSJS['plugin'][] = 'ueditor';
		LibTpl::Set('HEAD_CSSJS', $this->HEAD_CSSJS);
		LibTpl::Put();
	}

    /**
	 * @method    文章预览
	 * @param     [int]  文章id   
	 * @author     廖
	 * @copyright 2017-07-13
	 * @return    LibFc::ajaxJsonEncode(['status']:ture,..);
	 */
    public function preview()
    {
    	LibRule::Check('JA01');
    	$LibYpApi = new LibYpApi();
		$Params = mvc::$URL_PARAMS;
    	if(isset($Params['artId']) && $Params['artId'] !='')
    	{
    		$artData = $LibYpApi->get('pjl/getArticleByWhere',['field'=>['*'],'where'=> 'and art_id='.$Params['artId'],'oneRow'=>true]);
			LibTpl::Set('artInfo',$artData['data']);
    	}
		LibTpl::Set('title', '文章预览-跑街令');
    	LibTpl::Put();
    }

	/**
	 * @method 文章栏目删除方法
	 * @return 3 删除成功 4删除失败 0 有子类
	 * @author 廖 
	 * @copyright 2017/6/30
	 */
	public function delArtCol()
	{
		LibRule::Check('JC03');
		$catId = (int) $_POST['catId'];
		if ($catId > 0)
		{
			$LibYpApi = new LibYpApi();
			$res = $LibYpApi->Get('pjl/delArticleColumn', ['catId'=>$catId]);
			LibFc::ajaxJsonEncode($res);
		}
		LibFc::ajaxJsonEncode(['status'=>false,'data'=>'参数不正确']);
	}
	
	/**
	 * @method    文章管理
	 * @author    廖
	 * @copyright 2018--08-23
	 * @return    LibFc::ajaxJsonEncode(['status':ture,..]);
	 */
	public function ajaxManageArt()
    {
    	LibRule::Check('JA03');
    	$LibYpApi = new LibYpApi();
    	$res = $LibYpApi->Get('pjl/articleManage',[],['filter'=>$_POST['filter'],'artId'=>$_POST['artId'],'status'=>$_POST['status']]);
    	LibFc::ajaxJsonEncode($res);
    }
    /**
	 * @method    文章管理 删除文章
	 * @author    廖
	 * @copyright 2018--08-23
	 * @return    LibFc::ajaxJsonEncode(['status']:ture,..);
	 */
    public function delArticle()
    {
    	LibRule::Check('JA04');
    	$LibYpApi = new LibYpApi();
    	$res = $LibYpApi->Get('pjl/delArticle',[],['artId'=>$_POST['artId']]);
    	LibFc::ajaxJsonEncode($res);
    }

    /**
     * @method    批量文章分类
     * @author     廖
     * @copyright 2017-07-21
	 * @return    LibFc::ajaxJsonEncode(['status']:ture,..);
     */
    function ajaxChangeArtSort()
    {
    	LibRule::Check('JC02');
    	$LibYpApi = new LibYpApi();
    	$re = $LibYpApi->Get('pjl/changeArtSort',[],['artId'=>$_POST['artId'],'sortId'=>$_POST['sortId'],'order'=>$_POST['order']]);
    	LibFc::ajaxJsonEncode($re);
    }

    function ajaxArtCheck()
    {
    	LibRule::Check('JA01');
    	$artId = trim($_POST['chkIds'],',');
		$notCheck = trim($_POST['notChkIds'],',');
		if(isset($_SESSION['pjlArtChkIds']))
		{
			$_SESSION['pjlArtChkIds'] = array_filter(array_unique(array_merge(explode(',',$artId),$_SESSION['pjlArtChkIds'])));
			if (!empty($notCheck ))
			{
				$notCheck = explode(',', $notCheck);
				foreach ($_SESSION['pjlArtChkIds'] as $k => $v) 
				{
					if(in_array($v, $notCheck))
					{
						unset($_SESSION['pjlArtChkIds'][$k]);
					}
				}	
			}
		}else
		{
			if(!empty($artId)) 
				$_SESSION['pjlArtChkIds'] = explode(',', $artId);
		}
		if(!empty($_SESSION['pjlArtChkIds']))
		{
			$artId = trim(implode(',', $_SESSION['pjlArtChkIds']),',');
			$where = sprintf(' and art_id in (%s)',$artId);
			$LibYpApi = new LibYpApi();
			$res = $LibYpApi->Get('pjl/getArticleByWhere',['field'=>['art_id','art_title'],'where'=>$where]);
		}
		$data = array('status'=>true,'data'=>array('check'=>$res['data']));
		LibFc::ajaxJsonEncode($data);
    }
    /*
	ajax更新选中产品的session
	*/
	function updateCheck()
	{
		if(!is_array($_POST['artId']))
		{
			$artDelCheId = trim($_POST['artId'],',');
			$artDelCheId = [$artDelCheId];
		}
		else
		{
			$artDelCheId = $_POST['artId'];
		}
		if(isset($_SESSION['pjlArtChkIds']))
		{
			foreach ($_SESSION['pjlArtChkIds'] as $k => $v) 
			{
				if(in_array($v, $artDelCheId))
				{
					unset($_SESSION['pjlArtChkIds'][$k]);
				}
			}
		}
		LibFc::ajaxJsonEncode(array('status'=>true,'data'=>true));
	}
	/**
	  * @method article图片上传
	  * @author liao
	  * @copyright 2018/3/7
	  */
	function uploadImg()
	{
		$Params = mvc::$URL_PARAMS;
		$OthFileCenter = new OthFileCenter();
		$site = isset($_REQUEST['site']) ? strtolower(trim($_REQUEST['site'])): 'pjl';
		$dataArr = ['cate'=>$_REQUEST['cate'], 'file'=>$_FILES['upfile']];
		$fileRes = $OthFileCenter->upload($dataArr, $site);
		if($fileRes['status'])
		{
			$dataArr=[
				"state"=>"SUCCESS",
				"url"=>str_replace($fileRes['data']['small'], '', $fileRes['data']['url']),
				"title"=>$fileRes['data']['name'].'.'.$fileRes['data']['ext'],
    			"original"=>$fileRes['data']['name'].'.'.$fileRes['data']['ext']
			];
			echo json_encode($dataArr);
			die;
		}
		echo json_encode(["state"=>"ERROR",]);
	}

	/**
     * @method    ajax单个文章操作文章分类
     * @author     廖
     * @copyright 2017-07-24
     * @return   LibFc::ajaxJsonEncode(['status']:ture,..);
     */
    function ajaxSaveArtSortOne()
    {
    	LibRule::Check('JA03');
    	$LibYpApi = new LibYpApi();
    	$res = $LibYpApi->Get('pjl/changeArtSortOne',[],['artId'=>$_POST['artId'],'artSortId'=>$_POST['artSortId'],'type'=>$_POST['type']]);
    	LibFc::ajaxJsonEncode($res);
    }
}