近期做一个需求需要根据不同的徽章合成一个勋章,为庆祝巴西世界杯,做了一个抽奖功能,其中,1958,1962,1970,1994,2002 分别代表巴西五次冠军

抽奖概率:按照不同用户的级别去设置抽奖的概率

VIP1  ~  VIP2     
1958年 5%   
1962年 5%   
1970年 10%  
1994年 20%  
2002年 30%
再接再厉 30%

VIP3   ~  VIP4    
1958年 30%   
1962年 10%   
1970年 10%  
1994年 5%  
2002年 5%
再接再厉 40%

VIP4   ~  VIP5    
1958年 5%   
1962年 15%  
1970年 5%  
1994年 15%  
2002年 20%
再接再厉 40%

VIP6   ~  VIP7
1958年 5%   
1962年 15%  
1970年 5%  
1994年 10%  
2002年 20%
再接再厉 45%

VIP7 以上
1958年 5%   
1962年 15%  
1970年 5%  
1994年 10%  
2002年 15%
再接再厉 50%

抽奖次数:次数的获取有很多渠道,比如登录获取一次,充值获取,或者邀请好友获取

合成规则 :需要集齐五个不同的徽章才能合成一个勋章,没有数量限制,可以集成多套勋章。

实现思路:

1、获取用户所有的徽章信息

2、遍历所有的徽章信息,将徽章按照不同的类型,放到set集合中,排序-去重

3、设置阈值,当set集合中的徽章数量达到 5 则自动合成一枚勋章

4、保存记录,扣减次数等操作。

以下为部分代码。

   List<LotteryRecordPO> usedList = new ArrayList<>();Set<LotteryRecordPO> set = new HashSet<>();int count = 0;if (!CollectionUtils.isEmpty(lotteryRecordPOS)) {for (LotteryRecordPO lotteryRecordPO : lotteryRecordPOS) {set.add(lotteryRecordPO);usedList.add(lotteryRecordPO);if (set.size() == 5) {count++;}}}log.info("customer:{} ,merged:{} medals", uId, count);// update badge statefor (LotteryRecordPO lotteryRecordPO : usedList) {lotteryRecordPO.setUseTime(LocalDateTime.now());lotteryRecordPO.setUse(UseStateEnum.USED.getState());lotteryRecordDAO.updateById(lotteryRecordPO);}// save medal recordfor (int i = 0; i < count; i++) {MedalPO medalPO = new MedalPO();medalPO.setUId(uId);medalPO.setUse(UseStateEnum.UNUSED.getState());medalDAO.insert(medalPO);}

徽章合成功能(类似支付宝集五福)相关推荐

  1. 类似支付宝集五福活动,节假日活动H5

    首先说明一下故事背景,2021年春节公司计划做春节活动,答谢新老用户,因为支付宝集5福活动喜闻乐见,所以我们决定借鉴响应的思路搞一搞春节活动. 本篇会介绍设计思路和设计稿,下一篇会介绍一下技术方面的实 ...

  2. 手机开启apache_微信否认“年终奖人均280万”;MySQL 8.0.14 稳定版发布;支付宝集五福昨开启,一天29万人集齐......

    IT服务圈儿 有温度.有态度的IT自媒体平台  开发者头条  1.MySQL 8.0.14 稳定版发布 MySQL 8 已于1月21日发布了 8.0.14 更新版本(GA)! 下载地址 Windows ...

  3. 2019支付宝集五福高阶玩法 助你快速集齐五福

    前几天我们曾介绍过2019支付宝集五福活动正式开启了,从1月25日到2月4日除夕,用户可以在这段时间内收集五福卡,除夕当晚会瓜分现金红包. 只要打开支付宝最新版,就可以在首页看到集五福入口,用户可以通 ...

  4. 支付宝 “集五福”今日开启;小米起诉美国国防部;Chrome 再次屏蔽七个端口 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  5. 支付宝集五福,一个软件就够了~

    大家好,我是璐画同学 兄弟们,支付宝一年一度集五福的活动已经悄悄地开始了! 1月31日22点前合成五福,瓜分五亿红包! 或者,费时费力收集合成完毕后,2块钱光荣结束陪跑. 虽然知道最后大概率不超过2块 ...

  6. 2021支付宝集五福活动开启啦,集卡攻略来啦

    2021年2月1日支付宝一年一度的集五福活动正式与大家见面啦,每年开启这个活动意味着快过年了,作为骨灰级玩家的你,想必早已掌握了"集五福"的精髓所在. 今年依然有富强福.和谐福.友 ...

  7. 集五福招数都在这了,2021 支付宝集五福全攻略

    时间过得真快,这不,支付宝的集五福活动又开始了,每年都参与的你,今年怎可缺席,来看看今年的集五福活动有何不同吧,这里有集五福的全攻略哦,可以帮你额外得到好多张福卡. ▲ 图 1 集五福新年大吉 支付宝 ...

  8. 2022支付宝集五福活动开始了 有哪些集福方法你知道吗?

    支付宝集五福又开始了,2022支付宝集五福有哪些方法你知道吗? 五福指的是爱国福.友善福.敬业福.富强福.和谐福这五张福卡. 你只要在大年夜(2022年1月31日) 22:00前集齐并合成五福,就可以 ...

  9. 支付宝集五福可以开“外挂”? 70万人秒集齐!

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 2月1日零点,2021年支付宝集五福活动正式开始,打响"年味"第一枪! 我稍微看了看,今年的集福难度更低,生怕你集不全 ...

最新文章

  1. redis 双写一致性
  2. [译]BEAST还是一个威胁吗?
  3. 导出mysql sql语句吗_mysql sql语句导入与导出
  4. java程序设计 第2版 唐大仕_《Java程序设计(第2版)》唐大仕 源代码
  5. 新版SVT-AVS3发布 编码效率提升并提供更灵活的编码工具
  6. 数据结构——双向链表的实现
  7. 作者:牛海波,男,中国国防科技信息中心工程师。
  8. QT5 串口收发实例代码
  9. linux 清空进程recv q,Linux中ss命令Recv-Q和Send-Q详解
  10. linux没有找到可用磁盘,在Linux上,有没有一种更像python的方法来获取可用磁盘设备名的列表?...
  11. Access操作的注意事项
  12. 毕业了5年的同学突然告诉我,他已经是架构师了!
  13. Java下一代高并发技术——虚拟线程“JEP 425: Virtual Threads (Preview)”
  14. 资料:线性代数与空间解析几何知识点全汇总
  15. android看视频掉帧,玩游戏看视频经常卡顿不顺畅?你只需这几步
  16. 如何批量修改云服务器BCC实例名称
  17. 微信扫码登陆(JAVA)
  18. DA0207 数据分析——数据分析之EXCEL
  19. NJU SE 操作系统期末复习
  20. MES系统的价值到底在哪?

热门文章

  1. itunes更新固件常用路径
  2. 彻底理解PCA(Principal Component Analysis)主成分分析
  3. python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器
  4. 2020Android手机专业摄影,华为拍照手机排行榜2020_华为拍照最好的是哪款
  5. Trunk端口的配置
  6. 程序员一生必读的书籍
  7. Typora 0.11.18版不能使用:This beta version of Typora is expired, please download and install a newe
  8. 矩阵的最小路径和——动态规划
  9. 文件夹重定向路径修改问题
  10. idea鼠标滚轮修改字体大小