<?php
namespace model;
use \model;
/**
 * Class uploadXls
 * @package model
 */
class uploadXls extends model
{
	 /**检测上传
     * @param 
     * @return
     */
	public function uploadCheck($filecount,$reqfilename,$reqfilesize,$uploadID,$extname,$category,$item,$params)
	{
		$cfg = \mvc::$cfg['upload']['category'][$category]['items'][$item];
		if(!in_array($extname,$cfg['type'])){
		    return lg('仅支持'). implode(',',$cfg['type']);
		}
		return true;
	}


    /**接收上传的图片处理
     * @param 
     * @return  $params ['save'=>0表示不变更数据]
     */
	public function uploadGet($fileid,$filename,$dir,$filebase,$extname,$category,$item,$params)
	{
		ini_set('memory_limit', \mvc::$cfg['upload']['memory_limit']);
		set_time_limit(0);
		ignore_user_abort(true);
		
		$type = $params['type'];
		$op = !empty($params['op']) ? $params['op'] : 'add';
		if(empty($type)) {
			throw new \Exception ( '导入类型丢失' );
		}
		$obj = makeOne('model\\import\\'.$type);
		$params['fileid'] = $fileid;
		$params['filename'] = $filename;
		$obj->params = $params;
		if($op=='add'){
		    $result = $obj->import($filename,false);
		}else if($op=='update'){
		    $result = $obj->importUpdate($filename);
		}else if($op=='delete'){
		    $result = $obj->importDelete($filename);
		}
		$files = new files();
		$files->delete($fileid);
		$url = '';
		$title = $obj->title.' 导入完成';
		$body = $title;
		if($obj->import->outfilename!='' || $obj->outfilename!=''){
    		$file = $obj->import->outfilename? $obj->import->outfilename: $obj->outfilename;
			$t = explode('/import/',$file);
    		$url = \mvc::$cfg['path']['files'].'/import/'.$t[1];
    		$title = $obj->title.' 导入失败';
    		$body = "点击下载 ".$obj->title." 导入结果";
		}
		//消息记录与在线提醒
		$msg = [
			'amsg_title'=> $title,
			'amsg_body'=> $body,
			'amsg_url'=> $url,
			'amsg_urltitle'=> basename($url),
		];
		makeOne(\model\message::class)->send([getOpuser()],$msg);
		socketSendMsg([getOpuser()],$msg);
		return ['data'=>$result,'downloadUrl'=>$url];
	}


	/**指定目录导入数据
     * @param 
     * @return 
     */
	public function uploadByFile($impcode)
	{
		ini_set('memory_limit', \mvc::$cfg['upload']['memory_limit']);
		set_time_limit(0);
		ignore_user_abort(true);

		if(empty($impcode)) exitJson('导入类型丢失');

		$filename = \mvc::$cfg['dir']['files'].'/importServer/'.$impcode.'.csv';
		if(!file_exists($filename)){
    		$filename = \mvc::$cfg['dir']['files'].'/importServer/'.$impcode.'.xlsx';
    		if(!file_exists($filename)){
    		    exitJson(lg('导入文件不存在 ').'<br>'. $filename.'<br>'.lg('注意:区分大小写'));
    		}
		}

		$obj = makeOne('model\\import\\'.$impcode);
		$result = $obj->import($filename,true);
		$url = '';
		$title = $obj->title.' 导入完成';
		$body = $title;
		if($obj->import->outfilename!=''){
    		$t = explode('/importServer/',$obj->import->outfilename);
    		$url = \mvc::$cfg['path']['files'].'/importServer/'.$t[1];
    		$title = $obj->title.' 导入失败';
    		$body = "点击下载 ".$obj->title." 导入结果";
		}
		//消息记录与在线提醒
		$msg = [
			'amsg_title'=> $title,
			'amsg_body'=> $body,
			'amsg_url'=> $url,
			'amsg_urltitle'=> basename($url),
		];
		makeOne(\model\message::class)->send([getOpuser()],$msg);
		socketSendMsg([getOpuser()],$msg);
		return ['data'=>$result,'downloadUrl'=>$url];
	}
}