返回作品

企业站官网系统

创建于 2025 年 3 月 26 日

标签
  • Java 8
  • Spring Boot 2.5.15
  • RuoYi 3.8.9
  • MyBatis-Plus 3.5.4
  • easy-query
  • MySQL
  • Redis
  • Vue 2.6
  • Element UI 2.15
  • UEditorPlus
  • Axios
  • Swagger

项目介绍

企业站官网系统是一个基于若依 RuoYi 3.8.9 经典版(Spring Boot 2.5.15 + Vue 2 前后端分离)搭建的行业门户网站项目,仓库里没有项目专属 README,本文基于对后端 src 源码、ry-guanwang.sql 数据库脚本与前端 views 页面的实际探索整理。从 SQL 种子数据可以看出,系统实际落地为”长沙市工程机械行业协会”官网——由三一集团、中联重科、铁建重工、山河智能、湖南大学、长沙银行等发起,会员 200 余家;库里真实填充了协会的集群介绍、组织架构、产业介绍(含宣传视频)、通知公告、工程机械海外营销培训报名、团体标准征求意见、“智赋万企”数字化转型论坛等运营内容,是一个带真实业务内容的完整交付项目。

项目由 20250326-企业站官网-api(RuoYi 多模块后端,含新增的 com.ruoyi.cms 模块)与 admin-web(Vue 2 管理后台)组成,仓库根目录还附带 长沙市工程机械行业协会/(首页 PSD/图片/内容文档)、若依环境使用手册.docx官网问题-250402.docx(迭代问题记录)等交付资料。业务围绕”门户展示 + 内容运营 + 入会转化”建模,核心是 4 张业务表:cms_article(文章)、cms_column(栏目)、cms_carousel(轮播图)、cms_apply(入会申请)。

项目架构

项目沿用若依标准的多模块单体架构,前端同时承载管理后台与官网门户两类页面:

模块技术栈说明
ruoyi-adminSpring Boot 2.5.15启动与控制器层,新增 com.ruoyi.cms 包:admin/app 两组 Controller、UEditor 配置接口
ruoyi-common / system / frameworkMyBatis-Plus 3.5.4、easy-query框架基础能力;业务实体同时标注 MyBatis-Plus 与 easy-query 注解
ruoyi-quartz / generatorQuartz、代码生成若依原生模块
admin-webVue 2.6、Element UI 2.15、Vuex、vue-router、axios管理后台(src/views/cms/)+ 官网门户(src/views/register/)共用同一前端工程
ry-guanwang.sqlMySQL(utf8mb4)完整库脚本:框架表(sys_、qrtz_)+ 4 张 cms 业务表 + 真实栏目与文章数据

最值得记录的技术点是 easy-query 与 MyBatis-Plus 双 ORM 并存CmsArticle 等实体同时标注 MyBatis-Plus 的 @TableName/@TableId 与 easy-query 的 @Table/@EntityProxy(实现 ProxyEntityAvailable<CmsArticle, CmsArticleProxy> 接口并生成 Proxy 类),Controller 不再依赖 Mapper XML,而是注入 EasyEntityQuery 以类型安全的实体代理写法完成查询——例如管理端文章列表按 isTop/isHead/isSpecial/isRecom 降序、addTime 降序排序,前台 AppCmsArticleController 则用 easyEntityQuery.updatable(cmsArticle).executeRows() 一行完成浏览量 +1 的更新。删除接口特意 disableLogicDelete() 禁用逻辑删除以走物理删除,细节可见工程取舍。

前端富文本采用 UEditorPlus(edit.vue 中配置 UEDITOR_HOME_URL: '/static/UEditorPlus/',后端 UeEditorController 从 classpath 的 ueditor/config.json 读取配置并处理图片上传),package.json 中还保留了 wangEditor 5 与 quill 依赖,内容编辑生态相当完整。文章内容里的图片、视频均走若依 /profile/upload/ 静态资源路径,uploadPath 中留存了迭代过程的截图与视频素材。

核心功能

文章内容管理(cms_article)。 文章字段设计完整:所属栏目、封面图、四个运营标记(is_head 头条 / is_special 特荐 / is_top 置顶 / is_recom 推荐)、来源、作者、点击量、SEO 标题/关键词/描述、富文本内容、状态(0 屏蔽 / 1 正常)、排序号、外链(is_link + link_url)。管理端 CmsArticleController/cms/article)提供标准 CRUD + Excel 导出,全部带 @PreAuthorize("@ss.hasPermi('cms:article:*')") 权限、@Log 操作日志与 Swagger 注解;列表按”置顶 → 头条 → 特荐 → 推荐 → 时间”多级排序,符合门户内容运营的常规权重逻辑。前台 AppCmsArticleController/api/cms/article@Anonymous 匿名访问)提供列表与详情,详情接口自动把 click 点击数 +1。另有一个 recomList 接口:查出”首页新闻”栏目下所有子栏目,再取其中 is_recom=1 的最新 5 篇,专门喂给首页新闻区。

栏目管理(cms_column)。 树形父子结构,支持”文章模型 / 单页模型”两种内容形态:单页模型直接在栏目表存富文本 content(如”集群介绍""组织架构”页面),文章模型则挂接文章列表;栏目还配置了列表页/详情页模板字段、封面图(二级页横幅)、外链与排序。SQL 中真实栏目树包括:关于集群(集群介绍/组织架构/产业介绍/产品介绍)、促进机构(机构介绍/服务能力/主要规划/申请入会)、新闻资讯(通知公告等子栏目),与门户导航一一对应。管理端 /app/column 提供 CRUD、/tree 树查询与 changeStatus 启停。

官网门户前端(views/register)。 官网页面与管理后台共用同一 Vue 工程,这是本项目最有特色的部分。index.vue 首页由组件拼装:SiteHeader(站点头)、MainNav(从 /app/column/list 动态渲染主导航)、BannerCarousel(轮播图,数据来自 cms_carousel,失败时回退本地 banner1.png)、NewsSection(左侧图集轮播 + 右侧多栏目 Tab 切换新闻列表,带 HOT 标记、加载与空态)、AssociationInfo(协会信息)、ClusterServices(集群服务与国际专栏)、ClusterPlatform(集群平台)、MemberCompanies(会员企业)、SiteFooter(页脚),另配右侧浮动”申请入会 / TOP”按钮与成功弹窗。columnPage.vue 为栏目列表页,articlePage.vue 为文章详情页(面包屑、发布时间/浏览量/作者、分享点赞、上一篇/下一篇),secondaryPage.vue 为单页模型页面。

在线入会申请与审核(cms_apply)。 前台 RegisterForm 是完整的入会表单:企业名称、企业类型、联系人、电话、邮箱、用户名/密码、企业简介、企业 LOGO 上传与营业执照上传(JPG/PNG ≤5MB,UploadComponent 封装),带验证码校验;提交调用 POST /api/cms/apply@Anonymous 匿名 + @Log 记录),AppCmsApplyController 落库并记录申请时间。管理后台 views/cms/apply/index.vue 提供申请列表(状态 0 待审核 / 1 通过 / 2 拒绝)、详情查看、状态流转下拉操作与 Excel 导出,形成”官网获客 → 后台审核”的完整闭环。

轮播图管理(cms_carousel)。 仅 5 个字段(图片路径、类别、排序、状态),管理端上传维护,前台首页按 order_num 排序渲染 Banner 与新闻区图集。

功能截图

暂无运行截图。

快速上手

  1. 导入数据库脚本并初始化:
mysql -u root -p < ry-guanwang.sql   # 含框架表、4 张 cms 业务表与真实栏目/文章/申请数据
  1. 启动后端:进入 20250326-企业站官网-api,确认 ruoyi-admin/src/main/resources/application-druid.yml 中数据库配置与 application.yml 中 Redis(默认 6379)配置,然后执行:
mvn install -DskipTests
cd ruoyi-admin && mvn spring-boot:run   # http://localhost:8080
  1. 启动前端(管理后台 + 官网门户共用):
cd admin-web && npm install && npm run dev
  1. 使用框架预置账号 admin / admin123 登录管理后台,在”文章管理、栏目管理、轮播图管理、申请入会”菜单下维护内容;官网门户直接访问前端路由(如 /register/index)即可看到前台页面,并可直接体验入会申请提交流程。

总结

企业站官网系统是若依 RuoYi 3.8.9 上的一次”门户 + CMS”典型二次开发:后端用 4 张业务表支撑文章、栏目、轮播、入会申请四个模块,管理端与官网前台共用一套 Vue 工程,通过 admin/cms/**,需登录)与 app/api/cms/**/app/**,匿名)两套 API 分离权限边界。技术上它延续了”若依 + easy-query 双 ORM”的实践,用实体代理查询替代 Mapper XML,并集成 UEditorPlus 富文本、多级运营标记排序、SEO 字段与浏览量自增等门户内容系统标配能力;前端则以组件化方式把首页拆成可独立维护的区块。由于 SQL 中沉淀的是长沙市工程机械行业协会的真实运营数据(培训报名、展会邀请函、标准征求意见等),仓库本身就是一份”框架二次开发 + 真实内容上线”的完整案例——从目录里同时躺着的 PSD 设计稿、环境手册和问题记录文档,能清晰看到从设计、开发到迭代交付的全过程,作为企业官网类项目的参考价值很高。