返回作品

金融博客系统

创建于 2025 年 10 月 30 日

标签
  • Spring Boot
  • 芋道
  • RuoYi-Vue-Pro
  • Vue 3
  • 内容社区

项目介绍

金融博客系统是一个把”内容创作”与”券商导流返佣”打通的财经内容社区:普通用户可以在平台上撰写、发布财经分析文章并设置付费积分,读者通过充值或赚取积分购买解锁;同时平台集成 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-blogSpring Boot、MyBatis-Plus、Redis金融博客业务后端:文章、分类、标签、评论、点赞、收藏、分享、付费购买、券商账号、返佣、充值、提现、站点配置
yudao-module-member / system / infraSpring Boot芋道基础能力:会员用户与积分(MemberPointApi)、系统管理、基础设施(文件、日志)
yudao-serverSpring 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_articlefinance_blog_categoryfinance_blog_tagfinance_blog_attachmentfinance_blog_commentfinance_blog_likefinance_blog_favoritefinance_blog_sharefinance_blog_purchase_recordfinance_blog_recharge_orderfinance_blog_broker_configfinance_blog_stock_accountfinance_blog_commission_logfinance_blog_withdrawfinance_blog_user_withdraw_configfinance_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 内容消费体验。

功能截图

暂无运行截图。

快速上手

  1. 创建数据库并导入脚本:
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  # 回填存量文章作者
  1. 进入后端目录 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
  1. 启动两套前端:
cd web-admin-金融博客 && pnpm install && pnpm dev   # 管理后台
cd web-pc-金融博客 && npm install && npm run dev     # 用户端 PC 站
  1. 使用框架预置账号 admin / admin123 登录管理后台,进入”金融博客”菜单体验文章审核、分类标签、评论、提现等管理功能;用户端注册登录后即可发布文章、购买付费内容、绑定券商账号查询返佣并申请提现。

总结

金融博客系统是一个”内容社区 + 知识付费 + 券商返佣”三合一的实战型项目:既有富文本/Markdown 双格式文章发布、付费积分解锁、点赞收藏分享等典型 UGC 功能,又有文章评论审核、分类标签、站点配置等管理闭环,还通过 Exness Affiliates API 集成打通了交易账号绑定、返佣实时查询与佣金提现,并用 ZPay 第三方支付完成积分充值。项目在芋道 ruoyi-vue-pro 的工程化底座上展示了大量可迁移的企业级细节——MemberPointApi 积分扣减与防重购买记录、MD5 签名与回调验签的支付接入、RestTemplate 封装第三方券商 API、审核状态机与提现余额校验,以及 Vue 3 端 DOMPurify 防 XSS、marked 代码高亮、vditor/wangEditor 双编辑器等前端实践,适合作为学习 Spring Boot 多模块工程、内容型产品与支付/返佣类业务建模的完整参考案例。