已完成用户APP首期功能开发

交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
This commit is contained in:
czl231
2026-09-13 00:57:32 +08:00
parent a0a4bb1218
commit 3ef33b531d
793 changed files with 40959 additions and 1204 deletions

View File

@@ -0,0 +1,66 @@
// 功能家庭成员与设备共享表的增量迁移版本1.0.0。
package main
// migrateFamilySharing 只新增家庭共享相关表、约束、索引和中文注释。
func migrateFamilySharing() error {
return migrateClientColumns([]string{
`CREATE TABLE IF NOT EXISTS user_family_member (
id bigserial PRIMARY KEY, identity varchar(36) NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, deleted_at timestamptz,
status integer NOT NULL DEFAULT 1 CHECK (status IN (1,3)), owner_user_account_id bigint NOT NULL REFERENCES user_account(id), member_user_account_id bigint NOT NULL DEFAULT 0,
name varchar(64) NOT NULL, phone varchar(32) NOT NULL, relationship varchar(32) NOT NULL DEFAULT '', invite_status integer NOT NULL DEFAULT 10 CHECK (invite_status IN (10,20,30,40)),
request_no varchar(36) NOT NULL, expires_at timestamptz NOT NULL, accepted_at timestamptz, revoked_at timestamptz,
UNIQUE(owner_user_account_id, request_no))`,
`COMMENT ON TABLE user_family_member IS '家庭成员邀请与确认关系;紧急联系人不自动成为家庭成员'`,
`COMMENT ON COLUMN user_family_member.id IS '数据库自增内部主键'`,
`COMMENT ON COLUMN user_family_member.identity IS '对外业务UUID标识'`,
`COMMENT ON COLUMN user_family_member.created_at IS '邀请创建时间'`,
`COMMENT ON COLUMN user_family_member.updated_at IS '最后修改时间'`,
`COMMENT ON COLUMN user_family_member.deleted_at IS '软删除时间'`,
`COMMENT ON COLUMN user_family_member.status IS '通用状态1=启用3=归档'`,
`COMMENT ON COLUMN user_family_member.owner_user_account_id IS '房主用户内部主键'`,
`COMMENT ON COLUMN user_family_member.member_user_account_id IS '已接受邀请的成员用户内部主键0=尚未接受'`,
`COMMENT ON COLUMN user_family_member.name IS '房主填写的成员称呼'`,
`COMMENT ON COLUMN user_family_member.phone IS '受邀手机号;接口仅脱敏显示'`,
`COMMENT ON COLUMN user_family_member.relationship IS '与房主关系描述'`,
`COMMENT ON COLUMN user_family_member.invite_status IS '邀请状态10=待确认20=已接受30=已拒绝40=已撤销'`,
`COMMENT ON COLUMN user_family_member.request_no IS '同一房主邀请请求幂等UUID'`,
`COMMENT ON COLUMN user_family_member.expires_at IS '邀请失效时间'`,
`COMMENT ON COLUMN user_family_member.accepted_at IS '成员接受邀请时间'`,
`COMMENT ON COLUMN user_family_member.revoked_at IS '房主撤销成员时间'`,
`CREATE UNIQUE INDEX IF NOT EXISTS ux_family_active_phone ON user_family_member(owner_user_account_id,phone) WHERE status=1 AND invite_status IN (10,20) AND deleted_at IS NULL`,
`CREATE INDEX IF NOT EXISTS idx_family_invitee ON user_family_member(phone,invite_status,status)`,
`CREATE TABLE IF NOT EXISTS user_device_share (
id bigserial PRIMARY KEY, identity varchar(36) NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, deleted_at timestamptz,
status integer NOT NULL DEFAULT 1 CHECK (status IN (1,3)), family_member_id bigint NOT NULL REFERENCES user_family_member(id), product_info_id bigint NOT NULL REFERENCES product_info(id),
can_view boolean NOT NULL DEFAULT false, can_alert boolean NOT NULL DEFAULT false, can_control boolean NOT NULL DEFAULT false, UNIQUE(family_member_id,product_info_id))`,
`COMMENT ON TABLE user_device_share IS '家庭成员按设备分配的查看、告警和控制权限'`,
`COMMENT ON COLUMN user_device_share.id IS '数据库自增内部主键'`,
`COMMENT ON COLUMN user_device_share.identity IS '对外业务UUID标识'`,
`COMMENT ON COLUMN user_device_share.created_at IS '授权创建时间'`,
`COMMENT ON COLUMN user_device_share.updated_at IS '授权最后修改时间'`,
`COMMENT ON COLUMN user_device_share.deleted_at IS '软删除时间'`,
`COMMENT ON COLUMN user_device_share.status IS '授权状态1=启用3=归档'`,
`COMMENT ON COLUMN user_device_share.family_member_id IS '家庭成员关系内部主键'`,
`COMMENT ON COLUMN user_device_share.product_info_id IS '房主名下设备内部主键'`,
`COMMENT ON COLUMN user_device_share.can_view IS '是否允许查看设备资料和状态'`,
`COMMENT ON COLUMN user_device_share.can_alert IS '是否允许接收危险告警'`,
`COMMENT ON COLUMN user_device_share.can_control IS '是否允许发起远程控制;执行时仍需二次确认'`,
`CREATE TABLE IF NOT EXISTS user_family_audit (
id bigserial PRIMARY KEY, identity varchar(36) NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, deleted_at timestamptz,
status integer NOT NULL DEFAULT 1, owner_user_account_id bigint NOT NULL REFERENCES user_account(id), family_member_id bigint NOT NULL DEFAULT 0,
actor_user_account_id bigint NOT NULL REFERENCES user_account(id), action varchar(32) NOT NULL, summary varchar(512) NOT NULL DEFAULT '')`,
`COMMENT ON TABLE user_family_audit IS '家庭邀请和设备授权操作审计,只记录必要摘要'`,
`COMMENT ON COLUMN user_family_audit.id IS '数据库自增内部主键'`,
`COMMENT ON COLUMN user_family_audit.identity IS '对外业务UUID标识'`,
`COMMENT ON COLUMN user_family_audit.created_at IS '操作发生时间'`,
`COMMENT ON COLUMN user_family_audit.updated_at IS '记录更新时间'`,
`COMMENT ON COLUMN user_family_audit.deleted_at IS '软删除时间,审计记录正常不删除'`,
`COMMENT ON COLUMN user_family_audit.status IS '记录状态1=有效'`,
`COMMENT ON COLUMN user_family_audit.owner_user_account_id IS '房主用户内部主键'`,
`COMMENT ON COLUMN user_family_audit.family_member_id IS '关联成员内部主键0=无成员'`,
`COMMENT ON COLUMN user_family_audit.actor_user_account_id IS '执行操作的用户内部主键'`,
`COMMENT ON COLUMN user_family_audit.action IS '操作类型invite/accept/reject/update_permissions/revoke'`,
`COMMENT ON COLUMN user_family_audit.summary IS '不含手机号的操作摘要'`,
`CREATE INDEX IF NOT EXISTS idx_family_audit_owner_time ON user_family_audit(owner_user_account_id,created_at DESC)`,
})
}