基于thinkphp5的抽奖实现,支持后台设置抽奖概率、奖品排序
namespace app\index\controller;
use think\Controller;
class Lottery extends Base
{
//奖品配置信息
protected $prize;
//用户id
protected $uid;
/**
* 初始化奖品配置信息
*/
public function _initialize()
{
//从数据库读取奖品信息
/**
* 数据表结构
* id
* name 奖品名称
* type 类型,用来标识奖品的类型,比如实物、积分(需要自动充值到用户账户)、谢谢惠顾(不需要做任何处理)
* points_num 如果是积分、金额这种需要自动充值到账户的,需要填写该字段
* thumb 缩略图,可在大转盘显示
* rate 中奖概率,小数表示
* num 奖品总数
* overplus_num 剩余奖品数量
* status 状态 0禁止,1正常
* sort 排序 奖品出现在转盘或者跑马灯上的顺序
* addtime 添加时间
* edittime 修改时间
*/
$this->prize = db('prize')->where('status',1)->order('sort')->select();
//获取登录用户的id,写中奖纪录、查询是否有抽奖条件等
$this->uid = session('uid');
}
/**
* 抽奖
*/
public function lottery() {
if(!$this->uid) {
return json(['status'=>0,'msg'=>'