# smart-lottery
### 项目简介:
smart-lottery 抽奖系统 项目是一款互联网面向C端人群营销活动类的抽奖系统,可以提供抽奖活动玩法策略的创建、参与、记账、发奖等逻辑功能。在使用的过程中运营人员通过创建概率类奖品的抽奖玩法,对用户进行拉新、促活、留存,通常这样的系统会用在电商、外卖、出行、公众号运营等各类场景中。**架构采用DDD 领域驱动设计、充血模型、设计模式,包括(工厂模式,策略模式,模板模式,组合模式,状态模式,外观模式)**等
## 架构介绍:
> 本项目采用DDD(Domain-Driven Design 领域驱动设计)是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题。整个过程大概是这样的,开发团队和领域专家一起通过 通用语言(Ubiquitous Language)去理解和消化领域知识,从领域知识中提取和划分为一个一个的子领域(核心子域,通用子域,支撑子域),并在子领域上建立模型,再重复以上步骤,这样周而复始,构建出一套符合当前领域的模型。
![image-20211215222141169](./doc/image/smart-lottery.png)
### 应用层{application}
- 应用服务位于应用层。用来表述应用和用户行为,负责服务的组合、编排和转发,负责处理业务用例的执行顺序以及结果的拼装。
- 应用层的服务包括应用服务和领域事件相关服务。
- 应用服务可对微服务内的领域服务以及微服务外的应用服务进行组合和编排,或者对基础层如文件、缓存等数据直接操作形成应用服务,对外提供粗粒度的服务。
- 领域事件服务包括两类:领域事件的发布和订阅。通过事件总线和消息队列实现异步数据传输,实现微服务之间的解耦。
### 领域层{domain}
- 领域服务位于领域层,为完成领域中跨实体或值对象的操作转换而封装的服务,领域服务以与实体和值对象相同的方式参与实施过程。
- 领域服务对同一个实体的一个或多个方法进行组合和封装,或对多个不同实体的操作进行组合或编排,对外暴露成领域服务。领域服务封装了核心的业务逻辑。实体自身的行为在实体类内部实现,向上封装成领域服务暴露。
- 为隐藏领域层的业务逻辑实现,所有领域方法和服务等均须通过领域服务对外暴露。
- 为实现微服务内聚合之间的解耦,原则上禁止跨聚合的领域服务调用和跨聚合的数据相互关联。
### 基础层{infrastructure}
- 基础服务位于基础层。为各层提供资源服务(如数据库、缓存等),实现各层的解耦,降低外部资源变化对业务逻辑的影响。
- 基础服务主要为仓储服务,通过依赖反转的方式为各层提供基础资源服务,领域服务和应用服务调用仓储服务接口,利用仓储实现持久化数据对象或直接访问基础资源。
### 接口层{interfaces}
- 接口服务位于用户接口层,用于处理用户发送的Restful请求和解析用户输入的配置文件等,并将信息传递给应用层。
### 服务启动层{start}
+ 启动层依赖Application模块,主要增加启动器相关配置。用于打包,启动等操作!
## DDD 按模块分离系统搭建
### 项目分层结构
![image-20211215222141177](./doc/image/ddd分层.png)
### 技术介绍
**后端技术**
| 技术 | 说明 | 官网 |
| ----------------------------- | ------------------ | ------------------------------------------- |
| SpringBoot | 容器+MVC框架 | https://spring.io/projects/spring-boot |
| Dubbo | RPC框架 | https://dubbo.apache.org/zh/ |
| MyBatis-plus | ORM框架 | https://baomidou.com/ |
| RabbitMq | 消息队列 | https://www.rabbitmq.com/ |
| Redis | 分布式缓存 | https://redis.io/ |
| Docker | 应用容器引擎 | https://www.docker.com/ |
| kubernetes | 容器集群自动化部署 | https://kubernetes.io/zh/ |
| mariadb | 数据库 | https://mariadb.org/ |
| db-router-spring-boot-starter | 分库分表 | 自研 |
| Otter | 分布式数据同步 | https://github.com/alibaba/otter/ |
| ELK | 实时日志平台 | https://www.elastic.co/cn/what-is/elk-stack |
## 容器化部署
### 组件部署
### 服务部署
## 技术支持
联系作者:smartfrank
微信:smart-frank-lai
公众号:EasyJava
![image-20211215222141169](./doc/image/公众号.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
smart-lottery 抽奖系统 项目是一款互联网面向C端人群营销活动类的抽奖系统
共166个文件
java:140个
xml:16个
png:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 20 浏览量
2024-05-15
13:43:28
上传
评论
收藏 310KB ZIP 举报
温馨提示
该项目利用了基于springboot + vue + mysql的开发模式框架实现的课设系统,包括了项目的源码资源、sql文件、相关指引文档等等。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
资源推荐
资源详情
资源评论
收起资源包目录
smart-lottery 抽奖系统 项目是一款互联网面向C端人群营销活动类的抽奖系统 (166个子文件)
.gitignore 286B
Constants.java 9KB
ActivityTest.java 8KB
ActivityPartakeImpl.java 7KB
LotteryActivityBooth.java 6KB
UserTakeActivityRepository.java 6KB
SpringRunnerTest.java 5KB
ActivityRepository.java 5KB
ActivityProcessImpl.java 5KB
AbstractDrawBase.java 5KB
AbstractActivityPartakeBase.java 5KB
DrawOrderVO.java 4KB
StrategyRepository.java 4KB
UserStrategyExport.java 4KB
RuleRepository.java 4KB
Activity.java 3KB
ActivityBillVO.java 3KB
ActivityVO.java 3KB
DrawAwardVO.java 3KB
ShippingAddress.java 3KB
AwardDTO.java 3KB
BaseAlgorithm.java 3KB
ActivityDeployImpl.java 3KB
UserTakeActivity.java 3KB
GoodsReq.java 3KB
StrategyBriefVO.java 2KB
ArraignmentState.java 2KB
PassState.java 2KB
StrategyVO.java 2KB
TreeNodeVO.java 2KB
EntiretyRateRandomDrawAlgorithm.java 2KB
IUserTakeActivityRepository.java 2KB
RefuseState.java 2KB
Strategy.java 2KB
EditingState.java 2KB
OpenState.java 2KB
StrategyDetail.java 2KB
UserStrategyExportDaoTest.java 2KB
AbstractState.java 2KB
CommonResult.java 2KB
IDrawAlgorithm.java 2KB
DrawExecImpl.java 2KB
EngineBase.java 2KB
CloseState.java 2KB
DoingState.java 2KB
StrategyDetailBriefVO.java 2KB
StrategyDetailVO.java 2KB
DrawResult.java 2KB
ActivityProcessTest.java 2KB
IStateHandler.java 2KB
StateHandlerImpl.java 2KB
BaseLogic.java 2KB
Award.java 2KB
DrawAlgorithmTest.java 2KB
IActivityRepository.java 2KB
Result.java 2KB
UserTakeActivityCount.java 2KB
DistributionRes.java 2KB
StrategyRich.java 2KB
EngineResult.java 2KB
RuleTreeNodeLine.java 2KB
GoodsConfig.java 2KB
RuleTree.java 1KB
ActivityConfigRich.java 1KB
AwardBriefVO.java 1KB
TreeNodeLineVO.java 1KB
AwardVO.java 1KB
RuleTreeNode.java 1KB
IdContextHolder.java 1KB
StateConfig.java 1KB
UserTakeActivityVO.java 1KB
AlterStateVO.java 1KB
RuleTest.java 1KB
RuleEngineHandle.java 1KB
IUserTakeActivityDao.java 1KB
MybatisPlusConfiguration.java 1KB
PartakeReq.java 1KB
DbRouterTest.java 1KB
RedeemCodeGoods.java 1KB
ShortCode.java 1KB
DescGoods.java 1KB
PhysicalGoods.java 1KB
CouponGoods.java 1KB
DrawRequest.java 1KB
SupportIdsTest.java 1KB
TreeRootVO.java 1KB
SingleRateRandomDrawAlgorithm.java 1KB
SnowFlake.java 1KB
DecisionMatterReq.java 1KB
IUserTakeActivityCountDao.java 1KB
AwardRateVO.java 1KB
DrawStrategySupport.java 1KB
ActivityConfigReq.java 1KB
IdTest.java 1KB
DrawConfig.java 1006B
IActivityProcess.java 960B
QuantificationDrawReq.java 936B
EngineConfig.java 935B
AbstractDistribution.java 923B
TreeRuleRich.java 886B
共 166 条
- 1
- 2
资源评论
枫蜜柚子茶
- 粉丝: 8989
- 资源: 5351
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于仿真驱动的成本高效机场轮椅协助服务研究与优化
- 2007年跨学科建模竞赛ICM结果发布与分析
- 2024认证杯D题模型建立与求解MATLAB代码
- 2007年国际数学建模竞赛结果公告
- vue框架基础练习文档
- 应用Voronoi图解决美国立法区域重划的问题
- 电商行业爬虫开发案例分析
- 拓扑学方法解决美国选区划分的公平性和简单性问题
- 数学与模拟方法优化飞机登机过程:提高效率与可靠性的方法探讨
- 2024认证杯D题模型建立与求解MATLAB代码
- JAVA的SpringBoot敏捷开发框架源码带文档数据库 MySQL源码类型 WebForm
- 飞机登机过程优化的新型模拟方法
- 器官分配优化模型及其政策影响研究
- Matlab读取全球气候模式(GCM)地面数据代码
- Matlab读取全球气候模式(GCM)高空数据代码
- 2008年国际跨学科建模竞赛(ICM)获奖结果通报与分析报告
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功