|
|
@@ -1,12 +1,10 @@
|
|
|
<?php
|
|
|
namespace app\admin\controller\system;
|
|
|
-
|
|
|
use app\admin\controller\AuthController;
|
|
|
use service\FormBuilder as Form;
|
|
|
use think\Request;
|
|
|
use service\JsonService as Json;
|
|
|
use \tp5er\Backup;
|
|
|
-
|
|
|
/**
|
|
|
* 文件校验控制器
|
|
|
* Class SystemDatabackup
|
|
|
@@ -19,7 +17,7 @@ class SystemDatabackup extends AuthController
|
|
|
public function _initialize()
|
|
|
{
|
|
|
$config = array(
|
|
|
- 'path' => './backup/data/',
|
|
|
+ 'path' => PUBILC_PATH.'backup/data/',
|
|
|
//数据库备份路径
|
|
|
'part' => 20971520,
|
|
|
//数据库备份卷大小
|
|
|
@@ -29,15 +27,12 @@ class SystemDatabackup extends AuthController
|
|
|
);
|
|
|
$this->DB = new Backup($config);
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* 数据类表列表
|
|
|
*/
|
|
|
public function index(){
|
|
|
-
|
|
|
return $this->fetch();
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* 获取数据库表
|
|
|
* @param Request|null $request
|
|
|
@@ -47,7 +42,6 @@ class SystemDatabackup extends AuthController
|
|
|
$db= $this->DB;
|
|
|
return Json::result(0,'sucess',$db->dataList(),count($db->dataList()));
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* 查看表结构
|
|
|
* @param Request|null $request
|
|
|
@@ -56,7 +50,6 @@ class SystemDatabackup extends AuthController
|
|
|
{
|
|
|
parent::__construct($request);
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* 优化表
|
|
|
* @param Request|null $request
|
|
|
@@ -68,7 +61,6 @@ class SystemDatabackup extends AuthController
|
|
|
$res = $db->optimize($tables);
|
|
|
return Json::successful($res ? '优化成功':'优化失败');
|
|
|
}
|
|
|
-
|
|
|
/**修复表
|
|
|
* @param Request|null $request
|
|
|
*/
|
|
|
@@ -109,18 +101,68 @@ class SystemDatabackup extends AuthController
|
|
|
$data[$key]['compress'] = $t['compress'];
|
|
|
$data[$key]['time'] = date('Y-m-d H:i:s',$t['time']);
|
|
|
}
|
|
|
-
|
|
|
- return Json::result(0,'sucess',$data,count($data));
|
|
|
- } /**删除备份记录表
|
|
|
+ return Json::result(200,'sucess',$data,count($data));
|
|
|
+ }
|
|
|
+ /**删除备份记录表
|
|
|
* @param Request|null $request
|
|
|
*/
|
|
|
public function delFile(Request $request = null)
|
|
|
{
|
|
|
$feilname = strtotime($request->post('feilname'));
|
|
|
- echo $feilname;
|
|
|
-
|
|
|
-
|
|
|
$files = $this->DB->delFile($feilname);
|
|
|
- // return Json::result(0,'sucess',$data,count($data));
|
|
|
+ return Json::result(200,'sucess');
|
|
|
+ }
|
|
|
+ /**倒入备份记录表
|
|
|
+ * @param Request|null $request
|
|
|
+ */
|
|
|
+ public function import(Request $request = null)
|
|
|
+ {
|
|
|
+ $part = null; $start = null;
|
|
|
+ $time = strtotime($request->post('feilname'));
|
|
|
+ $db = $this->DB;
|
|
|
+ if(is_numeric($time) && is_null($part) && is_null($start)){
|
|
|
+ $list= $db->getFile('timeverif',$time);
|
|
|
+ if(is_array($list)){
|
|
|
+ session::set('backup_list',$list);
|
|
|
+ $this->success('初始化完成!','',array('part' =>1,'start'=>0));
|
|
|
+ }else{
|
|
|
+ $this->error('备份文件可能已经损坏,请检查!');
|
|
|
+ }
|
|
|
+ }else if(is_numeric($part)&&is_numeric($start)){
|
|
|
+ $list=session::get('backup_list');
|
|
|
+ $start=$db->setFile($list)->import($start);
|
|
|
+ if(false===$start){
|
|
|
+ $this->error('还原数据出错!');
|
|
|
+ }elseif(0===$start){
|
|
|
+ if(isset($list[++$part])){
|
|
|
+ $data=array('part'=>$part,'start'=>0);
|
|
|
+ $this->success("正在还原...#{$part}",'',$data);
|
|
|
+ }else{
|
|
|
+ session::delete('backup_list');
|
|
|
+ $this->success('还原完成!');
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $data=array('part'=>$part,'start'=>$start[0]);
|
|
|
+ if($start[1]){
|
|
|
+ $rate=floor(100*($start[0]/$start[1]));
|
|
|
+ $this->success("正在还原...#{$part}({$rate}%)",'',$data);
|
|
|
+ }else{
|
|
|
+ $data['gz']=1;
|
|
|
+ $this->success("正在还原...#{$part}",'',$data);
|
|
|
+ }
|
|
|
+ $this->success("正在还原...#{$part}",'');
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $this->error('参数错误!');
|
|
|
+ }
|
|
|
+ // return Json::result(0,'sucess',$data,count($data));
|
|
|
+ }
|
|
|
+ /**下载备份记录表
|
|
|
+ * @param Request|null $request
|
|
|
+ */
|
|
|
+ public function downloadFile(Request $request = null)
|
|
|
+ {
|
|
|
+ $feilname = strtotime($request->post('feilname'));
|
|
|
+ $this->DB->downloadFile($feilname);
|
|
|
}
|
|
|
}
|