183 lines
4.5 KiB
PHP
Executable File
183 lines
4.5 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\admin\controller;
|
|
|
|
/**
|
|
* 支付宝小程序管理
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 0.0.1
|
|
* @datetime 2016-12-01T21:51:08+0800
|
|
*/
|
|
class AppMiniAlipayList extends Common
|
|
{
|
|
private $application_name;
|
|
private $old_path;
|
|
private $new_path;
|
|
|
|
/**
|
|
* 构造方法
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 0.0.1
|
|
* @datetime 2016-12-03T12:39:08+0800
|
|
*/
|
|
public function __construct()
|
|
{
|
|
// 调用父类前置方法
|
|
parent::__construct();
|
|
|
|
// 登录校验
|
|
$this->Is_Login();
|
|
|
|
// 权限校验
|
|
$this->Is_Power();
|
|
|
|
// 当前小程序包名称
|
|
$this->application_name = 'alipay';
|
|
|
|
// 原包地址/操作地址
|
|
$this->old_path = ROOT_PATH.'AppMini'.DS.'Old'.DS.$this->application_name;
|
|
$this->new_path = ROOT_PATH.'AppMini'.DS.'New'.DS.$this->application_name;
|
|
}
|
|
|
|
/**
|
|
* [Index 列表]
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 0.0.1
|
|
* @datetime 2016-12-06T21:31:53+0800
|
|
*/
|
|
public function Index()
|
|
{
|
|
$this->assign('data', $this->GetDataList());
|
|
$this->display('Index');
|
|
}
|
|
|
|
/**
|
|
* [GetDataList 获取小程序生成列表]
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 0.0.1
|
|
* @datetime 2017-05-10T10:24:40+0800
|
|
*/
|
|
private function GetDataList()
|
|
{
|
|
$result = array();
|
|
if(is_dir($this->new_path))
|
|
{
|
|
if($dh = opendir($this->new_path))
|
|
{
|
|
while(($temp_file = readdir($dh)) !== false)
|
|
{
|
|
if($temp_file != '.' && $temp_file != '..')
|
|
{
|
|
$file_path = $this->new_path.DS.$temp_file;
|
|
$url = __MY_URL__.'AppMini'.DS.'New'.DS.$this->application_name.DS.$temp_file;
|
|
$result[] = [
|
|
'name' => $temp_file,
|
|
'url' => substr($url, -4) == '.zip' ? $url : '',
|
|
'size' => FileSizeByteToUnit(filesize($file_path)),
|
|
'time' => date('Y-m-d H:i:s', filectime($file_path)),
|
|
];
|
|
}
|
|
}
|
|
closedir($dh);
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* [Created 生成]
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 0.0.1
|
|
* @datetime 2017-02-05T20:12:30+0800
|
|
*/
|
|
public function Created()
|
|
{
|
|
// 配置内容
|
|
$app_mini_alipay_title = MyC('common_app_mini_alipay_title');
|
|
$app_mini_alipay_describe = MyC('common_app_mini_alipay_describe');
|
|
if(empty($app_mini_alipay_title) || empty($app_mini_alipay_describe))
|
|
{
|
|
$this->ajaxReturn('配置信息不能为空', -1);
|
|
}
|
|
|
|
// 目录不存在则创建
|
|
\base\FileUtil::CreateDir($this->new_path);
|
|
|
|
// 复制包目录
|
|
$new_dir = $this->new_path.DS.date('YmdHis');
|
|
if(\base\FileUtil::CopyDir($this->old_path, $new_dir) != true)
|
|
{
|
|
$this->ajaxReturn('项目包复制失败', -2);
|
|
}
|
|
|
|
// 校验基础文件是否存在
|
|
if(!file_exists($new_dir.DS.'app.js') || !file_exists($new_dir.DS.'app.json'))
|
|
{
|
|
$this->ajaxReturn('包基础文件不存在,请重新生成', -3);
|
|
}
|
|
|
|
// 替换内容
|
|
// app.js
|
|
file_put_contents($new_dir.DS.'app.js', str_replace(['{{request_url}}', '{{application_title}}', '{{application_describe}}'], [__MY_URL__, $app_mini_alipay_title, $app_mini_alipay_describe], file_get_contents($new_dir.DS.'app.js')));
|
|
if($status === false)
|
|
{
|
|
$this->ajaxReturn('基础配置替换失败', -4);
|
|
}
|
|
|
|
// app.json
|
|
$status = file_put_contents($new_dir.DS.'app.json', str_replace(['{{application_title}}'], [$app_mini_alipay_title], file_get_contents($new_dir.DS.'app.json')));
|
|
if($status === false)
|
|
{
|
|
$this->ajaxReturn('基础配置替换失败', -4);
|
|
}
|
|
|
|
// 生成压缩包
|
|
$zip = new \base\ZipFolder();
|
|
if(!$zip->zip($new_dir.'.zip', $new_dir))
|
|
{
|
|
$this->ajaxReturn('压缩包生成失败', -100);
|
|
}
|
|
|
|
// 生成成功删除目录
|
|
\base\FileUtil::UnlinkDir($new_dir);
|
|
|
|
$this->ajaxReturn('生成成功', 0);
|
|
}
|
|
|
|
/**
|
|
* [Delete 删除包]
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 0.0.1
|
|
* @datetime 2016-12-09T21:13:47+0800
|
|
*/
|
|
public function Delete()
|
|
{
|
|
// 是否ajax
|
|
if(!IS_AJAX)
|
|
{
|
|
$this->error('非法访问');
|
|
}
|
|
|
|
// 删除压缩包
|
|
$path = $this->new_path.DS.I('id');
|
|
if(substr($path, -4) == '.zip')
|
|
{
|
|
$status = \base\FileUtil::UnlinkFile($this->new_path.DS.I('id'));
|
|
} else {
|
|
$status = \base\FileUtil::UnlinkDir($this->new_path.DS.I('id'));
|
|
}
|
|
if($status)
|
|
{
|
|
$this->ajaxReturn('删除成功');
|
|
} else {
|
|
$this->ajaxReturn('删除失败或资源不存在', -100);
|
|
}
|
|
}
|
|
}
|
|
?>
|