@qq286531097
2017-07-19T02:29:18.000000Z
字数 963
阅读 224
京东积分商城
1.视觉上觉得概率形同
抽奖情况 | 提示 | 逻辑 |
---|---|---|
抽中 | 恭喜抽中,请到会员中心进行兑换 | 会员中心作为统一兑奖地点 |
未中 | 很遗憾,未中奖 | 继续用积分抽 |
时间线 | 显示 | 判断逻辑 |
---|---|---|
点击奖品兑换 | 未兑换 | 显示用户的抽奖的商品 |
点击兑换 | 跳转到结算页面 | 无需支付,页面展示需付0 |
点击已兑换 | 显示兑换详情 | 跳转到对应的订单详情 |
判断条件 | 说明 |
---|---|
抽奖概率 | 每个奖品的中奖概率 |
兑换数目 | 每个奖品总的兑奖数目 |
单人中奖区间(时间) | 天/小时 |
单人区间中奖次数 | 每个时间段内的中奖次数 |
数据输入(奖品ID和概率组成的数据)
Array
(
[0] => 30
[2] => 20
[1] => 20
[3] => 20
[4] => 10
)
概率换算(区间判断,筛选出随机区间)(注意第10行)
public function getRand($proArr){
$result = "";
$proSum = array_sum($proArr);
foreach ($proArr as $key => $proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
syspromotion_lottery
字段 | 描述 | 备注 |
---|---|---|
lottery_id | id | 主键 |
lottery_name | 活动名称 | |
lottery_desc | 活动描述 | |
lottery_point_num | 兑换抽奖所需积分 | |
lottery_rules | 奖项设置规则 | 核心字段(序列化的规则,判断时会转成数组) |
syspromotion_lottery_result
字段 | 描述 | 备注 |
---|---|---|
result_id | 获奖ID | |
lottery_id | 转盘ID | 类似外键(关联ID,和积分表多对一) |
user_id | 会员ID | |
bonus_type | 奖项类型 | 目前就一个(item/商品) |
item_id | 商品ID | |
receive_status | 奖品状态 | issue(已发放)/receive(已领取) |
logistics_status | 物流状态 | wait_send_goods(等待发货)/send_goods(已发货) |