# korla **Repository Path**: gitc_1_0/korla ## Basic Information - **Project Name**: korla - **Description**: 旅游系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 库尔勒智慧旅游管理系统 README ## 1. 项目简介 本系统是一个基于 **SpringBoot + Vue3 + MySQL** 的智慧旅游管理平台,围绕“游客服务、景区运营、平台治理”三大业务域构建。 系统采用前后端分离架构,支持多角色登录与权限隔离,核心目标是解决传统旅游管理中的数据分散、流程效率低、用户体验差等问题。 --- ## 2. 技术栈与架构 ### 2.1 技术栈 - 前端:Vue3、Vite、Element Plus、Axios - 后端:SpringBoot 3.x、Spring MVC、Spring Data JPA、JWT - 数据库:MySQL - 鉴权:AccessToken + RefreshToken + 黑名单机制 ### 2.2 架构分层 - 表现层:前端页面(游客端、景区管理员端、系统管理员端) - 应用层:Controller + Service(业务编排、权限校验) - 数据层:JPA Repository + MySQL(业务持久化) --- ## 3. 角色与模块清单(按角色) ## 3.1 未登录游客 ### 3.1.1 模块:游客公开访问 - 子模块:游客首页(`/guest/home`) - 子模块:景点列表(`/guest/scenic`) - 子模块:景点详情(`/guest/scenic/:id`) - 子模块:攻略广场(`/guest/guides`) - 子模块:搜索筛选(`/guest/search`) ### 3.1.2 模块:认证入口 - 子模块:登录页(`/login`) - 子模块:注册页(`/register`) --- ## 3.2 游客(TOURIST) ### 3.2.1 模块:行程规划 - 子模块:输入出行天数(1~7天) - 子模块:生成行程步骤 - 子模块:联动通知写入 ### 3.2.2 模块:收藏与足迹 - 子模块:景点检索 - 子模块:一键收藏 - 子模块:足迹记录 - 子模块:收藏/足迹列表展示 ### 3.2.3 模块:攻略发布与互动展示 - 子模块:攻略标题与内容发布 - 子模块:发布结果反馈 - 子模块:攻略列表浏览(点赞/评论统计展示) ### 3.2.4 模块:消息通知 - 子模块:通知列表查询 - 子模块:按日期展示 --- ## 3.3 景区管理员(SCENIC_ADMIN) ### 3.3.1 模块:景点运营 - 子模块:景点新增/更新(ID、名称、等级、标签、评分、上线状态) - 子模块:景点列表查看 ### 3.3.2 模块:库存预约 - 子模块:库存规则保存(日限流、小时限流) - 子模块:库存规则列表查看 ### 3.3.3 模块:投诉处理 - 子模块:工单提交(景点ID、投诉内容) - 子模块:工单列表查看(状态跟踪) ### 3.3.4 模块:营销活动 - 子模块:活动发布(标题、日期范围) - 子模块:活动列表查看(状态跟踪) --- ## 3.4 系统管理员(SYSTEM_ADMIN) ### 3.4.1 模块:景区入驻审核 - 子模块:审核列表查询 - 子模块:通过/驳回操作 - 子模块:状态回写 ### 3.4.2 模块:内容审核 - 子模块:内容审核任务列表查询 - 子模块:通过/驳回操作 - 子模块:状态回写 ### 3.4.3 模块:权限配置 - 子模块:角色权限映射查询 - 子模块:角色权限更新 ### 3.4.4 模块:运营看板 - 子模块:用户增长指标 - 子模块:订单趋势指标 - 子模块:景点总量指标 - 子模块:投诉总量指标 --- ## 4. 模块流程闭环(端到端) 以下闭环全部采用统一模式:**前端触发 -> 后端校验 -> 业务落库 -> 状态回写 -> 列表回显 -> 可追踪**。 ## 4.1 认证闭环(登录/刷新/登出) 1. 用户提交账号、角色、密码 2. 后端校验账号角色与密码 3. 生成 AccessToken 与 RefreshToken 4. 前端存储 token 并携带到后续请求 5. AccessToken 失效时自动调用 refresh 6. 登出时将 AccessToken 加入黑名单并撤销 RefreshToken 7. 后续请求再用旧 token 会被拒绝(401) ## 4.2 景点运营闭环 1. 景区管理员填写景点信息并点击“保存景点” 2. 前端调用 `POST /api/scenic-admin/scenic` 3. 后端保存到 `scenic_spot` 4. 返回保存后的景点对象 5. 前端提示成功并刷新景点列表 6. 游客端景点列表/详情可立即看到更新结果 ## 4.3 库存规则闭环 1. 景区管理员填写规则并点击“保存规则” 2. 前端调用 `POST /api/scenic-admin/inventory` 3. 后端更新 `inventory_rule`(以 scenic_id 为主键) 4. 前端调用 `GET /api/scenic-admin/inventory` 刷新规则列表 5. 页面可见保存结果,形成配置->回显闭环 ## 4.4 投诉工单闭环 1. 景区管理员提交投诉内容 2. 前端调用 `POST /api/scenic-admin/complaint` 3. 后端写入 `complaint_ticket`,初始状态“待处理” 4. 前端刷新 `GET /api/scenic-admin/complaint` 5. 工单状态在列表可追踪,形成提交->处理->展示闭环 ## 4.5 营销活动闭环 1. 景区管理员提交活动标题与日期 2. 前端调用 `POST /api/scenic-admin/marketing` 3. 后端写入 `marketing_activity`,初始状态“进行中” 4. 前端刷新 `GET /api/scenic-admin/marketing` 5. 活动从发布到展示全流程闭环 ## 4.6 行程规划闭环 1. 游客输入天数并点击“生成行程” 2. 前端调用 `GET /api/tourist/itinerary?days=x` 3. 后端基于景点列表生成行程建议 4. 同时向 `notification` 写入“行程规划已生成” 5. 前端展示行程步骤并在通知中心可见消息 ## 4.7 收藏与足迹闭环 1. 游客在景点表格中点击“收藏/足迹” 2. 前端调用 `POST /api/tourist/favorite` 或 `POST /api/tourist/footprint` 3. 后端写入 `user_favorite` / `user_footprint` 4. 前端同步刷新 `GET /favorite`、`GET /footprint` 5. 页面即时回显,形成行为沉淀闭环 ## 4.8 攻略发布与审核闭环 1. 游客发布攻略 2. 前端调用 `POST /api/tourist/guide` 3. 后端写入 `guide_post` 4. 后端同步创建 `content_audit_task`(状态“待审核”) 5. 系统管理员在内容审核模块处理任务 6. 审核状态回写并可持续追踪 ## 4.9 景区入驻审核闭环 1. 系统管理员查询 `GET /api/system-admin/scenic-audit` 2. 执行通过/驳回 `POST /api/system-admin/scenic-audit` 3. 后端更新 `audit_application.status` 4. 列表刷新后展示最新审核状态 5. 形成“申请->审核->结果回显”闭环 ## 4.10 内容审核闭环 1. 系统管理员查询 `GET /api/system-admin/content-audit` 2. 审核通过/驳回 `POST /api/system-admin/content-audit` 3. 后端更新 `content_audit_task.status` 4. 刷新页面后状态可追踪 5. 与游客发布攻略形成前后贯通闭环 ## 4.11 权限配置闭环 1. 系统管理员加载权限映射 `GET /api/system-admin/permission` 2. 提交角色权限 `POST /api/system-admin/permission` 3. 后端更新 `permission_config` 4. 返回最新角色-权限映射 5. 权限变更立即生效于后续鉴权逻辑 --- ## 5. 数据库表结构(文档版) 说明:以下字段基于当前实体类定义整理(JPA);其中 `PK` 表示主键。 | 表名 | 业务含义 | 核心字段 | |---|---|---| | `sys_user` | 系统用户 | `id(PK)`, `username`, `role`, `password_hash` | | `scenic_spot` | 景点信息 | `id(PK)`, `name`, `level`, `tag`, `score`, `online` | | `inventory_rule` | 景点库存规则 | `scenic_id(PK)`, `daily_limit`, `hourly_limit` | | `complaint_ticket` | 投诉工单 | `id(PK)`, `scenic_id`, `content`, `status` | | `marketing_activity` | 营销活动 | `id(PK)`, `title`, `date_range`, `status` | | `guide_post` | 游客攻略 | `id(PK)`, `user_id`, `title`, `content`, `likes`, `comments` | | `notification` | 用户通知 | `id(PK)`, `user_id`, `title`, `created_date` | | `user_favorite` | 用户收藏 | `id(PK)`, `user_id`, `scenic_id` | | `user_footprint` | 用户足迹 | `id(PK)`, `user_id`, `scenic_id`, `created_at` | | `audit_application` | 景区入驻审核申请 | `id(PK)`, `company_name`, `status` | | `content_audit_task` | 内容审核任务 | `id(PK)`, `type`, `status` | | `permission_config` | 角色权限配置 | `id(PK)`, `role_name(唯一)`, `permissions_json` | | `refresh_token` | 刷新令牌池 | `token_id(PK)`, `user_id`, `role`, `expires_at`, `revoked` | | `token_blacklist` | 访问令牌黑名单 | `token_id(PK)`, `expires_at` | --- ## 6. 主要接口分组速览 ### 6.1 认证接口 `/api/auth` - `POST /register` 注册 - `POST /login` 登录 - `POST /refresh` 刷新令牌 - `POST /logout` 退出登录 ### 6.2 公开接口 `/api/public` - `GET /scenic` 景点列表 - `GET /scenic/detail` 景点详情 - `GET /guide` 攻略列表 - `GET /search` 关键词搜索 ### 6.3 游客接口 `/api/tourist` - `GET /itinerary` - `POST/GET /favorite` - `POST/GET /footprint` - `POST /guide` - `GET /notification` ### 6.4 景区管理员接口 `/api/scenic-admin` - `POST /scenic` - `POST/GET /inventory` - `POST/GET /complaint` - `POST/GET /marketing` ### 6.5 系统管理员接口 `/api/system-admin` - `GET/POST /scenic-audit` - `GET/POST /content-audit` - `GET/POST /permission` - `GET /dashboard` --- ## 7. 运行说明(简版) ### 7.1 后端 1. 配置 `backend/src/main/resources/application.yml` 中数据库连接 2. 启动 SpringBoot(端口默认 `8082`) ### 7.2 前端 1. 进入 `frontend` 目录安装依赖 2. 配置 `VITE_API_BASE_URL`(默认 `http://localhost:8082/api`) 3. 启动前端并访问页面