Files
ywxapp 1d49e6f5ee feat: 公共表更名 common/member 前缀 + 插件命令自动加载 + 版本 1.1.1
- 18 张公共表更名(addon/attachment/configure/links/spider_log/spider_stat/sms/notice/ad/task/prop/medal/help/card -> common_*,member_wallets->member_wallet,score_rule/score_log -> member_*,addon_config->common_addonconf),模型全部对齐新表名,Db 直引用清零
- Attachment 模型补  表名绑定,修复富文本上传查 wxapp_attachment 1146 隐患
- install.sql + 迁移 SQL:backend_admin/backend_role delete_at 默认 0,修复软删除(NULL != 0)误过滤导致后台菜单为空
- AppService::boot() 支持插件 info.php 声明 commands 自动注册插件命令(psr-4 自动加载,坏类名自动跳过)
- 各插件(haonav/mqttbroker/wxchat/articles/blog/forum 等)字段与配置同步调整
- 框架版本 1.1.0 -> 1.1.1
2026-08-20 20:19:15 +08:00

118 lines
4.2 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | YwxApp [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2026-2036 http://ywxapp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: ywxapp<admin@ywxapp.cn>
// +----------------------------------------------------------------------
namespace ywxapp\model;
use ywxapp\model\BaseModel;
/**
* 用户资料模型
*/
class MemberProfile extends BaseModel
{
protected function getOptions(): array
{
return [
'strict' => false,
'autoWriteTimestamp' => 'int',
'createTime' => 'create_at',
'updateTime' => 'update_at',
'append' => ['is_parent', 'age', 'is_online'],
'hidden' => ['create_at', 'update_at', 'delete_at'],
'readonly' => ['uid'],
];
}
/**
* 计算年龄
*/
public function getAgeAttr()
{
if (empty($this->birthday)) {
return 0;
}
$b = strtotime($this->birthday);
if ($b === false) {
return 0;
}
return (int) floor((time() - $b) / 31557600);
}
/**
* 是否在线(5 分钟内活跃)
*/
public function getIsOnlineAttr()
{
return $this->online_status == 1
|| (! empty($this->last_active_at) && time() - (int) $this->last_active_at < 300);
}
/**
* 表结构自愈:建表 + 关键列兜底(install.sql 为事实源)。
* 查询/写入前调用,避免老库缺表导致 1146。
*/
public static function ensureSchema(): void
{
BaseModel::ensureTableFromInstall(BaseModel::currentPrefix(), 'member_profile');
}
}
// realname varchar(255) NO 实名
// gender tinyint(1) 0 NO 性别 (0:保密 1:男 2:女)
// birthyear smallint(6) unsigned 0 NO
// birthmonth tinyint(3) unsigned 0 NO
// birthday tinyint(3) unsigned 0 NO
// constellation varchar(255) NO 星座(根据生日自动计算)
// zodiac varchar(255) NO 生肖(根据生日自动计算)
// telephone varchar(255) NO 固定电话
// mobile varchar(255) NO 手机
// idcardtype varchar(255) NO 证件类型:身份证 护照 军官证等
// idcard varchar(255) NO 证件号码
// address varchar(255) NO 邮寄地址
// zipcode varchar(255) NO 邮编
// nationality varchar(255) NO 国籍
// birthprovince varchar(255) NO 出生省份
// birthcity varchar(255) NO 出生城市
// birthdist varchar(20) NO 出生行政区/县
// birthcommunity varchar(255) NO 出生小区
// resideprovince varchar(255) NO 居住省份
// residecity varchar(255) NO 居住城市
// residedist varchar(20) NO 居住行政区/县
// residecommunity varchar(255) NO 居住小区
// residesuite varchar(255) NO 小区、写字楼门牌号
// graduateschool varchar(255) NO 毕业学校
// company varchar(255) NO 公司
// education varchar(255) NO 学历
// occupation varchar(255) NO 职业
// position varchar(255) NO 职位
// revenue varchar(255) NO 年收入
// affectivestatus varchar(255) NO 情感状态
// lookingfor varchar(255) NO 交友目的(交友类型)
// bloodtype varchar(255) NO 血型
// height varchar(255) NO 身高
// weight varchar(255) NO 体重
// alipay varchar(255) NO 支付宝帐号
// icq varchar(255) NO ICQ
// qq varchar(255) NO QQ
// yahoo varchar(255) NO YAHOO
// msn varchar(255) NO MSN
// taobao varchar(255) NO 阿里旺旺
// site varchar(255) NO 主页
// bio text NO 自我介绍 来自论坛bio字段
// interest text NO 兴趣爱好
// field1 text NO 自定义字段1
// field2 text NO 自定义字段2
// field3 text NO 自定义字段3
// field4 text NO 自定义字段4
// field5 text NO 自定义字段5
// field6 text NO 自定义字段6
// field7 text NO 自定义字段7
// field8 text NO 自定义字段8