private function add_lucky_draw_area($lucky_draw_id)
 {
     $prizes = array(1, 2);
     /** 北上杭昆深广宁苏津成渝 */
     $cities = array(array(11, '上海'), array(14, '北京'), array(18, '杭州'), array(40, '昆山'), array(13, '深圳'), array(12, '广州'), array(32, '宁波'), array(19, '苏州'), array(17, '天津'), array(15, '成都'), array(20, '重庆'));
     foreach ($prizes as $prize_id) {
         foreach ($cities as $city) {
             list($city_id, $city_name) = $city;
             Bll_Cms_LuckyDrawLuckyArea::add_lucky_area($lucky_draw_id, $prize_id, $city_id, $city_name);
         }
     }
 }
 /**
  * 开奖
  *
  * @param $lid
  * @param $city_id
  * @param $property
  * @return array
  */
 public static function calculate_lucky_draw($lid, $city_id, $property, $lucky_draw_times, $lucky_times)
 {
     $lucky_draw_prize = Dao_Cms_LuckyDrawPrize::get_prize_list($lid);
     /** 过滤地区 */
     $lucky_draw_prize = Bll_Cms_LuckyDrawLuckyArea::filter_lucky_prize($lucky_draw_prize, $city_id, $lid);
     /** 过滤积分 */
     $lucky_draw_prize = Bll_Cms_LuckyDrawLuckyProperty::filter_lucky_prize($lucky_draw_prize, $lid, $property);
     if (empty($lucky_draw_prize)) {
         return array('status' => 0, 'message' => '谢谢参与', 'prize_id' => 0, 'debug' => __CLASS__, 'debug_info' => __LINE__, 'prize_title' => '谢谢参与');
     }
     /** 计算各奖品的中奖区间 */
     $max = mt_getrandmax();
     $lucky_number = mt_rand() % $max;
     // 中奖号码
     $luck_prize = array();
     $start = 0;
     foreach ($lucky_draw_prize as $prize) {
         @file_put_contents('/home/www/' . __CLASS__ . '.log', "{$prize['title']}: ", FILE_APPEND);
         $probability = explode('/', $prize['probability']);
         if (count($probability) != 2) {
             continue;
         }
         list($dividend, $divisor) = $probability;
         if ($dividend == 0 || $divisor == 0) {
             continue;
         }
         $probability = $dividend / $divisor;
         if ($lucky_times == 0 && $prize['mulriple'] == 1) {
             $probability = $probability * (1 << $lucky_draw_times);
         }
         $end = min(floor($max * $probability + $start), $max);
         @file_put_contents('/home/www/' . __CLASS__ . '.log', "max={$max}\tstart={$start}\tend={$end}\tLucky={$lucky_number}\n", FILE_APPEND);
         if ($lucky_number >= $start && $lucky_number < $end) {
             $luck_prize = $prize;
             break;
         }
         $start = $end;
     }
     if (empty($luck_prize)) {
         return array('status' => 0, 'message' => '谢谢参与', 'prize_id' => 0, 'debug' => __CLASS__, 'debug_info' => __LINE__, 'prize_title' => '谢谢参与');
     }
     return array('status' => $luck_prize['id'], 'message' => $luck_prize['title'], 'prize_id' => $luck_prize['prize_id'], 'prize_title' => $luck_prize['title'], 'lucky_prize' => $luck_prize);
 }