<?php
namespace model;
use \model;
/**
 * Class upload
 * @package model
 */
class upload extends model
{
	//允许处理的字段
	public $canSetTable = [
		'dt_examine'=>[
			'keyfiled'=>'exa_id',
			'filed'=>['exa_file'],
		],
		'dt_drug'=>[
			'keyfiled'=>'drug_id',
			'filed'=>['drug_img'],
		],
		'dt_medicaldoc'=>[
			'keyfiled'=>'mdoc_id',
			'filed'=>['mdoc_file'],
		],
	];
	 
	 /**检测上传
     * @param 
     * @return $params ['save'=>0表示不检测]
     */
	public function uploadCheck($filecount,$reqfilename,$reqfilesize,$uploadID,$extname,$category,$item,$params)
	{
		if($params['save'] === 0) return true;
		if(empty($params['id']) || empty($params['table']) || empty($params['filed'])) exitJson('参数缺失-uploadCheck');
		if(empty($this->canSetTable[$params['table']]) || !in_array($params['filed'], $this->canSetTable[$params['table']]['filed'])) exitJson('上传配置缺失');

		$table = $params['table'];
		$keyfiled = $this->canSetTable[$table]['keyfiled'];
		$filed = $params['filed'];
		$id = $params['id'];
		$cfg = \mvc::$cfg['upload']['category'][$category]['items'][$item];
		$count = 0;
		if($cfg['maxfile'] > 1)
		{
			$photos = $this->db->get($table, $filed,[$keyfiled=>$id]);
			if($photos){
				$temp = json_decode($photos);
				if(is_array($temp))
					$count = count($temp);
			}
			if( ($count+1) > $cfg['maxfile']){
				return lg('超出此项的最大允许的文件数量') .','. lg('最大允许').' '.$cfg['maxfile'].' '.lg('个文件');
			}else{
				return true;
			}
		}
		return true;
	}


    /**接收上传的图片处理
     * @param 
     * @return  $params ['save'=>0表示不变更数据]
     */
	public function uploadGet($fileid,$filename,$dir,$filebase,$extname,$category,$item,$params)
	{
		if($cfg['tojpeg']) $extname = 'jpg';
		$filedata = [
			'fileid'=>$fileid,
			'filename'=>$dir.'/'.$filebase.'.'.$extname,
			'orgname'=>$params['reqfilename']
		];
		if($params['save'] === 0) return $filedata;
		if(empty($params['id']) || empty($params['table']) || empty($params['filed'])) exitJson('参数缺失-uploadGet');
		if(empty($this->canSetTable[$params['table']]) || !in_array($params['filed'], $this->canSetTable[$params['table']]['filed'])) exitJson('上传配置缺失');

		$table = $params['table'];
		$keyfiled = $this->canSetTable[$table]['keyfiled'];
		$filed = $params['filed'];
		$id = $params['id'];
		$cfg = \mvc::$cfg['upload']['category'][$category]['items'][$item];
		
		//多图
		if($cfg['maxfile'] > 1)
		{
			$photos = $this->db->get($table, $filed,[$keyfiled=>$id]);
			if(empty($photos)) $photos = '[]';
			$arr = json_decode($photos);
			if(!is_array($arr)) $arr = [];
			array_push($arr, $filedata);
			$this->db->update($table,[$filed=>json_encode($arr)],[$keyfiled=>$id]);
		}
		else
		{
			$photos = $this->db->get($table, $filed,[$keyfiled=>$id]);
			if(empty($photos)) $photos = '[]';
			$photos = json_decode($photos);
			$fileObj = new \model\files();
			foreach($photos as $photo){
			    $fileObj->delete($photo->fileid,true);
			}
			$arr = [$filedata];
			$this->db->update($table,[$filed=>json_encode($arr)],[$keyfiled=>$id]);
		}
		return $filedata;
	}
}