Example #1
0
 public function run()
 {
     if (!$this->settings['lottery_filter']) {
         return false;
     }
     $sql = "SELECT id FROM " . DB_PREFIX . "lottery_filter ";
     $q = $this->db->query($sql);
     while ($r = $this->db->fetch_array($q)) {
         $lottery_id[] = $r['id'];
     }
     if (empty($lottery_id)) {
         return false;
     }
     include_once CUR_CONF_PATH . 'lib/win_info_mode.php';
     $obj = new win_info_mode();
     //循环符合条件活动,整理信息
     foreach ($lottery_id as $key => $val) {
         //查询活动中奖记录
         $sql = "SELECT w.*,p.name,p.type,p.prize FROM " . DB_PREFIX . "win_info w\n\t\t\t\t\tLEFT JOIN " . DB_PREFIX . "prize p \n\t\t\t\t\t\tON w.prize_id = p.id \n\t\t\t\t\tWHERE w.lottery_id = " . $val . " \n\t\t\t\t\t\tAND w.prize_id != '' AND w.status=1 AND w.confirm=1 \n\t\t\t\t\tORDER BY w.create_time DESC LIMIT 0,2";
         $q = $this->db->query($sql);
         $info = array();
         $member_id = array();
         while ($r = $this->db->fetch_array($q)) {
             $r['create_time'] = hg_tran_time_tv($r['create_time']);
             $info[] = $r;
             $member_id[] = $r['member_id'];
         }
         if (empty($info)) {
             continue;
         }
         if (!empty($member_id)) {
             $member_info = $obj->get_memberInfo($member_id);
         }
         $win_info = array();
         foreach ($info as $value) {
             foreach ($value as $k => $v) {
                 if ($k == 'member_id' && $member_info[$v]) {
                     $value['member_name'] = $member_info[$v]['member_name'];
                     $value['phone_num'] = $member_info[$v]['phone_num'];
                     $value['avatar'] = $member_info[$v]['avatar'];
                 }
             }
             $win_info[] = $value;
         }
         if (!empty($win_info)) {
             $win_info = serialize($win_info);
             $sql = "UPDATE " . DB_PREFIX . "lottery_filter SET win_info = '" . $win_info . "' WHERE id = " . $val;
             $this->db->query($sql);
         }
     }
     return true;
 }
Example #2
0
 public function get_win_info()
 {
     $lottery_id = intval($this->input['lottery_id']);
     if (!$lottery_id) {
         $this->errorOutput(NOID);
     }
     $offset = $this->input['offset'] ? intval($this->input['offset']) : 0;
     $count = $this->input['count'] ? intval($this->input['count']) : 10;
     $limit = ' LIMIT ' . $offset . ' , ' . $count;
     $sql = "SELECT w.*,p.name,p.type,p.prize,p.tip,m.host,m.dir,m.filepath,m.filename FROM " . DB_PREFIX . "win_info w\n\t\t\t\t\tLEFT JOIN " . DB_PREFIX . "prize p \n\t\t\t\t\t\tON w.prize_id = p.id \n\t\t\t\t\tLEFT JOIN " . DB_PREFIX . "materials m \n\t\t\t\t\t\tON p.indexpic_id = m.id \n\t\t\t\t\tWHERE w.lottery_id = " . $lottery_id . " \n\t\t\t\t\t\tAND w.prize_id != '' \n\t\t\t\t\tORDER BY p.id ASC,w.create_time DESC " . $limit;
     $q = $this->db->query($sql);
     $info = array();
     $member_id = array();
     while ($r = $this->db->fetch_array($q)) {
         $r['create_time'] = date('Y-m-d H:i:s', $r['create_time']);
         $r['prize_pic'] = $r['host'] . $r['dir'] . $r['filepath'] . $r['filename'];
         unset($r['host'], $r['dir'], $r['filepath'], $r['filename']);
         $info[] = $r;
         $member_id[] = $r['member_id'];
     }
     if (!empty($member_id)) {
         include_once CUR_CONF_PATH . 'lib/win_info_mode.php';
         $obj = new win_info_mode();
         $member_info = $obj->get_memberInfo($member_id);
     }
     $arr = $prize = $award = array();
     if (!empty($info) && $member_info) {
         $win_info = array();
         foreach ($info as $val) {
             foreach ($val as $k => $v) {
                 if ($k == 'member_id' && $member_info[$v]) {
                     $val['member_name'] = $member_info[$v]['member_name'];
                     $val['phone_num'] = $member_info[$v]['phone_num'];
                     $val['avatar'] = $member_info[$v]['avatar'];
                 }
             }
             $this->addItem($val);
         }
     }
     $this->output();
 }
Example #3
0
 public function run()
 {
     if (!$this->settings['lottery_filter']) {
         return false;
     }
     $sql = "DELETE FROM " . DB_PREFIX . "lottery_filter ";
     $this->db->query($sql);
     $week_now = date('w', TIMENOW);
     $hour_now = date('His', TIMENOW);
     $day_now = date('d', TIMENOW);
     /*$sql = "SELECT * FROM " . DB_PREFIX . "lottery WHERE 
     			status = 1 AND 
     			time_limit = 1 AND 
     			start_time != 0 AND 
     			end_time != 0 AND 
     			start_time <=" . TIMENOW . " AND 
     			end_time > " .TIMENOW . " 
     			OR (time_limit = 0 AND 
     			status = 1) 	
     		ORDER BY order_id DESC";*/
     $sql = "SELECT * FROM " . DB_PREFIX . "lottery WHERE status = 1 ORDER BY order_id DESC";
     $q = $this->db->query($sql);
     while ($r = $this->db->fetch_array($q)) {
         if ($r['time_limit'] && ($hour_now > $r['end_hour'] || $hour_now < $r['start_hour'])) {
             //continue;
         }
         if ($r['cycle_type'] && $r['cycle_value']) {
             //$r['cycle_value'] = explode(',', $r['cycle_value']);
             if ($r['cycle_type'] == 1 && !in_array($week_now, $r['cycle_value'])) {
                 //continue;
             } else {
                 if ($r['cycle_type'] == 2 && !in_array($day_now, $r['cycle_value'])) {
                     //continue;
                 }
             }
         }
         if ($r['feedback']) {
             $r['feedback'] = unserialize($r['feedback']);
         }
         $r['start_times'] = $r['start_time'];
         $r['end_times'] = $r['end_time'];
         $lottery_id[] = $r['id'];
         $lottery_info[$r['id']] = $r;
     }
     if (empty($lottery_info)) {
         return false;
     }
     $lottery_ids = implode(',', $lottery_id);
     //获取图片信息
     $sql = 'SELECT id,host,dir,filepath,filename FROM ' . DB_PREFIX . "materials  WHERE cid IN ({$lottery_ids})";
     $q = $this->db->query($sql);
     $indexpic = $pic_info = array();
     while ($row = $this->db->fetch_array($q)) {
         if (!$row['cid']) {
             $indexpic[$row['id']] = $row;
             continue;
         }
         $pic_info[$row['cid']][$row['id']] = $row;
     }
     //查询奖项
     /*$sql = 'SELECT p.*,m.host,m.dir,m.filepath,m.filename FROM '.DB_PREFIX."prize p  
     				LEFT JOIN " . DB_PREFIX . "materials m 
     					ON p.indexpic_id = m.id 
     				WHERE p.lottery_id IN ({$lottery_ids})";
     		$q = $this->db->query($sql);
     		
     		
     		$prize = array();
     		while($row = $this->db->fetch_array($q))
     		{			
     			$prize[$row['lottery_id']][] = $row;
     		}*/
     //hg_pre($lottery_info);
     include_once CUR_CONF_PATH . 'lib/win_info_mode.php';
     $obj = new win_info_mode();
     //循环符合条件活动,整理信息
     foreach ($lottery_info as $key => $val) {
         if ($pic_info[$key]) {
             $val['pic'] = $pic_info[$key];
         } else {
             $val['pic'] = array();
         }
         if ($indexpic[$val['indexpic_id']]) {
             $val['indexpic'] = $indexpic[$val['indexpic_id']];
         } else {
             $val['indexpic'] = array();
         }
         //查询活动中奖记录
         $sql = "SELECT w.*,p.name,p.type,p.prize FROM " . DB_PREFIX . "win_info w\n\t\t\t\t\tLEFT JOIN " . DB_PREFIX . "prize p \n\t\t\t\t\t\tON w.prize_id = p.id \n\t\t\t\t\tWHERE w.lottery_id = " . $key . " \n\t\t\t\t\t\tAND w.prize_id != '' AND w.status=1 AND w.confirm=1 \n\t\t\t\t\tORDER BY w.create_time DESC LIMIT 0,2";
         $q = $this->db->query($sql);
         $info = array();
         $member_id = array();
         while ($r = $this->db->fetch_array($q)) {
             $r['create_time'] = hg_tran_time_tv($r['create_time']);
             $info[] = $r;
             $member_id[] = $r['member_id'];
         }
         if (!empty($member_id)) {
             $member_info = $obj->get_memberInfo($member_id);
         }
         $win_info = array();
         if (!empty($info) && $member_info) {
             foreach ($info as $value) {
                 foreach ($value as $k => $v) {
                     if ($k == 'member_id' && $member_info[$v]) {
                         $value['member_name'] = $member_info[$v]['member_name'];
                         $value['phone_num'] = $member_info[$v]['phone_num'];
                         $value['avatar'] = $member_info[$v]['avatar'];
                     }
                 }
                 $win_info[] = $value;
             }
         }
         $val['win_info'] = $win_info;
         //活动奖品可以通过mamcache写入缓存
         if ($prize[$key]) {
             //$val['prize'] = $prize[$key];
         } else {
             //$val['prize'] = array();
         }
         $sql = "INSERT INTO " . DB_PREFIX . "lottery_filter SET id=" . $val['id'] . ",sort_id = " . $val['sort_id'] . ",order_id = " . $val['order_id'] . ",content='" . serialize($val) . "'";
         $this->db->query($sql);
         //$data[] = $val;
     }
     //hg_pre($data,0);
     return true;
 }
Example #4
0
 public function lottery()
 {
     $id = intval($this->input['id']);
     if (!$id) {
         return false;
     }
     $data = $this->mode->detail($id);
     //查询活动中奖记录
     $sql = "SELECT w.*,p.name,p.type,p.prize FROM " . DB_PREFIX . "win_info w\n\t\t\t\tLEFT JOIN " . DB_PREFIX . "prize p \n\t\t\t\t\tON w.prize_id = p.id \n\t\t\t\tWHERE w.lottery_id = " . $data['id'] . " \n\t\t\t\t\tAND w.prize_id != '' \n\t\t\t\tORDER BY w.create_time DESC LIMIT 0,2";
     $q = $this->db->query($sql);
     $info = array();
     $member_id = array();
     while ($r = $this->db->fetch_array($q)) {
         $r['create_time'] = hg_tran_time_tv($r['create_time']);
         $info[] = $r;
         $member_id[] = $r['member_id'];
     }
     if (!empty($member_id)) {
         include_once CUR_CONF_PATH . 'lib/win_info_mode.php';
         $obj = new win_info_mode();
         $member_info = $obj->get_memberInfo($member_id);
     }
     $arr = $prize = $award = array();
     if (!empty($info) && $member_info) {
         $win_info = array();
         foreach ($info as $val) {
             foreach ($val as $k => $v) {
                 if ($k == 'member_id' && $member_info[$v]) {
                     $val['member_name'] = $member_info[$v]['member_name'];
                     $val['phone_num'] = $member_info[$v]['phone_num'];
                     $val['avatar'] = $member_info[$v]['avatar'];
                 }
             }
             $win_info[] = $val;
         }
         $award['win_info'] = $win_info;
     }
     $feedback = $data['feedback'];
     $prize_arr = $data['prize'];
     //unset($data['prize'],$data['feedback']);
     foreach ($prize_arr as $key => $val) {
         $chance = array();
         $chance = explode('/', $val['chance']);
         $arr[$val['id']] = $chance[0];
         if (!$sum) {
             $sum = $chance[1];
         }
     }
     $sum = $sum ? $sum : 1000;
     $prize_id = get_rand($arr, $sum);
     //根据概率获取奖项id
     if ($prize_id) {
         $prize = $prize_arr[$prize_id];
         $prize_indexpic = array('host' => $prize['host'], 'dir' => $prize['dir'], 'filepath' => $prize['filepath'], 'filename' => $prize['filename']);
         $award['id'] = $prize_id;
         //奖品名称
         $award['prize'] = $prize['prize'];
         //奖品名称
         $award['name'] = $prize['name'];
         //奖项名称
         $award['tip'] = $prize['tip'];
         //奖品名称
         $award['prize_indexpic'] = $prize_indexpic;
         //奖品索引图
     } else {
         $award['id'] = 0;
         //奖品id
         $feedback_count = count($feedback);
         $rand_num = mt_rand(0, $feedback_count - 1);
         $award['tip'] = $feedback[$rand_num];
         //奖品名称
         $award['name'] = '谢谢参与';
         //奖项名称
     }
     $this->addItem($award);
     $this->output();
 }