抽奖小程序

protected function getRandMoney($phone,$prizeId = 0){    
        //每日中奖用户的情况
        $prizedaily = D('DUserPrize')->getdailyprize();		
		//获取奖品配置信息
		$prize_data = D('DActivityPrize')->getActivityPrizeInfo(self::$aData['D_ID']);
		$prize = array();
		foreach($prize_data as $key=>$value)
		{
			$prize[$key]['id'] = $prize_data[$key]['D_PRIZE_ID'];
			if($prize[$key]['id'] == 3){
				$prize[$key]['num'] = (int)$prize_data[$key]['D_DAY_NUM'] - (int)$prizedaily[0]['P3'];
			}elseif ($prize[$key]['id'] ==4){
				$prize[$key]['num'] = (int)$prize_data[$key]['D_DAY_NUM'] - (int)$prizedaily[0]['P4'];
			}elseif ($prize[$key]['id'] == 8){
				$prize[$key]['num'] = (int)$prize_data[$key]['D_DAY_NUM'] - (int)$prizedaily[0]['P8'];
			}else{
				$prize[$key]['num'] = (int)$prize_data[$key]['D_DAY_NUM'] - (int)$prizedaily[0]['P9'];
			}			
		}
		unset($key, $value);
		//发奖品-减少奖品配置量		
		$prizeTotalNum = 0;		
		foreach ($prize as $key => $value) {
			if ($prize[$key]['num'] <= 0) {
				unset($prize[$key]);
				continue;
			}
			$prize[$key]['winStartNum'] = $prizeTotalNum + 1;
			$prizeTotalNum+= $prize[$key]['num'];
			$prize[$key]['winEndNum'] = $prizeTotalNum;
		}
		if($prizeTotalNum == 0){
			return $prizeId;
		}
		$randPrizeNum = rand(1, $prizeTotalNum);		
		foreach ($prize as $key => $value) {
			if ($randPrizeNum >= $prize[$key]['winStartNum'] && $randPrizeNum <= $prize[$key]['winEndNum']) {
				$prizeId = (int)$prize[$key]['id'];
				break;
			} else {
				continue;
			}
		}
		if (!isset($prizeId) || empty($prizeId))
			return $prizeId;
		//更新奖品表		
		D('DActivityPrize')->usePrize($prizeId, self::$aData['D_ID']);
		return $prizeId;


你可能感兴趣的:(PHP)