广州微信网站开发公司内网网站建设主流语言
抽奖系统大纲:

目录
抽奖系统大纲:
创建抽奖活动:
前端传入:
创建抽奖活动,需要圈选人员,圈选奖品,填写活动必要信息。
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:
查询活动列表总量:

查询活动列表:

文章结束,感谢观看
