service.xpcool.com/manifest/sql/011_house_menu.sql
夏犀麟 4aca0c7f6f
Some checks failed
Build and Deploy (service.xpcool.com) / build-and-deploy (push) Failing after 5m7s
feat(house): 实现看房模块后端功能
- 新增 9 张房屋相关数据表(社区/楼宇/房源/价格快照/交易/设施/社区设施/学区/偏好)
- 添加菜单权限种子数据并绑定超级管理员角色
- 生成 DAO 层代码和实体对象
- 实现房屋模块 API 接口(社区/房源/看板)和控制器服务层
- 支持多平台软关联匹配、笋盘标记和低可信度标记功能
- 更新超级管理员账号为 xxcool/xxCool@2026
- 调整 RBAC 菜单结构,移除管理员管理功能,新增日志管理菜单
- 修复 RBAC 安全漏洞,确保禁用角色权限失效
- 重构认证模块,将登录相关接口迁移到统一包结构下
- 移除废弃的管理模块和工具类接口定义
- 为通用工具包添加中文注释和文档说明
2026-08-26 23:42:38 +08:00

59 lines
5.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 011_house_menu.sql
-- 看房系统House菜单 + API 权限种子
-- 约定type=1 菜单component 指向 views/house/xxx/index.vuetype=2 API 权限path 为完整 "METHOD /api/service/admin/..."
-- 依赖先执行 010_house_tables.sql建表+ 已存在 admin_menu/admin_role_menu 结构
-- 幂等INSERT ... ON DUPLICATE KEY UPDATE + INSERT IGNORE可重复执行
-- ============ 1) 看房中心菜单type=1 ============
INSERT INTO admin_menu (id, parent_id, name, icon, type, path, component, permission, sort, status, hidden, created_at, updated_at) VALUES
(90, 0, '看房中心', 'mdi:home-city', 1, '/house', '', 'house:center', 6, 1, 0, NOW(), NOW()),
(91, 90, '小区管理', 'mdi:domain', 1, 'community', 'house/community/index', 'house:community', 1, 1, 0, NOW(), NOW()),
(92, 90, '房源管理', 'mdi:home-search', 1, 'listing', 'house/listing/index', 'house:listing', 2, 1, 0, NOW(), NOW()),
(93, 90, '数据看板', 'mdi:chart-box', 1, 'dashboard', 'house/dashboard/index', 'house:dashboard', 3, 1, 0, NOW(), NOW()),
(94, 90, '数据明细', 'mdi:database', 1, 'data', 'house/data/index', 'house:data', 4, 1, 0, NOW(), NOW())
ON DUPLICATE KEY UPDATE parent_id=VALUES(parent_id), name=VALUES(name), icon=VALUES(icon), type=VALUES(type),
path=VALUES(path), component=VALUES(component), permission=VALUES(permission), sort=VALUES(sort),
status=VALUES(status), hidden=VALUES(hidden), deleted_at=NULL;
-- ============ 2) 小区管理按钮type=2 ============
INSERT INTO admin_menu (id, parent_id, name, icon, type, path, component, permission, sort, status, hidden, created_at, updated_at) VALUES
(910, 91, '查询', '', 2, 'POST /api/service/admin/house/community/list', '', 'house:community:list', 1, 1, 0, NOW(), NOW()),
(911, 91, '新增', '', 2, 'POST /api/service/admin/house/community/create', '', 'house:community:create', 2, 1, 0, NOW(), NOW()),
(912, 91, '编辑', '', 2, 'POST /api/service/admin/house/community/update/{id}', '', 'house:community:update', 3, 1, 0, NOW(), NOW()),
(913, 91, '删除', '', 2, 'POST /api/service/admin/house/community/delete/{id}', '', 'house:community:delete', 4, 1, 0, NOW(), NOW())
ON DUPLICATE KEY UPDATE parent_id=VALUES(parent_id), name=VALUES(name), icon=VALUES(icon), type=VALUES(type),
path=VALUES(path), component=VALUES(component), permission=VALUES(permission), sort=VALUES(sort),
status=VALUES(status), hidden=VALUES(hidden), deleted_at=NULL;
-- ============ 3) 房源管理按钮type=2 ============
INSERT INTO admin_menu (id, parent_id, name, icon, type, path, component, permission, sort, status, hidden, created_at, updated_at) VALUES
(920, 92, '查询', '', 2, 'POST /api/service/admin/house/listing/list', '', 'house:listing:list', 1, 1, 0, NOW(), NOW()),
(921, 92, '新增', '', 2, 'POST /api/service/admin/house/listing/create', '', 'house:listing:create', 2, 1, 0, NOW(), NOW()),
(922, 92, '编辑', '', 2, 'POST /api/service/admin/house/listing/update/{id}', '', 'house:listing:update', 3, 1, 0, NOW(), NOW()),
(923, 92, '删除', '', 2, 'POST /api/service/admin/house/listing/delete/{id}', '', 'house:listing:delete', 4, 1, 0, NOW(), NOW()),
(924, 92, '标记', '', 2, 'POST /api/service/admin/house/listing/batch-mark', '', 'house:listing:batchMark', 5, 1, 0, NOW(), NOW())
ON DUPLICATE KEY UPDATE parent_id=VALUES(parent_id), name=VALUES(name), icon=VALUES(icon), type=VALUES(type),
path=VALUES(path), component=VALUES(component), permission=VALUES(permission), sort=VALUES(sort),
status=VALUES(status), hidden=VALUES(hidden), deleted_at=NULL;
-- ============ 4) 数据看板按钮type=2 ============
INSERT INTO admin_menu (id, parent_id, name, icon, type, path, component, permission, sort, status, hidden, created_at, updated_at) VALUES
(930, 93, '概览', '', 2, 'POST /api/service/admin/house/dashboard/overview', '', 'house:dashboard:overview', 1, 1, 0, NOW(), NOW()),
(931, 93, '地图点', '', 2, 'POST /api/service/admin/house/dashboard/map-points', '', 'house:dashboard:mapPoints', 2, 1, 0, NOW(), NOW()),
(932, 93, '价格趋势', '', 2, 'POST /api/service/admin/house/dashboard/price-trend', '', 'house:dashboard:priceTrend', 3, 1, 0, NOW(), NOW()),
(933, 93, '区域聚合', '', 2, 'POST /api/service/admin/house/dashboard/aggregate-region', '', 'house:dashboard:aggregateRegion', 4, 1, 0, NOW(), NOW())
ON DUPLICATE KEY UPDATE parent_id=VALUES(parent_id), name=VALUES(name), icon=VALUES(icon), type=VALUES(type),
path=VALUES(path), component=VALUES(component), permission=VALUES(permission), sort=VALUES(sort),
status=VALUES(status), hidden=VALUES(hidden), deleted_at=NULL;
-- ============ 5) 数据明细按钮type=2快照/成交/配套/学区共用 list ============
INSERT INTO admin_menu (id, parent_id, name, icon, type, path, component, permission, sort, status, hidden, created_at, updated_at) VALUES
(940, 94, '查询', '', 2, 'POST /api/service/admin/house/snapshot/list', '', 'house:data:list', 1, 1, 0, NOW(), NOW())
ON DUPLICATE KEY UPDATE parent_id=VALUES(parent_id), name=VALUES(name), icon=VALUES(icon), type=VALUES(type),
path=VALUES(path), component=VALUES(component), permission=VALUES(permission), sort=VALUES(sort),
status=VALUES(status), hidden=VALUES(hidden), deleted_at=NULL;
-- ============ 6) 超管角色绑定新菜单role_id=1 超管 ============
INSERT IGNORE INTO admin_role_menu (role_id, menu_id, created_at, updated_at)
SELECT 1, id, NOW(), NOW() FROM admin_menu WHERE id IN (90,91,92,93,94,910,911,912,913,920,921,922,923,924,930,931,932,933,940);