/** * 经纪人抽奖主程序 * @param $broker_id 经纪人id * @return array 获得奖品的信息 */ public static function BrokerLuckDraw($broker_id, $city_id) { //判断活动是否开始 if (!Bll_City_BizType::isOn($city_id, 4, Const_CityBizType::TYPE_ACTIVITY_RES)) { return array('status' => 'err', 'errCode' => 'Luck_Draw_TimeErr', 'errMsg' => self::Luck_Draw_TimeErr); } //获取获取经纪人可抽奖的次数 $brokerLuckDrawNum = self::getBrokerLuckDrawNum($broker_id); if ($brokerLuckDrawNum < 1) { return array('status' => 'err', 'errCode' => 'Luck_Draw_BrokerNumNotEnough', 'errMsg' => self::Luck_Draw_BrokerNumNotEnough); } //获取可抽奖清单 $prizeList = self::getPrizeList(); if (empty($prizeList['prizeList'])) { return array('status' => 'err', 'errCode' => 'Luck_Draw_PrizeNumNotEnough', 'errMsg' => self::Luck_Draw_PrizeNumNotEnough); } //抽取奖品 $prize = $prizeList['prizeList'][self::get_rand($prizeList['randList'])]; //扣去经纪人的抽奖次数 if (!Model_Activity_Res_eResProLuckDraw::decrementLuckDrawNum($broker_id)) { return array('status' => 'err', 'errCode' => 'Luck_Draw_BrokerNumNotEnough', 'errMsg' => self::Luck_Draw_BrokerNumNotEnough); } //扣去奖品个数 if (Model_Activity_Res_eResActivityPrizeList::decrementPrizeNum($prize['id'])) { //记录抽奖信息 $prizeRecodeId = Model_Activity_Res_eResActivityProPrize::addBrokerPrizeInfo(array('brokerId' => $broker_id, 'cityId' => $city_id, 'prizeId' => $prize['id'], 'prizeName' => $prize['prizeName'], 'actionType' => $prize['actionType'], 'addTime' => time())); //判断是否为安币 if ($prize['actionType'] == 2) { //在线充值,直接返还钱 //经纪人返款 $brokerCashBackResult = self::resBrokerLuckDrawCashBack($broker_id, $city_id, $prize['actionValue']); //记录返款结果 Model_Activity_Res_eResActivityProPrize::updateBrokerPrizeRemark($prizeRecodeId, $broker_id, json_encode($brokerCashBackResult)); } //返回中奖信息 // return array('status'=>'ok','prize'=>$prize, 'prizeRecodeId'=>$prizeRecodeId); return array('status' => 'ok', 'prize' => array('prizeName' => $prize['prizeName'], 'actionType' => $prize['actionType'], 'note' => $prize['remark']), 'prizeRecodeId' => $prizeRecodeId); } else { //返还抽奖次数 Model_Activity_Res_eResProLuckDraw::incrementLuckDrawNum($broker_id); return array('status' => 'err', 'errCode' => 'Luck_Draw_PrizeHalfwayIntercept', 'errMsg' => self::Luck_Draw_PrizeHalfwayIntercept); } }