Some checks failed
Build and Deploy (service.xpcool.com) / build-and-deploy (push) Failing after 35s
- 新增新房预售证表 house_presale 存储预售许可信息 - 为 house_community 表添加 avg_price 字段存储小区参考均价 - 增强服务器操作审计日志功能,新增管理员账号、IP归属地、错误信息、UA等字段 - 实现纯Go版IP归属地离线解析器,无外部依赖,支持二分查找 - 优化看房列表查询逻辑,修复Fields设置位置导致的SQL语法错误 - 集成招聘模块,添加独立数据库配置和Bark推送服务支持 - 重构日志查询接口,支持多维度筛选和综合分页列表展示 - 更新DAO实体结构同步数据库表结构调整
200 lines
9.9 KiB
Go
200 lines
9.9 KiB
Go
-- 010_house_tables.sql
|
||
-- 看房系统(House)核心数据模型:9 张表。
|
||
-- 约定:BIGINT UNSIGNED 自增主键;统一 created_at/updated_at/deleted_at(GoFrame 软删除);
|
||
-- 经纬度 GCJ-02;价格单位(总价万元 / 单价元每平米)。
|
||
-- 幂等:CREATE TABLE IF NOT EXISTS,可重复执行。
|
||
|
||
-- 1) 楼盘/小区主档
|
||
CREATE TABLE IF NOT EXISTS house_community (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
name VARCHAR(128) NOT NULL COMMENT '小区/楼盘名',
|
||
region VARCHAR(64) NOT NULL DEFAULT '' COMMENT '区县(云岩/南明/观山湖/花溪等)',
|
||
business_district VARCHAR(64) NOT NULL DEFAULT '' COMMENT '板块',
|
||
address VARCHAR(255) NOT NULL DEFAULT '' COMMENT '地址',
|
||
lng DECIMAL(10,6) NOT NULL DEFAULT 0 COMMENT '经度(GCJ-02)',
|
||
lat DECIMAL(10,6) NOT NULL DEFAULT 0 COMMENT '纬度(GCJ-02)',
|
||
build_year INT NOT NULL DEFAULT 0 COMMENT '建成年份',
|
||
households INT NOT NULL DEFAULT 0 COMMENT '总户数',
|
||
plot_ratio DECIMAL(6,3) NOT NULL DEFAULT 0 COMMENT '容积率',
|
||
green_rate DECIMAL(6,3) NOT NULL DEFAULT 0 COMMENT '绿化率',
|
||
avg_price DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '小区参考均价(元/平米)',
|
||
property_company VARCHAR(128) NOT NULL DEFAULT '' COMMENT '物业公司',
|
||
property_fee DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '物业费(元/月/平米)',
|
||
developer VARCHAR(128) NOT NULL DEFAULT '' COMMENT '开发商',
|
||
source VARCHAR(32) NOT NULL DEFAULT '' COMMENT '数据来源',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
KEY idx_community_name (name),
|
||
KEY idx_community_region (region, business_district),
|
||
KEY idx_community_lnglat (lng, lat),
|
||
KEY idx_community_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='楼盘/小区';
|
||
|
||
-- 2) 楼栋(具体到栋)
|
||
CREATE TABLE IF NOT EXISTS house_building (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
community_id BIGINT UNSIGNED NOT NULL COMMENT '小区ID',
|
||
building_no VARCHAR(32) NOT NULL DEFAULT '' COMMENT '栋号',
|
||
units INT NOT NULL DEFAULT 0 COMMENT '单元数',
|
||
total_floors INT NOT NULL DEFAULT 0 COMMENT '总楼层',
|
||
elevator_count INT NOT NULL DEFAULT 0 COMMENT '电梯数',
|
||
ladder_ratio VARCHAR(32) NOT NULL DEFAULT '' COMMENT '梯户比',
|
||
building_type VARCHAR(16) NOT NULL DEFAULT '' COMMENT '板楼/塔楼',
|
||
lng DECIMAL(10,6) NOT NULL DEFAULT 0 COMMENT '楼栋经度',
|
||
lat DECIMAL(10,6) NOT NULL DEFAULT 0 COMMENT '楼栋纬度',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
KEY idx_building_community (community_id),
|
||
KEY idx_building_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='楼栋';
|
||
|
||
-- 3) 房源/挂牌(核心,多平台不去重)
|
||
CREATE TABLE IF NOT EXISTS house_listing (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
community_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '小区ID',
|
||
building_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '楼栋ID',
|
||
house_no VARCHAR(64) NOT NULL DEFAULT '' COMMENT '房号',
|
||
layout VARCHAR(32) NOT NULL DEFAULT '' COMMENT '户型(如3室2厅)',
|
||
area DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '建筑面积(平米)',
|
||
usable_area DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '套内面积(平米)',
|
||
orientation VARCHAR(32) NOT NULL DEFAULT '' COMMENT '朝向',
|
||
floor INT NOT NULL DEFAULT 0 COMMENT '所在楼层',
|
||
total_floors INT NOT NULL DEFAULT 0 COMMENT '总楼层',
|
||
decoration VARCHAR(32) NOT NULL DEFAULT '' COMMENT '装修',
|
||
total_price DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '总价(万元)',
|
||
unit_price DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '单价(元/平米)',
|
||
list_price DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '挂牌价(万元)',
|
||
source VARCHAR(32) NOT NULL DEFAULT '' COMMENT '来源平台',
|
||
source_house_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '平台侧房源ID',
|
||
source_url VARCHAR(512) NOT NULL DEFAULT '' COMMENT '房源链接',
|
||
match_group_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '疑似同房源分组(跨平台软关联)',
|
||
on_market_days INT NOT NULL DEFAULT 0 COMMENT '挂牌天数',
|
||
price_change_count INT NOT NULL DEFAULT 0 COMMENT '调价次数',
|
||
status INT NOT NULL DEFAULT 1 COMMENT '1在售 2下架 3成交',
|
||
confidence INT NOT NULL DEFAULT 0 COMMENT '可信度 0正常 1低可信',
|
||
is_bargain INT NOT NULL DEFAULT 0 COMMENT '笋盘标记 0否 1是',
|
||
listing_time DATETIME NULL COMMENT '挂牌时间',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_listing_source_house (source, source_house_id),
|
||
KEY idx_listing_community (community_id),
|
||
KEY idx_listing_match_group (match_group_id),
|
||
KEY idx_listing_unit_price (unit_price),
|
||
KEY idx_listing_status (status),
|
||
KEY idx_listing_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='房源/挂牌';
|
||
|
||
-- 4) 价格快照(时序,趋势分析命脉)
|
||
CREATE TABLE IF NOT EXISTS house_price_snapshot (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
listing_id BIGINT UNSIGNED NOT NULL COMMENT '房源ID',
|
||
community_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '小区ID',
|
||
snap_date DATE NOT NULL COMMENT '快照日期',
|
||
list_price DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '挂牌价(万元)',
|
||
deal_price DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '成交价(万元)',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_snapshot_listing_date (listing_id, snap_date),
|
||
KEY idx_snapshot_community_date (community_id, snap_date),
|
||
KEY idx_snapshot_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='价格快照';
|
||
|
||
-- 5) 成交记录
|
||
CREATE TABLE IF NOT EXISTS house_transaction (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
community_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '小区ID',
|
||
building_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '楼栋ID',
|
||
layout VARCHAR(32) NOT NULL DEFAULT '' COMMENT '户型',
|
||
area DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '面积(平米)',
|
||
deal_price DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '成交总价(万元)',
|
||
deal_unit_price DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '成交单价(元/平米)',
|
||
list_days INT NOT NULL DEFAULT 0 COMMENT '挂牌到成交天数',
|
||
deal_date DATE NULL COMMENT '成交日期',
|
||
source VARCHAR(32) NOT NULL DEFAULT '' COMMENT '来源',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
KEY idx_transaction_community (community_id),
|
||
KEY idx_transaction_deal_date (deal_date),
|
||
KEY idx_transaction_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成交记录';
|
||
|
||
-- 6) 配套 POI(地铁站/学校/医院/商圈)
|
||
CREATE TABLE IF NOT EXISTS house_facility (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
name VARCHAR(128) NOT NULL COMMENT '配套名称',
|
||
type VARCHAR(32) NOT NULL DEFAULT '' COMMENT '地铁/学校/医院/商圈',
|
||
lng DECIMAL(10,6) NOT NULL DEFAULT 0 COMMENT '经度',
|
||
lat DECIMAL(10,6) NOT NULL DEFAULT 0 COMMENT '纬度',
|
||
line VARCHAR(32) NOT NULL DEFAULT '' COMMENT '地铁线路',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
KEY idx_facility_type (type),
|
||
KEY idx_facility_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配套POI';
|
||
|
||
-- 7) 小区-配套关系
|
||
CREATE TABLE IF NOT EXISTS house_community_facility (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
community_id BIGINT UNSIGNED NOT NULL COMMENT '小区ID',
|
||
facility_id BIGINT UNSIGNED NOT NULL COMMENT '配套ID',
|
||
distance INT NOT NULL DEFAULT 0 COMMENT '距离(米)',
|
||
commute_minutes INT NOT NULL DEFAULT 0 COMMENT '通勤分钟',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_cf_community_facility (community_id, facility_id),
|
||
KEY idx_cf_facility (facility_id),
|
||
KEY idx_cf_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='小区-配套关系';
|
||
|
||
-- 8) 学区划片(版本化)
|
||
CREATE TABLE IF NOT EXISTS house_school_district (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
school_name VARCHAR(128) NOT NULL COMMENT '学校名',
|
||
community_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '小区ID',
|
||
district_polygon TEXT NULL COMMENT '划片范围GeoJSON',
|
||
district_year INT NOT NULL DEFAULT 0 COMMENT '划片年度',
|
||
note VARCHAR(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
KEY idx_sd_community (community_id),
|
||
KEY idx_sd_year (district_year),
|
||
KEY idx_sd_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学区划片';
|
||
|
||
-- 9) 用户偏好画像
|
||
CREATE TABLE IF NOT EXISTS house_preference (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
budget_min DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '预算下限(万元)',
|
||
budget_max DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '预算上限(万元)',
|
||
area_min DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '面积下限(平米)',
|
||
area_max DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '面积上限(平米)',
|
||
layouts VARCHAR(255) NOT NULL DEFAULT '' COMMENT '户型偏好JSON',
|
||
subway_lines VARCHAR(255) NOT NULL DEFAULT '' COMMENT '地铁线路JSON',
|
||
school_required INT NOT NULL DEFAULT 0 COMMENT '是否要求学区',
|
||
commute_target VARCHAR(255) NOT NULL DEFAULT '' COMMENT '通勤目标点',
|
||
commute_limit_min INT NOT NULL DEFAULT 0 COMMENT '通勤上限(分钟)',
|
||
region_prefer VARCHAR(255) NOT NULL DEFAULT '' COMMENT '区域偏好JSON',
|
||
weights VARCHAR(512) NOT NULL DEFAULT '' COMMENT '权重JSON',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME NOT NULL,
|
||
deleted_at DATETIME NULL,
|
||
PRIMARY KEY (id),
|
||
KEY idx_pref_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户偏好画像';
|