网站首页 / 育儿 / 正文

java抽奖程序代码(抽奖系统代码教程展示)

时间:2022-04-13 22:30:11 浏览:1635次 作者:用户投稿 【我要投诉/侵权/举报 删除信息】

多条告白如次剧本只需引入一次

概括

名目开拓中常常会有抽奖如许的经营销售震动的需要,比方:积分大天桥、刮刮乐、赌博机之类多种情势,本来后盾的实行本领是一律的,正文引见一种常用的抽奖实行本领。

所有抽奖进程囊括以次几个上面:

奖品奖品池抽奖算法奖品控制奖品散发奖品

奖品囊括奖品、奖品几率和控制、奖品记载。

奖品表:

CREATE TABLE `points_luck_draw_prize` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL COMMENT '奖品称呼', `url` varchar(50) DEFAULT NULL COMMENT '图片地方', `value` varchar(20) DEFAULT NULL, `type` tinyint(4) DEFAULT NULL COMMENT '典型1:红包2:积分3:领会金4:感谢光顾5:自设置', `status` tinyint(4) DEFAULT NULL COMMENT '状况', `is_del` bit(1) DEFAULT NULL COMMENT '能否简略', `position` int(5) DEFAULT NULL COMMENT '场所', `phase` int(10) DEFAULT NULL COMMENT '期数', `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8mb4 COMMENT='奖品表';奖品几率控制表:

CREATE TABLE `points_luck_draw_probability` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `points_prize_id` bigint(20) DEFAULT NULL COMMENT '奖品ID', `points_prize_phase` int(10) DEFAULT NULL COMMENT '奖品期数', `probability` float(4,2) DEFAULT NULL COMMENT '几率', `frozen` int(11) DEFAULT NULL COMMENT '商品抽中后的冷冻度数', `prize_day_max_times` int(11) DEFAULT NULL COMMENT '该商品平台每天最多抽中的度数', `user_prize_month_max_times` int(11) DEFAULT NULL COMMENT '每位用户每月最多抽中该商品的度数', `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8mb4 COMMENT='抽奖几率控制表';奖品记载表:

CREATE TABLE `points_luck_draw_record` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `member_id` bigint(20) DEFAULT NULL COMMENT '用户ID', `member_mobile` varchar(11) DEFAULT NULL COMMENT '中奖用户大哥大号', `points` int(11) DEFAULT NULL COMMENT '耗费积分', `prize_id` bigint(20) DEFAULT NULL COMMENT '奖品ID', `result` smallint(4) DEFAULT NULL COMMENT '1:中奖 2:未中奖', `month` varchar(10) DEFAULT NULL COMMENT '中奖月份', `daily` date DEFAULT NULL COMMENT '中奖日子(不囊括功夫)', `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3078 DEFAULT CHARSET=utf8mb4 COMMENT='抽奖记载表';奖品池

奖品池是按照奖品的几率和控制组建成的抽奖用的池子。重要囊括奖品的总池值和每个奖品所占的池值(分为发端值和中断值)两个维度。最新口试题整治好了,点击Java口试库小步调在线刷题。

奖品的总池值:一切奖品池值的总和。每个奖品的池值:算法不妨灵活,常用的有以次两种办法 :奖品的几率*10000(保护是平头)奖品的几率10000奖品的结余数目奖品池bean:

public class PrizePool implements Serializable{ /** * 总池值 */ private int total; /** * 池中的奖品 */ private List<PrizePoolBean> poolBeanList;}池中的奖品bean:

public class PrizePoolBean implements Serializable{ /** * 数据库中如实奖品的ID */ private Long id; /** * 奖品的发端池值 */ private int begin; /** * 奖品的中断池值 */ private int end;}奖品池的组建代码:

/** * 获得超等大财主的奖品池 * @param zillionaireProductMap 超等大财主奖品map * @param flag true:有现款 false:无现款 * @return */ private PrizePool getZillionairePrizePool(Map<Long, ActivityProduct> zillionaireProductMap, boolean flag) { //总的奖品池值 int total = 0; List<P

版权声明:
本文内容由互联网用户自发贡献,该文观点仅代表作者本人,因此内容不代表本站观点、本站不对文章中的任何观点负责,内容版权归原作者所有、内容只用于提供信息阅读,无任何商业用途。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站(文章、内容、图片、音频、视频)有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至353049283@qq.com举报,一经查实,本站将立刻删除、维护您的正当权益。