行业研究资料长期分散在券商研报、咨询机构公众号、招标与融资数据等渠道,用户要么购买高价数据库,要么在几十个来源之间反复检索,很难低成本判断一份报告是否值得读。本项目立项的出发点是做一个面向分析师、投资经理和中小企业决策者的行业情报门户,把公开合法报告与自有整理报告集中入库,再叠加融资事件和 AI 招投标数据,打通"找资料—看摘要—预览判断—按权限下载"的完整链路。业务背景上,国内中小企业和个人研究者对行业数据的需求真实存在但预算有限,愿意为轻量、可检索、按量下载的服务付费;内容运营方也需要一个能控制免费与会员权限、能看清下载与会员变更记录的平台,因此用免费额度加会员下载的方式承载商业闭环。
平台分为前台门户、微信小程序和后台管理三端。前台包含首页(搜索入口、热门行业分类、最新与热门报告、公众号文章、平台统计)、报告库(关键词搜索,按分类、标签、机构、免费/会员权限筛选,支持最新、热度、下载量排序与分页)、报告详情(摘要、目录、封面、机构、页数、浏览量、收藏与下载)、只暴露预览文件的 PDF 预览页、会员权益页、登录注册和个人中心(剩余额度、收藏、下载历史)。微信小程序复用同一套后台服务,提供首页、报告、文章、招投标、我的五个 Tab,支持微信一键登录与邮箱账号绑定、PDF 下载打开、分享、下拉刷新和触底分页。后台管理包含数据仪表盘、报告上传与编辑、上下架与软删除、批量上传、分类标签机构等元数据维护、文件资产管理、用户管理、会员开通与会员变更日志、下载记录、业务日志、公告和公众号文章管理。AI 能力方面,调用 DeepSeek 解析报告 PDF 自动推荐标签,AI 招投标数据支持按日期与标签检索和摘要分析,融资事件支持 Excel 批量导入、去重与导入批次记录。权限上区分游客、注册用户、会员与管理员,免费用户每日可下载 10 篇、会员每日 50 篇,下载必须经后端校验后流式返回文件。
独立负责从需求梳理、数据库设计、后端接口、Web 前端、微信小程序到服务器部署运维的全流程开发。后端采用 Spring Boot 3.2 + Java 17 分层单体架构(Controller/Service/Mapper/Entity/DTO),MyBatis-Plus 负责数据访问与逻辑删除,MySQL 8 存业务数据,Redis 承载登录态与缓存,MinIO 存 PDF 原件、封面与预览图,数据库只保存 object key 与文件元数据;安全采用 Spring Security 双轨 JWT,普通用户与管理员使用独立密钥、独立过滤器链和独立 token,路径级隔离 /api/** 与 /api/admin/**。Web 端使用 Vue 3 + Vite + TypeScript + Tailwind CSS + Pinia + Vue Router,小程序基于 uni-app + wot-ui + alova + z-paging 开发,一套后端同时服务 Web 与小程序。生产环境使用云服务器 systemd 托管后端 jar,Nginx 托管前端静态资源并绑定 HTTPS 域名。主要难点与解决方案:一是下载权限控制,原始文件地址不对外暴露,后端依次校验登录态、用户状态、报告状态、会员等级与每日额度后才流式返回文件,额度按自然日重置;二是预览渲染,部分扫描件 PDF 内嵌 JPEG2000/JBIG2 图像导致预览生成失败,通过引入 jai-imageio 与 jbig2-imageio 解码解决;三是融资数据导入,使用文件 sha256、导入批次表与 event_key 实现幂等,自动识别重复行和历史行,避免重复入库;四是微信登录,通过 jscode2session 换取 openid 并与已有邮箱账号绑定,同时处理小程序端 PDF 下载的 token 传递与错误
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论