Lottery 分布式抽奖系统:Lottery-ERP 运营后台 UI 工程搭建 —— DDD 分层结构与 layui 落地实践

发布时间:2026/9/26 15:49:56
Lottery 分布式抽奖系统:Lottery-ERP 运营后台 UI 工程搭建 —— DDD 分层结构与 layui 落地实践 文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载Lottery 分布式抽奖系统在完成核心抽奖服务Lottery 工程之后还需要一套面向运营人员的 B 端管理系统用来配置活动、查询数据、审核状态。本篇基于「第01节UI工程搭建」展开系统讲解 Lottery-ERP 运营后台的选型思路、DDD 分层工程结构与 layui 前端资源的整合方式读完你将掌握后端 Java 团队在没有专职前端的情况下如何快速搭建一套内部运营后台的完整方案。一、为什么需要一个独立的运营后台在整个营销体系中抽奖系统只是众多微服务之一而支撑运营人员日常工作的管理端必不可少。参考 Lottery 抽奖系统整体介绍 中对六个工程的拆分其中Lottery-ERP 就是 B 端运营系统用于满足运营人员对活动的查询、配置、修改、审核等操作它与面向 C 端用户的 H5 抽奖页面Lottery-Front职责完全不同Lottery分布式部署的抽奖服务提供抽奖业务领域功能以 RPC 方式对外提供服务Lottery-ERPB 端运营系统运营人员在这里管理活动与查看数据Lottery-FrontC 端用户系统vue H5 大转盘抽奖界面。运营后台面向的是内部运营人员用户量小、功能集中、迭代以内部需求为主因此在技术选型上与 C 端系统有本质差异。二、UI 方案选型三套方案对比与取舍在考虑运营后台搭建时第一个要解决的问题是UI 方案怎么选。如果公司里有前端人员来开发后台运营页面基本会使用 vue、react、angular 等前端框架但如果没有专职前端而是需要后端 Java 人员来开发就必须考虑迭代和维护成本——并不是所有后端研发都需要去学习 vue 这类前端开发语言。当时汇总并对比了三套运营后台 UI 方案方案定位特点适用场景layui经典的前端 UI 组件库以 jQuery 为基础用法贴近传统 Web 开发后端 Java 人员上手成本极低内部运营后台、管理类页面vue-element-admin基于 vue Element UI 的后台管理模板组件丰富、工程化程度高适合完整的前端工程体系有前端资源、需要复杂交互的后台Ant Design Pro基于 React Ant Design 的企业级中后台前端框架组件与设计规范成熟功能强大但学习成本更高大型企业级中后台最终选择layui 作为运营后台的搭建框架核心原因有两点上手成本低layui 是基于 jQuery 的经典组件库页面结构、写法与传统的服务端渲染页面接近Java 后端研发几乎不需要额外学习前端工程化体系就能直接上手够用且稳定虽然 layui 已经停止更新维护但对于内部运营后台这类以表单、表格、查询为主的页面来说日常使用完全够用。同时原文档也给出了明确的规划后续开发 C 端抽奖页面大转盘 H5时再使用 vue 语言这样一套系统里两种前端方式都能覆盖到如果对 vue 很感兴趣也可以直接使用 vue 的方式搭建运营后台页面本方案并非唯一答案。三、工程整体结构DDD 分层 layui 的组合确定 UI 方案后运营后台工程采用DDD 架构分层结构 layui的组合方式来搭建。为什么在运营后台也要坚持 DDD 结构原因在于这是 DDD 在没有 RPC 引入时的紧凑结构模型可以非常直观地体现Application 应用层定义接口 → Domain 领域层做实现 → 最终交给 interfaces 接口层使用的完整调用链。运营后台的代码规模比核心抽奖服务小用它来演示和巩固 DDD 分层思想是非常合适的场景。下图展示了 Lottery-ERP 工程的整体目录结构图片位于 docs/.vuepress/public/images/article/project/lottery/Part-3/1-01.png从图中可以看到整个工程分为两大部分1. 按照 DDD 分层的运营后台服务端Java 部分项目根目录为Lottery-ERPJava 代码位于src/main/java下的cn.itedus.lottery.erp包包含四个核心模块application应用层负责协调领域逻辑、封装用例流程定义对外的应用服务接口domain领域层如domain.activity活动领域模块承载核心业务规则与领域服务实现infrastructure基础设施层提供通用技术能力、实现数据持久化等支撑性内容interfaces接口层负责对外提供服务接口的定义与暴露。入口类LotteryErpApplication是 Spring Boot 项目的启动类。2. 运营后台 UIWeb 端前端代码位于src/main/webapp路径下包含的模块有api前端接口调用定义css样式文件images资源图片js前端脚本lib依赖库layui 等组件库存放处lottery业务相关代码page页面组件index.html前端入口页面。这种Java 分层 webapp 静态资源并存的结构正是非前后端分离模式在内部运营后台中的典型应用。四、DDD 分层中各层的职责边界要真正理解上面的工程结构需要先明确 DDD 四层架构中各层的职责。在 Part-2 第02节搭建DDD四层架构 中对分层原则做了详细说明这里结合运营后台工程归纳如下应用层application用来表述应用和用户行为负责服务的组合、编排和转发负责处理业务用例的执行顺序以及结果的拼装。在运营后台中页面请求先到达应用层定义的服务接口领域层domain领域服务位于领域层为完成领域中跨实体或值对象的操作转换而封装服务。领域服务封装了核心的业务逻辑实体自身的行为在实体类内部实现向上封装成领域服务暴露为隐藏领域层业务逻辑实现所有领域方法和服务均须通过领域服务对外暴露基础设施层infrastructure提供数据持久化、缓存、文件等通用技术能力接口层interfaces对外暴露 HTTP 接口接收前端请求并返回响应。这样Application 定义接口、Domain 实现业务、Infrastructure 提供支撑、Interfaces 对外暴露的调用链与 MVC 结构相比新增功能扩展时结构依旧清晰——只要结构清晰、地基打得好后续盖房子加功能就非常容易这也是在运营后台中坚持 DDD 结构的重要价值。五、UI 直接放入工程非前后端分离的务实选择值得特别说明的是这里的 UI 部分不是前后端分离的而是直接放到工程中src/main/webapp这算是一种比较古老的实现方式。但从实际业务场景看这种选择非常合适运营后台通常只是内部运营人员使用不面向外部 C 端用户对页面交互复杂度、并发量要求都不高前后端代码放在同一工程中部署、版本管理、联调都更简单Java 研发人员可以一条链路完成从页面到接口的全部开发一般部署 2 台应用实例做个互备就足够了不需要复杂的前端 CDN、网关等基础设施。六、工程搭建之后的业务延伸运营后台的基础工程结构搭建完成后后续章节围绕它逐步填充业务功能形成了完整的 Part-3 系列参见 Part-3 章节目录第02节活动列表数据展示在运营后台中提供活动列表查询。因为活动的配置在单库单表中直接提供查询服务即可同时要注意给运营后台查询的数据通常直接使用LIMIT x,y分页即可而如果是 C 端用户展示列表数据则应使用 id LIMIT x的方式两者有本质区别第03节用户抽奖数据展示继续填充用户抽奖数据的可视化展示能力。而在 C 端侧Part-4 第02节vue H5 大转盘抽奖 则使用 vue 语言开发面向用户的抽奖页面与运营后台的 layui 形成B 端 layui C 端 vue的双前端格局完整覆盖了两类不同场景的技术栈实践。七、小结本节的要点可以归纳为四句话选型看场景没有专职前端时layui 这类基于 jQuery 的组件库是 Java 后端搭建内部运营后台的低成本选择有前端资源或对扩展性要求高时再考虑 vue/react 方案结构坚持 DDD运营后台虽然规模小但正好用紧凑的Application 定义接口、Domain 实现、interfaces 使用结构来落地 DDD 分层思想为后续功能扩展打好地基非前后端分离够用UI 直接放入工程的src/main/webapp配合api/css/images/js/lib/lottery/page的目录划分让 Java 研发能独立完成运营页面的开发与维护部署从简内部运营后台通常部署 2 台应用实例互备即可不需要为它引入复杂的前端工程体系。后续章节将在这一工程基础上逐步开发活动列表查询、用户抽奖数据展示等运营功能把 DDD 分层与 layui 的组合持续落到实处。赞分享文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载相关推荐Lottery 分布式抽奖系统用简单工厂搭建发奖领域服务Lottery 分布式抽奖系统用简单工厂搭建发奖领域服务 本文以 Lottery 分布式抽奖系统 Part 2 第 07 节“简单工厂搭建发奖领域”为主线讲文档教程后端Lottery 分布式抽奖系统开发起点环境搭建、工程结构与研发规范全解Lottery 分布式抽奖系统开发起点环境搭建、工程结构与研发规范全解 本篇基于 CodeGuide 仓库中的《第01节环境、配置、规范》文档展开围绕 L文档教程后端Lottery 抽奖系统 DDD 实战在应用层编排领取活动、执行抽奖与中奖落库的完整流程Lottery 抽奖系统 DDD 实战在应用层编排领取活动、执行抽奖与中奖落库的完整流程 本文基于 CodeGuide 仓库中 Lottery 分布式抽奖系统文档教程后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考