# company_project **Repository Path**: calebfsf/company_project ## Basic Information - **Project Name**: company_project - **Description**: 1024 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-24 - **Last Updated**: 2026-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 功德小铺 CyberDesk > 敲木鱼,攒功德,铺里啥都有。 > 一个「功德小铺」里摆着 8 个能打开、能玩、能用的 AI 小应用, > 用「功德积分」把所有模块串成一个活的产品。 ## 项目简介 「功德小铺」把 8 个独立小创意整合为一个作品 三个赛道,核心设计: - **功德积分体系**:敲电子木鱼是积分源头,发帖、评论、被点赞赚功德,彩虹屁、起名、 表格分析花功德,全站一个经济系统; - **共享基建**:失物招领 / 好物榜 / 生活地图共用一套帖子模型,所有 AI 调用走统一网关; - **首页按功能分区**:🎡 解压摸鱼区 / 🏘️ 工区生活帮 / ⚙️ 效率工具箱。 ## 功能清单 | 分区 | 模块 | 功能 | |---|---|---| | 🎡 解压摸鱼区 | 🐟 赛博电子木鱼 | 敲击功德 +1、赛博佛语录、累计里程碑彩蛋(8/24/40 下)、防刷(1 秒间隔 + 每日 8 上限)、满额/升级弹庆祝 | | 🎡 解压摸鱼区 | 🌈 彩虹屁生成器 | 输入今日事迹,AI 生成三条风格夸奖,可复制,消耗 5 功德(每用户首次免费),AI 不可达时本地段子手兜底 | | 🎡 解压摸鱼区 | ✏️ AI 起名工坊 | 宝宝/项目/账号起名,四种风格,候选名 + 寓意解析 + 复制,消耗 10 功德(每用户首次免费) | | 🏘️ 工区生活帮 | 🔍 失物招领 | 发布(图片/地点/联系方式)、关键词与状态筛选、点赞、评论、点击看详情;**认领闭环**:B 认领时可顺手点赞 + 留言,认领即结束并进入历史记录,B 得 88 功德、A 得 666 功德(双方下次访问弹庆祝动画到账);状态标签区分 寻找中/待认领/已找到,认领按钮按寻物/招领显示「认领/我捡到了」 | | 🏘️ 工区生活帮 | 📦 工位好物榜 | 同事实测好物推荐、分类筛选、参考价、配图、点赞评论、点击看详情(状态:在架中) | | 🏘️ 工区生活帮 | 🗺️ 生活服务地图 | 快递/打印/理发等点位众包标记、地址、评分、点赞评论、点击看详情 | | 🏘️ 工区生活帮 | 🛍️ 二手市集 | 闲置/零食发布交易:标价出售或以物易物;多人想要可公开出价竞价,卖家接受出价或买家直接购买即成交,双方得功德(买家 +66 即时、卖家 +88 下次到账)并弹庆祝动画;成交/下架进入「历史记录」并展示在在售列表下方,操作按钮吸底对齐 | | ⚙️ 效率工具箱 | 📚 内部制度百事通 | 制度文档 AI 问答(bigram 检索 + 标题加权排序),回答必须带出处,查不到明说;管理员可在前端「管理文档」弹窗增删改单篇制度 | | ⚙️ 效率工具箱 | 📊 表格秒变分析 | 上传 Excel/CSV,pandas 统计 + ECharts 图表 + AI 结论;附「演示数据」一键试跑;每日免费 1 次,超额 30 功德 | 另有:🙏 我的功德(等级进度弹窗 + 流水)、🏆 功德排行榜(仅前 10 名,不含管理员)。 ## 功德经济 | 行为 | 功德 | |---|---| | 敲电子木鱼 | +1(每日上限 8) | | 发布帖子 | +5 | | 标记已找到 | +2 | | 发表评论 | +1 | | 帖子被点赞 | +1(作者获得) | | 认领失物成功 | +88(认领人 B,即时到账) | | 失物被认领 | +666(失主 A,下次访问时到账,伴随庆祝动画) | | 二手出价/申请交换 | +1 | | 二手成交(买家) | +66(即时到账) | | 二手成交(卖家) | +88(下次访问时到账,伴随庆祝动画) | | 彩虹屁生成 | -5(每用户首次免费) | | AI 起名 | -10(每用户首次免费) | | 表格分析 | 每日免费 1 次,超额 -30 | 等级:小沙弥(0) → 敲鱼童(8) → 木鱼精(30) → 功德使(60) → 罗汉侠(100) → 赛博佛祖(150)。 ## 技术栈 - 后端:Django 5.2+(LTS,兼容 Python 3.11;3.12+ 环境自动用 6.0)+ Django REST Framework + SQLite - 前端:Vue 3 + Vite + Element Plus + ECharts - AI 网关:OpenAI 兼容接口,统一封装(`reasoning_effort='low'` + 400 去参重试 + 模板兜底) - 表格分析:pandas + openpyxl(计算全用 pandas,AI 只写结论,不算数) - 部署:Django 8000 单端口,whitenoise 托管前端 dist,SPA 路由由 Django 兜底 ## 目录结构 ``` cyber_desk/ ├── backend/ # Django 后端 │ ├── cyberdesk/ # 项目配置(settings/urls/wsgi) │ └── apps/ │ ├── accounts/ # 账号 + 功德积分(钱包/流水/等级/首页聚合) │ ├── posts/ # 社区帖子(失物/好物/地图三用模型) │ ├── aigate/ # AI 网关(LLM 客户端 + prompt 模板) │ ├── woodfish/ # 电子木鱼(防刷 + 语录库) │ ├── praise/ # 彩虹屁生成器 │ ├── naming/ # AI 起名工坊 │ ├── policy/ # 制度知识库(检索 + AI 问答,含种子制度) │ ├── excel/ # 表格分析(pandas + 图表数据 + AI 结论 + 演示数据) │ └── trade/ # 二手市集(标价/易物 + 出价竞价 + 成交奖励) ├── frontend/ # Vue 3 前端 │ └── src/ │ ├── api/ # axios 封装与 API 模块 │ ├── components/ # 共享组件(PostCard/TradeCard/CelebrationHost/LevelModal/PolicyManageModal/反馈宿主/关闭按钮) │ ├── composables/ # useFeedback(toast/确认/输入)/ useCelebration(庆祝队列)/ useLevelModal(境界弹窗) │ ├── router/ # 路由(含登录守卫) │ ├── stores/ # 用户状态 │ └── views/ # 页面(首页/木鱼/彩虹屁/起名/失物/好物/地图/制度/表格/功德) └── README.md ``` ## 账号与游客模式 - **进入即注册**:登录页只有一个表单——用户名默认随机生成(可改)、密码必填、手机号选填; 用户名不存在则自动注册,已存在则校验密码,一个入口搞定登录注册; 用户名栏也可直接填已绑定的手机号 + 密码登录; - **游客模式**:未登录可浏览首页、帖子列表(失物/好物/地图),顶栏显示「游客浏览中」; 需登录的功能(木鱼/彩虹屁/起名/制度/表格/我的功德)点击或直接输 URL 都会展示登录门禁; - 帖子浏览无需登录,发布/点赞/评论/标记解决需要登录。 ## 互动与视觉反馈 - **全屏庆祝动画**(`CelebrationHost`):失物被认领、二手成交(买家「买到啦」/ 卖家「交易成功」)时全屏撒币 + 功德到账提示,自动消失或手动关闭; - **木鱼激励**:每日敲满弹出「今日修行圆满」横幅,累计功德跨越境界时弹出「境界提升」庆祝卡片; - **境界进度弹窗**:点击任意境界名,弹出 6 档阶梯,高亮当前档并显示距下一境界差多少; - **卡片详情弹窗**:点击帖子 / 二手卡片,查看完整正文、配图、互动数据与评论; - **统一反馈**:toast、二次确认、输入弹窗统一走 `useFeedback`,不直接用原生 `alert/confirm`。 ## 快速开始 ### 1. 后端 ```bash cd backend pip install -r requirements.txt python manage.py migrate python manage.py runserver 8000 ``` ### 2. 前端(开发模式,可选) ```bash cd frontend npm install npm run dev # 5173 端口,/api 代理到 8000 ``` ### 3. 前端(构建到单端口) ```bash cd frontend npm run build # 产物输出到 backend/static/dist,直接访问 http://127.0.0.1:8000 ``` ### 4. AI 网关配置(管理员网页配置) 管理员(admin)登录后,顶栏会出现「⚙️ AI配置」入口(或 `/admin/` → AI 接口配置): - 配置项:接口地址、API Key(脱敏保存,留空不修改)、模型名、超时秒数; - **保存后全站即时生效**:彩虹屁、AI 起名、制度百事通、表格分析自动使用新配置; - 保存前可先点「测试连接」验证连通性; - 数据库无配置时回退到 settings 默认值(环境变量 `CYBERDESK_AI_BASE/KEY/MODEL/TIMEOUT` 可覆盖); - AI 不可达时所有功能自动走本地兜底,不影响使用。 ## 主要 API | 方法与路径 | 说明 | |---|---| | `POST /api/accounts/enter/` | 进入(登录注册合一:新用户名自动注册,返回 token) | | `GET /api/accounts/random-name/` | 生成随机默认用户名(香客_xxxx) | | `GET /api/accounts/me/` | 我的功德 + 流水 | | `GET /api/accounts/desk/home/` | 首页聚合(模块/统计) | | `GET /api/accounts/leaderboard/` | 功德排行榜 | | `POST /api/woodfish/tap/` | 敲木鱼 | | `POST /api/praise/` | 彩虹屁生成 | | `POST /api/naming/` | AI 起名 | | `POST /api/policy/ask/` | 制度问答 | | `GET /api/policy/docs/` | 制度文档列表 | | `GET/POST /api/posts/?type=lost` | 帖子列表/发布(type: lost/goods/map) | | `POST /api/posts//like/` | 点赞 | | `POST /api/posts//comment/` | 评论 | | `POST /api/posts//resolve/` | 标记已找到 | | `POST /api/posts//claim/` | 认领失物(body: comment 留言, like 是否点赞) | | `POST /api/posts/upload-image/` | 图片上传 | | `GET/POST /api/aigate/config/` | AI 接口配置读取/保存(仅管理员,Key 脱敏) | | `POST /api/aigate/test/` | AI 接口连通性测试(仅管理员,支持临时配置) | | `GET/POST /api/trade/` | 二手物品列表/发布(trade_type: sell 需 price / barter 需 barter_expect) | | `POST /api/trade//bid/` | 出价(sell)或申请交换(barter) | | `POST /api/trade//buy/` | 直接购买(按标价成交) | | `POST /api/trade//accept-bid/` | 卖家接受出价成交(body: bid_id) | | `POST /api/trade//close/` | 卖家下架 | | `GET /api/excel/demo/` | 表格分析(演示数据) | 管理后台:`/admin/`(详见下方「管理后台」一节)。 ### 管理后台(部署预置账号) | 项 | 值 | |---|---| | 账号 | `admin` | | 密码 | `admin` | 后台能力:删除/管理用户上传的帖子(失物/好物/地图)、评论与点赞,查看功德流水与木鱼统计, 配置 AI 接口(全站生效), 维护制度知识库文档(新增/修改/删除单篇制度);管理员也可在制度页通过前端「管理文档」弹窗增删改。 删除帖子不会删除已上传的图片文件,图片在 `backend/media/posts/`,如需彻底清理请连同该目录定期手动处理。 ### 制度知识库维护 - **单篇增删改**:`/admin/` → 制度文档,直接编辑(标题/正文/标签); - **批量导入 docx**:把制度文件放入 `backend/tools/import_policies.py` 的 `DOCS` 列表, 在 backend 目录执行 `python tools/import_policies.py`——脚本按章节自动拆分为多篇 (长制度拆章后可避免检索截断),重复执行会先删同名旧数据; - 已导入《公共出行管理制度》(5 篇)与《AI软件使用管理制度》(10 篇)。 > 安全提示:admin/admin 仅适用于内网演示环境;正式部署后请立即改密: > `python manage.py changepassword admin` ## 开发约定 - 所有注释、文案使用中文; - 前端自适应布局(百分比 + `min(94%, 1400px)` 容器),表格 `word-break` 防长文本撑破; - 弹窗统一规范:右上角关闭按钮、遮罩点击不关、Esc 取消 / Enter 确认; - 不直接 `alert/confirm/prompt`,统一走 `useFeedback`。