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; }
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(); }
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; }
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(); }