抽奖系统抽奖活动管理流程
抽奖系统大纲:
目录
抽奖系统大纲:
创建抽奖活动:
前端传入:
创建抽奖活动,需要圈选人员,圈选奖品,填写活动必要信息。
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:
查询活动列表总量:
查询活动列表:
文章结束,感谢观看