Files
pk10/App/Plugins/WxGCode/mian.php
T

98 lines
5.0 KiB
PHP
Executable File

<?php
/**
* Plugin Name: WxGCode
* Description: 用来创建微信群活码或者其它活码的插件。
* Version: 1.0.0
* Author: JuheDev
* Plugin URL: https://plugins.juhe.me/wxgcode
*/
return [
'menus' => [
[
'title' => '微信活码',
'icon' => 'fa fa-qrcode',
'path' => '/admin/wxgcode/',
],
],
'route_group' => [
[
'prefix' => '/wxgcode',
'namespace' => 'Plugins\WxGCode\Controllers\Web',
'routes' => [
['GET', '/get/{code}', 'WxGCodeController@get'],
['POST', '/data', 'WxGCodeController@data'],
['GET', '/{code}', 'WxGCodeController@index'],
],
],
[
'prefix' => '/admin/wxgcode',
'namespace' => 'Plugins\WxGCode\Controllers\Admin',
'routes' => [
['GET', '/', 'WxGCodeController@index'],
['GET', '/get/{id}', 'WxGCodeController@get'],
['GET', '/list', 'WxGCodeController@list'],
['GET', '/delete/{id}', 'WxGCodeController@delete'],
['POST', '/update', 'WxGCodeController@update'],
['GET|POST', '/settings', 'WxGCodeController@settings'],
],
],
],
'tables' => ['wxgcode_list', 'wxgcode_settings'],
'init' => function () {},
'activate' => function ($db) {
$db->query("
CREATE TABLE IF NOT EXISTS `wxgcode_list` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(100) NOT NULL COMMENT '活码名称(如“技术交流群活码”)',
`code` varchar(30) NOT NULL COMMENT '活码唯一标识(用于生成访问链接)',
`qrcode_url` varchar(500) NOT NULL COMMENT '微信群二维码图片URL',
`wx_group_name` varchar(100) NOT NULL COMMENT '微信群名称',
`wx_group_id` varchar(50) DEFAULT NULL COMMENT '微信群ID(可选)',
`total_views` int(11) NOT NULL DEFAULT 0 COMMENT '总访问次数',
`total_scans` int(11) NOT NULL DEFAULT 0 COMMENT '总扫码次数',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态:1-启用,0-禁用',
`max_scans` int(11) DEFAULT 0 COMMENT '最大扫码次数(0为无限制)',
`max_members` int(11) DEFAULT NULL COMMENT '群最大人数',
`current_members` int(11) DEFAULT 0 COMMENT '当前群人数',
`is_full` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否满人:1-是,0-否',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间(NULL为永久有效)',
`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序值(用于多群排序)',
`description` text DEFAULT NULL COMMENT '备注描述',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`) COMMENT '活码标识唯一索引',
KEY `idx_status_full` (`status`,`is_full`) COMMENT '状态和满人状态索引,用于快速筛选可用群码'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='URL管理表,存储系统中所有需要管理的URL信息';
");
$db->query("
CREATE TABLE IF NOT EXISTS `wxgcode_settings` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`wechat_name` varchar(100) NOT NULL COMMENT '公众号名称',
`wechat_account` varchar(50) NOT NULL COMMENT '公众号原始ID(gh_xxxx格式)',
`appid` varchar(50) NOT NULL COMMENT '公众号AppID',
`appsecret` varchar(100) NOT NULL COMMENT '公众号AppSecret',
`token` varchar(100) DEFAULT NULL COMMENT '接口调用Token',
`encoding_aes_key` varchar(100) DEFAULT NULL COMMENT '消息加密密钥',
`qrcode_url` varchar(255) DEFAULT NULL COMMENT '公众号二维码URL',
`wechat_type` enum('subscription','service','enterprise','test') NOT NULL DEFAULT 'service' COMMENT '公众号类型',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态:1-启用,0-禁用',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_appid` (`appid`),
UNIQUE KEY `uk_wechat_account` (`wechat_account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号设置表,存储公众号相关ID和密钥信息';
");
},
'deactivate' => function ($db) {},
];