Files

122 lines
4.4 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,
'name' => 'member_profile',
'autoWriteTimestamp' => 'int',
'createTime' => 'create_at',
'updateTime' => 'update_at',
// 'deleteTime' => 'delete_at',
// 'defaultSoftDelete' => 0,
// 'dateFormat' => 'Y-m-d H:i:s',
'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