<?php
class articleAction extends baseAction
{	
	private $article;

	/**
	 * @method    文章首页
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function index()
	{
		LibRule::Check('AL01');
		LibTpl::Set('title','文章列表-跑街的');
		LibTpl::Put();

	}


	/**
	 * @method    文章筛选框
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function artLeft()
	{
		LibRule::Check('AL01');
		$Params = mvc::$URL_PARAMS;
		$B2cArticle = new B2cArticle();
		$artSortArr = $B2cArticle->jsonArtSort();
		$artStatus = $B2cArticle->getArticleStatus();
		LibTpl::Set('artStatus',$artStatus);
		LibTpl::Set('artSortJson',$artSortArr);
		LibTpl::Put();
	}


	/**
	 * @method    文章列表
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function lists()
	{
		LibRule::Check('AL01');
		$B2cArticle = new B2cArticle();
		$artSortArr = $B2cArticle->jsonArtSort();
		LibTpl::Set('artSortJson',$artSortArr);
		$artStatus = $B2cArticle->getArticleStatus();
		LibTpl::Set('artStatus',$artStatus);
		$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']))
				{
					$order = sprintf(' and art_id in (%s)',implode(',',$_POST['artId']));
					$re = $B2cArticle->getPageArt($NowPage,$PerPage,$order);
					LibTpl::Set('artInfo',$re['data']);
				}	
			}
		}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_add_time >=%s",strtotime(LibFc::Escape($Params['startTime']))):'';
			$endTime = isset($Params['endTime']) &&  $Params['endTime']!= '' ?sprintf(" and art_add_time <=%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,art_add_time desc';
					break;
				case '1':
					$artSeq = ' order by art_seq desc,art_add_time desc';
					break;
				case '2':
					$artSeq = ' order by art_id asc';
					break;
				case '3':
					$artSeq = ' order by art_id desc';
					break;
				case '4':
					$artSeq = ' order by art_last_time asc';
					break;
				case '5':
					$artSeq = ' order by art_last_time 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_keyword like '%".LibFc::Escape($Params['keyword'])."%' or art_title like '%".LibFc::Escape($Params['keyword'])."%'": '';

			$count = $B2cArticle->get('cm_article',['count(*) as count'],sprintf("%s",$where),true);

			$where = !empty($order.$startTime.$endTime.$status.$keyword.$artTitle.$artSeq)?$order.$startTime.$endTime.$status.$keyword.$artTitle.$artSeq:'order by art_seq asc,art_add_time desc';
			if($count['data']['count']>0)
			{
				$total = $count['data']['count']>0?$count['data']['count']:0;
				if($total>0)
				{
					$artInfoArr = $B2cArticle->getPageArt($NowPage,$PerPage,$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()
	{
		$B2cArticle = new B2cArticle();

		if($_SERVER['REQUEST_METHOD']=="POST")
		{
			$data = $_POST['data'];
			$B2cArticle->saveArtSort($data);
			header('Location:cat');	
		}

		LibRule::Check('AS01');
		$data = $B2cArticle->columnSelect([],'');
		LibTpl::Set('artArr',$data['data']);
		LibTpl::Set('title', '文章分类-跑街的');
		LibTpl::Put();
	}

	/**
	 * @method    添加文章方法
	 * @author     廖
	 * @copyright 2017-07-13
	 */
	public function add()
	{
		$Params = mvc::$URL_PARAMS;
		$B2cArticle = new B2cArticle();
		// 权限
		if(!empty($Params['artId']) && LibFc::Int($id = $Params['artId']))
			LibRule::Check('AL03');
		else
			LibRule::Check('AL02');
		// 入库
		if($_SERVER['REQUEST_METHOD']=="POST")
		{
			if(empty($_POST['artTitle']))
			{
				$error['title'] = '文章开头不能为空';
				goto end;
			}
			if(empty($_POST['artSortId']))
			{
				$error['sort'] = '文章分类不能为空';
				goto end;
			}
			if(empty($_POST['artInfo']))
			{
				$error['info'] = '文章内容不能为空';
				goto end;
			}

			$_POST['artId'] = $Params['artId'];
			$B2cArticle->saveArtNew($_SESSION['admin_userid'],$_POST);
		}
		end:
		LibTpl::Set('error',$error);

		// 文章信息
		if(!empty($id))
		{
			$res = $B2cArticle->get('cm_article',['*'],' and art_id='.$id,true);
			LibTpl::Set('artInfo',$res['data']);
			$res = $B2cArticle->get('cm_article_category left join cm_category on arc_cat_id=cat_id',['cat_id,cat_name'],' and arc_art_id='.$id);
			for($i=0;$i<count($res['data']);$i++)
			{
				$artSortId .=','. $res['data'][$i]['cat_id'];
				$artSortName .= ','. $res['data'][$i]['cat_name'];
			}
			LibTpl::Set('artSortId',$artSortId);
			LibTpl::Set('artSortName',$artSortName);
		}
		//分类信息
		$artSortArr = $B2cArticle->jsonArtSort();
		LibTpl::Set('artSortJson',$artSortArr);
		//文章状态枚举
		$artStatus = $B2cArticle->getArticleStatus();
		LibTpl::Set('artStatus',$artStatus);
		//文章分类
		$artSortArr = $B2cArticle->columnSelect([],'');
		LibTpl::Set('artsort',$artSortArr['data']);
		// meta
		$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()
    {
    	$B2cArticle = new B2cArticle();
		$Params = mvc::$URL_PARAMS;
    	if(isset($Params['artId']) && $Params['artId'] !='')
    	{
    		$artData = $B2cArticle->get('cm_article',['*'],' and art_id='.$Params['artId'],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('AS04');
		$B2cArticle = new B2cArticle();
		$re = $B2cArticle->get('cm_category_tree',['count(*) as count'],' and cat_pcat_id='.$_POST['catId'],true);
		$res = $B2cArticle->get('cm_article_category',['count(*) as count'],' and arc_cat_id='.$_POST['catId'],true);
		if($re['data']['count'] == 0 && $res['data']['count'] == 0)
		{
			$delRe = $B2cArticle->delArtCol($_POST['catId']);
			if($delRe['status'])
			{
				LibFc::ajaxJsonEncode(['status'=>true,'data'=>'3']);//删除成功
			}
			else
			{
				LibFc::ajaxJsonEncode(['status'=>false,'data'=>'删除失败']);//删除失败
			}
		}else
		{
			LibFc::ajaxJsonEncode(['status'=>false,'data'=>'分类下有文章']);//有文章|子类不给删除
		}
	}
	
	/**
	 * @method    改变文章的状态
	 * @return    [type]           [description]
	 * @author     廖
	 * @copyright 2017-07-13
	 * @return    LibFc::ajaxJsonEncode(['status']:ture,..);
	 */
	public function ajaxManageArt()
    {
    	// 修改状态
    	if($_POST['artId'] != '' && $_POST['order'] == 'status')
		{
			LibRule::Check('AL03');
			$B2cArticle = new B2cArticle();
			if($_POST['orderType'] == 'fail')
			{
				$file = array('art_status'=>$_POST['status'],'art_fail_msg'=>$_POST['failMsg']);
			}else
			{
				$file = array('art_status'=>$_POST['status'],'art_fail_msg'=>'');
			}
			$idsArr = explode(',',trim($_POST['artId'],','));
			$re = $B2cArticle->changeArtSta($file,$idsArr);
	        LibFc::ajaxJsonEncode($re);
	    }
	    //删除文章
	    if($_POST['artId'] !='' && $_POST['order'] == '0')
		{
			LibRule::Check('AL04');
			$B2cArticle = new B2cArticle();
			$idsArr = explode(',',trim($_POST['artId'],','));
			$re = $B2cArticle->delArt($idsArr);
			if(!empty($re['data']))
			{
				if(isset($_SESSION['artChkIds']))
				{
					foreach ($_SESSION['artChkIds'] as $k => $v) 
					{
						if(in_array($v,$re['data']))
						{
							unset($_SESSION['artChkIds'][$k]);
						}
					}
				}
			}
			LibFc::ajaxJsonEncode($re);
	    }
	    if($_POST['artId'] !='' && $_POST['order'] == 'seq')
		{
			LibRule::Check('AL03');
			$B2cArticle = new B2cArticle();
			$re = $B2cArticle->Set('cm_article',['art_seq'=>$_POST['seq']],'and art_id='.$_POST['artId']);
			LibFc::ajaxJsonEncode($re);
	    }
	   LibFc::ajaxJsonEncode(['status'=>false, 'data'=>'参数不正确']);
    }

    /**
     * @method    批量转移文章分类
     * @author     廖
     * @copyright 2017-07-21
	 * @return    LibFc::ajaxJsonEncode(['status']:ture,..);
     */
    function ajaxChangeArtSort()
    {
    	LibRule::Check('AL03');
    	$B2cArticle = new B2cArticle();
    	$artIdArr = explode(',',trim($_POST['artId'],','));
    	$sortIdArr = explode(',',trim($_POST['sortId'],','));
    	$re = $B2cArticle->changeSort($artIdArr,$sortIdArr);
    	if($re['status'])
    	{		
    		LibFc::ajaxJsonEncode($re);
    	}else
    	{
    		LibFc::ajaxJsonEncode(['status'=>false,'data'=>'参数不正确']);
    	}
    }
    /**
     * @method    ajax单个文章操作文章分类
     * @author     廖
     * @copyright 2017-07-24
     * @return   LibFc::ajaxJsonEncode(['status']:ture,..);
     */
    function ajaxSaveArtSortOne()
    {
    	LibRule::Check('AL03');
    	$B2cArticle = new B2cArticle();
    	if(LibFc::int($_POST['artId']) && LibFc::int($_POST['artSortId']) && $_POST['type'] == 'save')
    	{
    		$re = $B2cArticle->Add('cm_article_category',['arc_art_id'=>$_POST['artId'],'arc_cat_id'=>$_POST['artSortId']]);
    		if($re['status'])
	    	{
	    		LibFc::ajaxJsonEncode($re);
	    	}else
	    	{
	    		LibFc::ajaxJsonEncode(['status'=>false,'data'=>'参数不正确']);
	    	}

    	}
    	if(LibFc::int($_POST['artId']) && LibFc::int($_POST['artSortId']) && $_POST['type'] == 'del')
    	{
    		$re = $B2cArticle->del('cm_article_category',sprintf(' and arc_art_id=%d and arc_cat_id=%d',$_POST['artId'],$_POST['artSortId']));
    		if($re['status'])
	    	{
	    		LibFc::ajaxJsonEncode($re);
	    	}else
	    	{
	    		LibFc::ajaxJsonEncode(['status'=>false,'data'=>'参数不正确']);
	    	}

    	}
    }
    function ajaxArtCheck()
    {
    	$artId = trim($_POST['chkIds'],',');
		$notCheck = trim($_POST['notChkIds'],',');
		if(isset($_SESSION['artChkIds']))
		{
			$_SESSION['artChkIds'] = array_filter(array_unique(array_merge(explode(',',$artId),$_SESSION['artChkIds'])));
			foreach ($_SESSION['artChkIds'] as $k => $v) 
			{
				if(in_array($v, explode(',', $notCheck)))
				{
					unset($_SESSION['artChkIds'][$k]);
				}
			}
		}else
		{
			if(!empty($artId)) $_SESSION['artChkIds'] = explode(',', $artId);
		}
		$B2cArticle=new B2cArticle();
		$artId = trim(implode(',', $_SESSION['artChkIds']),',');
		if(!empty($artId))
		{
			$where = sprintf(' and art_id in (%s)',$artId);
			$res = $B2cArticle->get('cm_article',['art_id','art_title'],$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['artChkIds']))
		{
			foreach ($_SESSION['artChkIds'] as $k => $v) 
			{
				if(in_array($v, $artDelCheId))
				{
					unset($_SESSION['artChkIds'][$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'])): 'b2c';
		$dataArr = ['cate'=>$_REQUEST['cate'], 'file'=>$_FILES['upfile']];
		if($site == 'b2c')
		{

			$dataArr['path'] = 'article/';
			$dataArr['spi_style']=1;

		}
		$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",]);
	}
}