@qq286531097
2017-07-19T02:29:18.000000Z
字数 963
阅读 380
京东积分商城
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(已发货) |
