308 lines
11 KiB
PHP
308 lines
11 KiB
PHP
<?php
|
|
|
|
namespace addons\manystore;
|
|
|
|
use app\common\library\Menu;
|
|
use addons\manystore\library\ManystoreMenu;
|
|
use think\Addons;
|
|
use think\Exception;
|
|
|
|
/**
|
|
* 插件
|
|
*/
|
|
class Manystore extends Addons
|
|
{
|
|
|
|
protected $menu = [
|
|
[
|
|
'name' => 'manystore',
|
|
'title' => '商家管理',
|
|
'icon' => 'fa fa-list',
|
|
'remark' => 'Rule tips',
|
|
'sublist' => [
|
|
[
|
|
'name' => 'manystore/index',
|
|
'title' => '商家列表',
|
|
'icon' => 'fa fa-list',
|
|
'sublist' => [
|
|
['name' => 'manystore/index/index', 'title' => 'View'],
|
|
['name' => 'manystore/index/add', 'title' => 'Add'],
|
|
['name' => 'manystore/index/edit', 'title' => 'Edit'],
|
|
['name' => 'manystore/index/del', 'title' => 'Delete'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'manystore/rule',
|
|
'title' => '商家菜单规则',
|
|
'icon' => 'fa fa-list',
|
|
'sublist' => [
|
|
['name' => 'manystore/rule/index', 'title' => 'View'],
|
|
['name' => 'manystore/rule/add', 'title' => 'Add'],
|
|
['name' => 'manystore/rule/edit', 'title' => 'Edit'],
|
|
['name' => 'manystore/rule/del', 'title' => 'Delete'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'manystore/config_group',
|
|
'title' => '商家系统配置分组',
|
|
'icon' => 'fa fa-list',
|
|
'sublist' => [
|
|
['name' => 'manystore/config_group/index', 'title' => 'View'],
|
|
['name' => 'manystore/config_group/add', 'title' => 'Add'],
|
|
['name' => 'manystore/config_group/edit', 'title' => 'Edit'],
|
|
['name' => 'manystore/config_group/del', 'title' => 'Delete'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'manystore/config',
|
|
'title' => '商家系统配置管理',
|
|
'icon' => 'fa fa-list',
|
|
'sublist' => [
|
|
['name' => 'manystore/config/index', 'title' => 'View'],
|
|
['name' => 'manystore/config/add', 'title' => 'Add'],
|
|
['name' => 'manystore/config/edit', 'title' => 'Edit'],
|
|
['name' => 'manystore/config/del', 'title' => 'Delete'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'manystore/command',
|
|
'title' => '商家在线命令管理',
|
|
'icon' => 'fa fa-list',
|
|
'sublist' => [
|
|
['name' => 'manystore/command/index', 'title' => '查看'],
|
|
['name' => 'manystore/command/add', 'title' => '添加'],
|
|
['name' => 'manystore/command/detail', 'title' => '详情'],
|
|
['name' => 'manystore/command/execute', 'title' => '运行'],
|
|
['name' => 'manystore/command/del', 'title' => '删除'],
|
|
]
|
|
]
|
|
]
|
|
],
|
|
];
|
|
|
|
protected $manystore_menu = [
|
|
[
|
|
'name' => 'dashboard',
|
|
'title' => 'Dashboard',
|
|
'icon' => 'fa fa-dashboard',
|
|
'remark' => 'Dashboard tips',
|
|
'sublist' => [
|
|
['name' => 'dashboard/index', 'title' => 'View'],
|
|
['name' => 'dashboard/add', 'title' => 'Add'],
|
|
['name' => 'dashboard/edit', 'title' => 'Edit'],
|
|
['name' => 'dashboard/del', 'title' => 'Delete'],
|
|
['name' => 'dashboard/multi', 'title' => 'Multi'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'general',
|
|
'title' => 'General',
|
|
'icon' => 'fa fa-cogs',
|
|
'remark' => '',
|
|
'sublist' => [
|
|
[
|
|
'name' => 'general/config',
|
|
'title' => 'Config',
|
|
'icon' => 'fa fa-cog',
|
|
'sublist' => [
|
|
['name' => 'general/config/index', 'title' => 'View'],
|
|
['name' => 'general/config/edit', 'title' => 'Edit'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'general/attachment',
|
|
'title' => 'Attachment',
|
|
'icon' => 'fa fa-file-image-o',
|
|
'sublist' => [
|
|
['name' => 'general/attachment/index', 'title' => 'View'],
|
|
['name' => 'general/attachment/select', 'title' => 'Select attachment'],
|
|
['name' => 'general/attachment/add', 'title' => 'Add'],
|
|
['name' => 'general/attachment/edit', 'title' => 'Edit'],
|
|
['name' => 'general/attachment/del', 'title' => 'Delete'],
|
|
['name' => 'general/attachment/multi', 'title' => 'Multi'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'general/profile',
|
|
'title' => 'Profile',
|
|
'icon' => 'fa fa-user',
|
|
'sublist' => [
|
|
['name' => 'general/profile/index', 'title' => 'View'],
|
|
['name' => 'general/profile/update', 'title' => 'Update profile'],
|
|
['name' => 'general/profile/shop_update', 'title' => 'Update shop'],
|
|
['name' => 'general/profile/add', 'title' => 'Add'],
|
|
['name' => 'general/profile/edit', 'title' => 'Edit'],
|
|
['name' => 'general/profile/del', 'title' => 'Delete'],
|
|
['name' => 'general/profile/multi', 'title' => 'Multi'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'general/log',
|
|
'title' => '操作日志',
|
|
'icon' => 'fa fa-file-text',
|
|
'sublist' => [
|
|
['name' => 'general/log/index', 'title' => 'View'],
|
|
]
|
|
],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'auth',
|
|
'title' => 'Auth',
|
|
'icon' => 'fa fa-group',
|
|
'remark' => '',
|
|
'sublist' => [
|
|
[
|
|
'name' => 'auth/manystore',
|
|
'title' => 'Admin',
|
|
'icon' => 'fa fa-user',
|
|
'sublist' => [
|
|
['name' => 'auth/manystore/index', 'title' => 'View'],
|
|
['name' => 'auth/manystore/add', 'title' => 'Add'],
|
|
['name' => 'auth/manystore/edit', 'title' => 'Edit'],
|
|
['name' => 'auth/manystore/del', 'title' => 'Delete'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'auth/manystorelog',
|
|
'title' => 'Admin log',
|
|
'icon' => 'fa fa-list-alt',
|
|
'sublist' => [
|
|
['name' => 'auth/manystorelog/index', 'title' => 'View'],
|
|
['name' => 'auth/manystorelog/detail', 'title' => 'Detail'],
|
|
['name' => 'auth/manystorelog/del', 'title' => 'Delete'],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'auth/group',
|
|
'title' => 'Group',
|
|
'icon' => 'fa fa-group',
|
|
'sublist' => [
|
|
['name' => 'auth/group/index', 'title' => 'View'],
|
|
['name' => 'auth/group/add', 'title' => 'Add'],
|
|
['name' => 'auth/group/edit', 'title' => 'Edit'],
|
|
['name' => 'auth/group/del', 'title' => 'Delete'],
|
|
]
|
|
]
|
|
]
|
|
]
|
|
];
|
|
|
|
/**
|
|
* 插件安装方法
|
|
* @return bool
|
|
*/
|
|
public function install()
|
|
{
|
|
Menu::create($this->menu);
|
|
$info = get_addon_info('manystore');
|
|
if (!$info['install']) {
|
|
$info['install'] = 1;
|
|
set_addon_info('manystore', $info);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 插件卸载方法
|
|
* @return bool
|
|
*/
|
|
public function uninstall()
|
|
{
|
|
Menu::delete('manystore');
|
|
ManystoreMenu::delete('dashboard');
|
|
ManystoreMenu::delete('general');
|
|
ManystoreMenu::delete('auth');
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 插件启用方法
|
|
*/
|
|
public function enable()
|
|
{
|
|
Menu::enable('manystore');
|
|
|
|
$info = get_addon_info('manystore');
|
|
if ($info['install']) {
|
|
$menu_exist = ManystoreMenu::getAuthRuleIdsByName('dashboard');
|
|
if (!$menu_exist) {
|
|
db()->startTrans();
|
|
try {
|
|
ManystoreMenu::create($this->manystore_menu);
|
|
db()->commit();
|
|
} catch (Exception $e) {
|
|
db()->rollback();
|
|
return false;
|
|
}
|
|
} else {
|
|
ManystoreMenu::enable('dashboard');
|
|
ManystoreMenu::enable('general');
|
|
ManystoreMenu::enable('auth');
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 插件禁用方法
|
|
*/
|
|
public function disable()
|
|
{
|
|
Menu::disable('manystore');
|
|
ManystoreMenu::disable('dashboard');
|
|
ManystoreMenu::disable('general');
|
|
ManystoreMenu::disable('auth');
|
|
}
|
|
|
|
/**
|
|
* 注册模型事件-附件表
|
|
*/
|
|
public function appInit()
|
|
{
|
|
//上传到多商家附件
|
|
\app\common\model\Attachment::event('after_insert', function ($row) {
|
|
try {
|
|
$row = $row->toArray();
|
|
$attachment = \app\common\model\ManystoreAttachment::where('url', $row['url'])->where('storage', 'alioss')->find();
|
|
if (!$attachment && session('manystore.shop_id')) {
|
|
$data = array(
|
|
'category' => $row['category'],
|
|
'shop_id' => (int)session('manystore.shop_id'),
|
|
'user_id' => (int)session('uid'),
|
|
'filesize' => $row['filesize'],
|
|
'filename' => $row['filename'],
|
|
'imagewidth' => $row['imagewidth'],
|
|
'imageheight' => $row['imageheight'],
|
|
'imagetype' => $row['imagetype'],
|
|
'imageframes' => 0,
|
|
'mimetype' => $row['mimetype'],
|
|
'url' => $row['url'],
|
|
'uploadtime' => time(),
|
|
'storage' => 'alioss',
|
|
'sha1' => $row['sha1'],
|
|
);
|
|
\app\common\model\ManystoreAttachment::create($data, true);
|
|
}
|
|
} catch (\think\Exception $e) {
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 注册事件-上传登录检测判断
|
|
* @return bool
|
|
*/
|
|
public function uploadConfigChecklogin()
|
|
{
|
|
//必须判断模块中的用户是否登录
|
|
if (request()->module() == 'manystore' && \app\manystore\library\Auth::instance()->id) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
}
|