金融博客系统
创建于 2025 年 10 月 30 日
项目介绍
金融博客系统是一个把”内容创作”与”券商导流返佣”打通的财经内容社区:普通用户可以在平台上撰写、发布财经分析文章并设置付费积分,读者通过充值或赚取积分购买解锁;同时平台集成 Exness Affiliates(联属营销)API,用户可绑定自己的券商交易账号,实时查询返佣报表并申请提现,形成”写文章引流 → 读者开户入金 → 平台/作者获取返佣 → 提现”的商业闭环。
仓库目录下包含 Spring Boot 多模块后端(ruoyi-vue-pro-金融博客,核心模块 yudao-module-finance-blog)、两套前端——Vue 3 用户端(web-pc-金融博客)与 Vue 3 管理后台(web-admin-金融博客)、多数据库版本的 SQL 脚本(sql/mysql/ruoyi-vue-pro.sql 等,业务表统一 finance_blog_ 前缀)以及项目编译状态说明文档。后端基于芋道 ruoyi-vue-pro(Java 8 / Spring Boot 2.7)扩展,直接复用了框架的会员体系(yudao-module-member)中的用户、积分能力。
项目架构
项目主体为 Spring Boot 2.7 多模块单体架构,后端按 controller → service → mapper → dataobject 分层,核心业务集中在 yudao-module-finance-blog:
| 模块 | 技术栈 | 说明 |
|---|---|---|
| yudao-module-finance-blog | Spring Boot、MyBatis-Plus、Redis | 金融博客业务后端:文章、分类、标签、评论、点赞、收藏、分享、付费购买、券商账号、返佣、充值、提现、站点配置 |
| yudao-module-member / system / infra | Spring Boot | 芋道基础能力:会员用户与积分(MemberPointApi)、系统管理、基础设施(文件、日志) |
| yudao-server | Spring Boot | 启动模块,统一对外提供 /admin-api 与 /app-api 接口 |
| web-pc-金融博客 | Vue 3、Element Plus、Vite、Pinia、axios | 用户端 PC 站:首页、文章详情、分类、搜索、个人中心 |
| web-admin-金融博客 | Vue 3、Element Plus、TypeScript | 管理后台,src/views/finance-blog 下含文章、分类、标签、评论、股票账户、提现、交易商配置、站点配置 8 个页面 |
后端接口分 Admin 端(controller/admin)与用户 App 端(controller/app)两套:Admin 端提供文章审核、分类/标签 CRUD、评论审核、股票账户审核、提现审核打款、交易商配置与站点配置等管理接口;App 端面向用户开放文章发布/更新/删除/分页/详情/购买、点赞/收藏/分享、评论、绑定券商账号、返佣查询、充值下单、提现申请/取消/手续费试算等接口。业务数据共 16 张 finance_blog_* 表:finance_blog_article、finance_blog_category、finance_blog_tag、finance_blog_attachment、finance_blog_comment、finance_blog_like、finance_blog_favorite、finance_blog_share、finance_blog_purchase_record、finance_blog_recharge_order、finance_blog_broker_config、finance_blog_stock_account、finance_blog_commission_log、finance_blog_withdraw、finance_blog_user_withdraw_config、finance_blog_config。文章表区分内容类型(富文本 HTML / Markdown)与审核、发布、付费状态,并记录浏览量、点赞数等统计字段;仓库另附 sql/mysql/update_article_author.sql,按 author_id 关联 member_user 回填存量文章的作者昵称。
核心功能
文章发布与付费阅读。 用户可在个人中心发布文章:内容支持富文本(wangEditor)与 Markdown(vditor 编辑器)两种格式,可设置分类、标签与封面图;文章详情页由 ArticleContent.vue 渲染——富文本内容经 DOMPurify 白名单清洗防 XSS,Markdown 经 marked 转换并用 highlight.js 代码高亮。付费文章(isPaid)按 paidPoints 积分定价,未购买用户只能看到免费试读段落(AppArticleDetailRespVO 对内容做截断),点击购买走 ArticleServiceImpl.purchaseArticle():通过 MemberPointApi 扣除积分(业务类型 BLOG_ARTICLE_READ),并写入 finance_blog_purchase_record 购买记录,防止重复扣费;作者本人无需购买即可查看全文。
内容审核与管理后台。 文章发布后进入待审核状态,管理后台的 auditArticle() 记录审核状态(待审核/通过/驳回)、审核备注与审核时间;审核通过后才能由 publishArticle() 正式发布,也可随时 offlineArticle() 下架。评论同样走审核流程(CommentAuditReqVO),分类与标签支持完整 CRUD,另有 BlogConfigController 管理站点级配置。管理后台 8 个页面与对应 API 文件齐全,实现内容的全流程管控。
券商账号与返佣查询。 系统集成 Exness Affiliates 官方 API:ExnessApiClientImpl 基于 RestTemplate 调用 https://my.exnessaffiliates.com 的 /api/v2/auth/(账号认证)、/api/reports/rewards/(返佣报表)、/api/reports/clients/accounts/(客户交易账号)接口,交易商信息由 finance_blog_broker_config 配置(支持多家交易商、认证方式等)。用户绑定自己的交易账号后,可在个人中心查看佣金汇总(可用佣金、待审核佣金)与返佣明细——AppRebateController 按交易商配置实时调用 Exness API 拉取指定账号、日期区间的返佣数据,无需人工对账。
积分充值与佣金提现。 积分充值走 ZPayUtil 第三方支付:参数按 key 升序排序后生成 MD5 签名(sign_type=MD5),POST 到支付网关 /mapi.php 创建订单(支持微信/支付宝),支付回调再校验签名防伪造,充值成功写入 finance_blog_recharge_order。佣金提现支持用户端申请(apply)、取消(cancel)、手续费试算(calculate),管理后台审核(auditWithdraw)时通过 Exness API 实时获取可用佣金校验余额,通过后登记打款信息(WithdrawTransferReqVO),状态机覆盖待审核/通过/驳回与打款完成。
互动与内容流。 文章支持点赞(可取消)、收藏(收藏夹分页)、分享(QQ 空间、QQ 好友、新浪微博、微信二维码弹窗,finance_blog_share 记录次数);首页提供专栏推荐文章、分类 Tab 与文章流,后端按浏览量排序提供热门文章接口(/hot,支持按分类过滤),另有搜索页与作者信息页,形成完整的 UGC 内容消费体验。
功能截图
暂无运行截图。
快速上手
- 创建数据库并导入脚本:
mysql -u root -p -e "CREATE DATABASE ruoyi-vue-pro DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p ruoyi-vue-pro < sql/mysql/ruoyi-vue-pro.sql # 含 finance_blog_* 业务表
mysql -u root -p ruoyi-vue-pro < sql/mysql/update_article_author.sql # 回填存量文章作者
- 进入后端目录
ruoyi-vue-pro-金融博客,修改yudao-server/src/main/resources/application-local.yaml中的数据库与 Redis 连接,然后启动:
mvn install -DskipTests
cd yudao-server && mvn spring-boot:run # 管理端 http://localhost:48080,用户端 http://localhost:48081
- 启动两套前端:
cd web-admin-金融博客 && pnpm install && pnpm dev # 管理后台
cd web-pc-金融博客 && npm install && npm run dev # 用户端 PC 站
- 使用框架预置账号 admin / admin123 登录管理后台,进入”金融博客”菜单体验文章审核、分类标签、评论、提现等管理功能;用户端注册登录后即可发布文章、购买付费内容、绑定券商账号查询返佣并申请提现。
总结
金融博客系统是一个”内容社区 + 知识付费 + 券商返佣”三合一的实战型项目:既有富文本/Markdown 双格式文章发布、付费积分解锁、点赞收藏分享等典型 UGC 功能,又有文章评论审核、分类标签、站点配置等管理闭环,还通过 Exness Affiliates API 集成打通了交易账号绑定、返佣实时查询与佣金提现,并用 ZPay 第三方支付完成积分充值。项目在芋道 ruoyi-vue-pro 的工程化底座上展示了大量可迁移的企业级细节——MemberPointApi 积分扣减与防重购买记录、MD5 签名与回调验签的支付接入、RestTemplate 封装第三方券商 API、审核状态机与提现余额校验,以及 Vue 3 端 DOMPurify 防 XSS、marked 代码高亮、vditor/wangEditor 双编辑器等前端实践,适合作为学习 Spring Boot 多模块工程、内容型产品与支付/返佣类业务建模的完整参考案例。