当前位置: 首页 > ai >正文

抽奖系统抽奖活动管理流程

抽奖系统大纲:

目录

抽奖系统大纲:

创建抽奖活动: 

前端传入:

创建抽奖活动,需要圈选人员,圈选奖品,填写活动必要信息。

Controller层:

接收参数,调用服务层代码:

Service层:

校验活动信息:

保存活动信息:

保存活动关联奖品信息:

保存活动关联人员信息:

整合活动完整信息,放入Redis中:

整合信息放入Redis:

Mapper层:

查询人员信息:

查询奖品信息:

活动信息入库:

活动奖品信息入库:

活动人员信息入库:

根据奖品id查询奖品详细信息:

查看活动列表:

前端传入:

当前页面,页面中活动个数

Controller:

调用Service层,查询活动列表,返回结果:

Service:

获取活动列表总量,计算起始位置offset。

Mapper:

查询活动列表总量:

查询活动列表:


创建抽奖活动: 

前端传入:

创建抽奖活动,需要圈选人员,圈选奖品,填写活动必要信息。

传入人员信息,奖品信息(同时添加奖品等级),活动名称,活动描述。

Controller层:

接收参数,调用服务层代码:

使用CreateActivity类接收参数:

活动名称,活动描述,活动关联奖品表,活动关联人员表。

Service层:

校验活动信息:

调用mapper层,校验人员信息是否存在:

返回人员id集合,遍历结果,出现不存在的id,抛出异常。

查询奖品信息是否存在:

返回奖品id集合,遍历结果,出现不存在的id,抛出异常。

人员数量与奖品数量相等,确保每个人都中奖:

校验奖品等级有效性:

遍历奖品等级枚举类,为空则是无效等级。

保存活动信息:

将活动相关信息插入到活动表中:

活动名称,活动描述,活动状态。

保存活动关联奖品信息:

将活动中的奖品信息放入活动关联奖品表:

保存活动关联人员信息:

将参加活动的人员放入活动关联人员表中:

整合活动完整信息,放入Redis中:

将一个活动的全部信息整合到Redis中,key为:ACTIVITY_PREFIX+活动id。value为:活动全部信息。

调用Mapper层,根据活动id查询活动奖品信息:

根据活动奖品表拿到活动奖品id,根据id查询详细的奖品信息。 

整合信息放入Redis:

Mapper层:

查询人员信息:

根据人员id集合,遍历集合,查询相关信息,返回查到的人员id结果集合。

查询奖品信息:

遍历前端传入的奖品id集合,查询后返回奖品id集合

活动信息入库:

将活动信息放入活动表中,活动信息包含:

id,活动描述,名称,状态

活动奖品信息入库:

批量插入活动关联奖品信息

奖品id,关联奖品id,奖品数量,奖品等级,奖品状态

活动人员信息入库:

批量插入活动关联人员信息

活动id,关联人员id,人员姓名,人员状态

根据奖品id查询奖品详细信息:

根据奖品id,拿到活动关联的奖品详细信息

查看活动列表:

前端传入:

当前页面,页面中活动个数

成功构造活动列表:

Controller:

调用Service层,查询活动列表,返回结果:

Service:

获取活动列表总量,计算起始位置offset。

计算offset:

 

Mapper:

查询活动列表总量:

查询活动列表:

文章结束,感谢观看 

http://www.xdnf.cn/news/10005.html

相关文章:

  • [3D GISMesh]三角网格模型中的孔洞修补算法
  • 在 Mac 下 VSCode 中的终端使用 option + b 或 f 的快捷键变成输入特殊字符的解决方案
  • 【python基础知识】变量和简单数据类型
  • 基于 HT for Web 轻量化 3D 数字孪生数据中心解决方案
  • 随记 配置服务器的ssl整个过程
  • Netty 实战篇:为 Netty RPC 框架增加超时控制与重试机制,防止系统雪崩
  • ⭐ Unity AVProVideo插件自带播放器 脚本重构 实现视频激活重置功能
  • 在日常管理服务器中如何防止SQL注入与XSS攻击?
  • STM32G4 电机外设篇(二) VOFA + ADC + OPAMP
  • CloudCompare-源码分析-处理滚轮事件
  • 【Elasticsearch】suggest_mode
  • LangChain整合Milvus向量数据库实战:数据新增与删除操作
  • Centos7.x内网环境Jenkins前端打包环境配置
  • C#定时器深度对比:System.Timers.Timer vs System.Threading.Timer性能实测与选型指南
  • PECVD 生成 SiO₂ 的反应方程式
  • 数据分类分级的实践与反思:源自数据分析、治理与安全交叉视角的洞察
  • Python训练day34
  • LangChain-LangGraph框架 应用实例
  • 超低延迟与高稳定性的行业领先直播解决方案
  • RocketMQ 三大消息类型深度解析:普通消息、延迟消息、事务消息
  • C++ —— B/类与对象(中)
  • Python字典键的使用与应用:从基础到高级实践
  • OCC笔记:BRepMesh_IncrementalMesh的使用
  • python打卡day40@浙大疏锦行
  • 汽车高速通信的EMC挑战
  • Langchain4j Function Calling (5)
  • 关于ffplay在macos上运行奔溃的问题
  • 嵌入式开发学习日志(linux系统编程--进程(4)——线程锁)Day30
  • Google car key:安全、便捷的汽车解锁新选择
  • day40打卡