Files

168 lines
6.1 KiB
PHP

<?php
/**
* 更新数据结构
*/
$prefix = \Phpcmf\Service::M()->prefix;
$m = \Phpcmf\Service::M();
$t = \Phpcmf\Service::M('table');
$table = $prefix.'member_setting';
if (!$m->is_table_exists($table)) {
$t->create_table(
$table,
[
'name' => 'varchar(50) NOT NULL',
'value' => 'mediumtext NOT NULL',
],
[
'PRIMARY KEY (`name`)',
],
'用户属性参数表'
);
} else {
if ($m->is_field_exists($table, 'id')) {
// 处理旧版 id 字段:重建为 name 主键
$settingQuery = $m->db->table('member_setting')->get();
$data = $settingQuery ? $settingQuery->getResultArray() : [];
$t->drop_table($table, true);
$t->create_table(
$table,
[
'name' => 'varchar(50) NOT NULL',
'value' => 'mediumtext NOT NULL',
],
[
'PRIMARY KEY (`name`)',
],
'用户属性参数表'
);
if ($data) {
foreach ($data as $row) {
$m->table('member_setting')->replace([
'name' => $row['name'],
'value' => $row['value'],
]);
}
}
}
}
$auth2Query = $m->db->table('member_setting')->where('name', 'auth2')->get();
if (!$auth2Query || !$auth2Query->getRowArray()) {
$m->table('member_setting')->replace([
'name' => 'auth2',
'value' => '{"1":{"public":{"home":{"show":"0","is_category":"0"},"form_public":[],"share_category_public":{"show":"1","add":"1","edit":"1","code":"1","verify":"1","exp":"","score":"","money":"","day_post":"","total_post":""},"category_public":[],"mform_public":"","form":null,"share_category":null,"category":null,"mform":null}}}',
]);
}
$table = $prefix.'member_paylog';
if ($m->is_table_exists($table)) {
if (!$m->is_field_exists($table, 'site')) {
$t->add_field($table, 'site', 'INT(10)', 'NOT NULL', '站点');
}
if ($m->is_field_exists($table, 'username')) {
$t->drop_field($table, 'username');
}
if ($m->is_field_exists($table, 'tousername')) {
$t->drop_field($table, 'tousername');
}
}
$table = $prefix.'member_verify';
if (!$m->is_table_exists($table)) {
$t->create_table(
$table,
[
'id' => 'smallint(5) unsigned NOT NULL AUTO_INCREMENT',
'uid' => 'mediumint(8) unsigned NOT NULL COMMENT \'会员uid\'',
'tid' => 'tinyint(1) unsigned NOT NULL COMMENT \'类别\'',
'status' => 'tinyint(1) unsigned NOT NULL COMMENT \'状态\'',
'content' => 'mediumtext NOT NULL COMMENT \'自定义字段信息\'',
'result' => 'text NOT NULL COMMENT \'处理结果\'',
'updatetime' => 'int(10) unsigned NOT NULL COMMENT \'处理时间\'',
'inputtime' => 'int(10) unsigned NOT NULL COMMENT \'提交时间\'',
],
[
'PRIMARY KEY (`id`)',
'KEY `tid` (`tid`)',
'KEY `uid` (`uid`)',
'KEY `status` (`status`)',
'KEY `inputtime` (`inputtime`)',
],
'会员审核表'
);
}
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'tid')) {
$t->add_field($table, 'tid', 'int(1)', 'DEFAULT NULL', '类型');
}
$table = $prefix.'member_group_verify';
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'price')) {
$t->add_field($table, 'price', 'decimal(10,2)', 'DEFAULT NULL', '已费用');
}
$table = $prefix.'member_scorelog';
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'username')) {
$t->add_field($table, 'username', 'VARCHAR(100)', 'DEFAULT NULL', '');
}
$table = $prefix.'member_notice';
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'mark')) {
$t->add_field($table, 'mark', 'VARCHAR(100)', 'DEFAULT NULL', '');
$t->edit_field($prefix.'member_notice', 'type', 'tinyint(2) unsigned', 'NOT NULL', '类型');
}
$table = $prefix.'member_explog';
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'username')) {
$t->add_field($table, 'username', 'VARCHAR(100)', 'DEFAULT NULL', '');
}
$table = $prefix.'member_oauth';
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'unionid')) {
$t->add_field($table, 'unionid', 'VARCHAR(100)', 'DEFAULT NULL', '');
}
$table = $prefix.'member_menu';
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'site')) {
$t->add_field($table, 'site', 'TEXT', 'NOT NULL', '');
}
if ($m->is_table_exists($table) && !$m->is_field_exists($table, 'client')) {
$t->add_field($table, 'client', 'TEXT', 'DEFAULT NULL', '');
}
$table = $prefix.'member_level';
if (!$m->is_table_exists($table)) {
$rt = $t->create_table(
$table,
[
'id' => 'smallint(5) unsigned NOT NULL AUTO_INCREMENT',
'gid' => 'smallint(5) unsigned NOT NULL COMMENT \'用户id\'',
'name' => 'varchar(255) NOT NULL COMMENT \'名称\'',
'stars' => 'int(10) NOT NULL COMMENT \'图标\'',
'value' => 'int(10) unsigned NOT NULL COMMENT \'升级值要求\'',
'note' => 'text NOT NULL COMMENT \'备注\'',
'apply' => 'tinyint(1) unsigned NOT NULL COMMENT \'是否允许升级\'',
'setting' => 'text NOT NULL COMMENT \'等级配置\'',
'displayorder' => 'smallint(5) NOT NULL COMMENT \'排序\'',
],
[
'PRIMARY KEY (`id`)',
'KEY `value` (`value`)',
'KEY `apply` (`apply`)',
'KEY `gid` (`gid`)',
'KEY `displayorder` (`displayorder`)',
],
'用户组级别表'
);
if (empty($rt['code'])) {
log_message('error', 'Member Update create member_level failed: '.($rt['msg'] ?? ''));
}
} else {
$t->edit_field($table, 'stars', 'int(10) unsigned', 'NOT NULL', '图标');
if (!$m->is_field_exists($table, 'setting')) {
$t->add_field($table, 'setting', 'TEXT', 'NOT NULL', '');
}
if (!$m->is_field_exists($table, 'displayorder')) {
$t->add_field($table, 'displayorder', 'INT(10)', 'DEFAULT NULL', '排序');
}
}