<?php
/**
*	此文件是流程模块【wordxie.文档协作】对应控制器接口文件。
*/ 
class mode_wordxieClassAction extends inputAction{
	
	/**
	*	重写函数：保存前处理，主要用于判断是否可以保存
	*	$table String 对应表名
	*	$arr Array 表单参数
	*	$id Int 对应表上记录Id 0添加时，大于0修改时
	*	$addbo Boolean 是否添加时
	*	return array('msg'=>'错误提示内容','rows'=> array()) 可返回空字符串，或者数组 rows 是可同时保存到数据库上数组
	*/
	protected function savebefore($table, $arr, $id, $addbo){
		
	}
	
	/**
	*	重写函数：保存后处理，主要保存其他表数据
	*	$table String 对应表名
	*	$arr Array 表单参数
	*	$id Int 对应表上记录Id
	*	$addbo Boolean 是否添加时
	*/	
	protected function saveafter($table, $arr, $id, $addbo){
		$wtype 		= $arr['wtype'];
		$filename 	= $arr['name'].'.'.$wtype;
		if(!$addbo){
			$ofrs = m('file')->getone($this->rs['fileid']);
			if(!$ofrs){
				$addbo=true;
			}else{
				$filepath = $ofrs['filepath'];
				if(substr($filepath,0,4)!='http' && !file_exists($filepath))$addbo=true;
			}
		}
		if($addbo){
			$filepath = ''.UPDIR.'/'.date('Y-m').'/workxie'.$id.'.'.$wtype.'';
			$this->rock->createtxt($filepath, base64_decode($this->creatework($wtype)));
			$fileid = m('file')->insert(array(
				'filename' => $filename,
				'fileext' => $wtype,
				'filesize' => 1000,
				'filetype' => 'application/msword',
				'filesizecn' => '10KB',
				'filepath' => $filepath,
				'optid' => $this->adminid,
				'optname' => $this->adminname,
				'adddt' => $this->rock->now,
				'ip' => $this->rock->ip,
				'web' => $this->rock->web,
				'mtype' => $table,
				'mknum' => $table,
				'mid' => $id,
			));
			m($table)->update(array(
				'fileid' => $fileid
			), $id);
		}else{
			$fileid = (int)arrvalue($this->rs, 'fileid','0');
			m('file')->update("`filename`='$filename'", "`id`='$fileid'");
		}
	}
	
	//上传保存好文件
	public function savefileAjax()
	{
		$fileid = (int)$this->get('upfileid');
		$id 	= (int)$this->get('id');
		return m('flow')->initflow('wordxie', $id, false)->savefile($fileid);
	}
	
	private function creatework($lx){
		$workarr = array(
			'docx' => '[encoded data, 13672 characters]',
			'xlsx' => '[encoded data, 13172 characters]',
			'pptx'=>'[encoded data, 39524 characters]'
		);
		return $workarr[$lx];
	}
}	
			