0, 'message' => '', 'content' => '');
$result['content']['id'] = $GLOBALS['id'] = 'add-row-news-' . $_W['timestamp'];
$result['content']['html'] = $this->template('item', TEMPLATE_FETCH);
exit(json_encode($result));
}
public function doWebAwardlist() {
global $_GPC, $_W;
load()->func('tpl');
$id = intval($_GPC['id']);
if (checksubmit('delete')) {
if (is_array($_GPC['select'])) {
pdo_delete('egg_winner', " id IN ('" . implode("','", $_GPC['select']) . "')");
message('删除成功!', $this->createWebUrl('awardlist', array('id' => $id, 'page' => $_GPC['page'])));
}
message('未选择任何记录,无法删除!','','error');
}
if (!empty($_GPC['wid'])) {
$wid = intval($_GPC['wid']);
pdo_update('egg_winner', array('status' => intval($_GPC['status'])), array('id' => $wid));
message('操作成功!', $this->createWebUrl('awardlist', array('id' => $id, 'page' => $_GPC['page'])));
}
$pindex = max(1, intval($_GPC['page']));
$psize = 15;
$where = '';
if (empty($starttime) || empty($endtime)) {
$starttime = strtotime('-1 month');
$endtime = TIMESTAMP + 86399;
}
if (!empty($_GPC['daterange'])) {
$starttime = strtotime($_GPC['daterange']['start']);
$endtime = strtotime($_GPC['daterange']['end']) + 86399;
}
$where = ' WHERE a.uniacid = :uniacid AND a.rid = :rid';
$params[':uniacid'] = $_W['uniacid'];
$params[':rid'] = $id;
$isaward = intval($_GPC['isaward']);
if($isaward == 1) {
$where .= ' AND a.isaward = :isaward';
$params[':isaward'] = 1;
} elseif($isaward == 2) {
$where .= ' AND a.isaward = :isaward';
$params[':isaward'] = 0;
}
$profile = trim($_GPC['profile']);
if(!empty($profile)) {
$where .= " AND a.uid IN (SELECT uid FROM " . tablename('mc_members') . " WHERE uniacid = {$_W['uniacid']} AND (realname LIKE '%{$profile}%' OR mobile LIKE '%{$profile}%'))";
}
$award = trim($_GPC['award']);
$awardvalue = trim($_GPC['awardvalue']);
if(!empty($award)) {
if($award == 'title') {
$where .= " AND a.award LIKE '%{$awardvalue}%'";
} else {
$where .= " AND a.description LIKE '%{$awardvalue}%'";
}
}
$where .= ' AND a.createtime > :start AND a.createtime < :end';
$params[':start'] = $starttime;
$params[':end'] = $endtime;
$sql = 'SELECT a.*,m.realname,m.mobile FROM ' . tablename('egg_winner') . ' AS `a` LEFT JOIN ' . tablename('mc_members') .
' AS `m` ON `m`.`uid` = `a`.`uid`' . $where . ' ORDER BY `a`.`id` DESC';
$sql .= ' LIMIT ' . ($pindex - 1) * $psize . ',' . $psize;
$list = pdo_fetchall($sql, $params);
$total = pdo_fetchcolumn("SELECT COUNT(*) FROM " . tablename('egg_winner') . ' AS a ' . $where, $params);
$pager = pagination($total, $pindex, $psize);
if (checksubmit('export', true)) {
$tableHeader = array(
'realname' => '姓名',
'mobile' => '手机',
'award' => '奖品',
'description' => '描述',
'createtime' => '获奖时间'
);
$sql = 'SELECT a.*,m.realname,m.mobile FROM ' . tablename('egg_winner') . ' AS `a` LEFT JOIN ' . tablename('mc_members') .
' AS `m` ON `m`.`uid` = `a`.`uid`' . $where . ' ORDER BY `a`.`id` DESC';
$data = pdo_fetchall($sql, $params);
// 输入到CSV文件
$html = "\xEF\xBB\xBF";
// 输出表头
foreach ($tableHeader as $value) {
$html .= $value . "\t ,";
}
$html .= "\n";
// 输出内容
foreach ($data as $value) {
foreach ($tableHeader as $key => $header) {
if ($key == 'createtime') {
$value[$key] = date('Y-m-d H:i', $value[$key]);
}
if ($key == 'award' && empty($value[$key])) {
$value[$key] = '未中奖';
}
if ($key == 'description') {
$value[$key] = strip_tags($value[$key]);
}
$html .= $value[$key] . "\t ,";
}
$html .= "\n";
}
// 输出CSV文件
header("Content-type:text/csv");
header("Content-Disposition:attachment; filename=全部数据.csv");
echo $html;
exit();
}
include $this->template('awardlist');
}
public function doWebDelete() {
global $_W, $_GPC;
$id = intval($_GPC['id']);
$sql = "SELECT id FROM " . tablename('egg_award') . " WHERE `id`=:id";
$row = pdo_fetch($sql, array(':id' => $id));
if (empty($row)) {
message('抱歉,奖品不存在或是已经被删除!', '', 'error');
}
if (pdo_delete('egg_award', array('id' => $id))) {
message('删除奖品成功', referer(), 'success');
}
}
public function getCovers() {
return array(
array('title' => '第一期砸蛋', 'url' => $this->createWebUrl('first')),
);
}
public function getHomeTiles() {
global $_W;
$urls = array();
$list = pdo_fetchall("SELECT name, id FROM " . tablename('rule') . " WHERE uniacid = '{$_W['uniacid']}' AND module = 'we7_egg'");
if (!empty($list)) {
foreach ($list as $row) {
$urls[] = array('title' => $row['name'], 'url' => $this->createMobileUrl('lottery', array('id' => $row['id'])));
}
}
return $urls;
}
public function doMobileLottery() {
global $_GPC, $_W;
checkauth();
load()->model('mc');
mc_require($_W['member']['uid'], array('realname', 'mobile') , '需要完善资料后才能砸蛋.');
$where = ' WHERE `rid` = :rid';
$params = array(':rid' => intval($_GPC['id']));
$sql = 'SELECT * FROM ' . tablename('egg_reply') . $where;
$egg = pdo_fetch($sql, $params);
if (empty($egg)) {
message('非法访问,请重新发送消息进入砸蛋页面!');
}
if (TIMESTAMP < $egg['starttime']) {
message('活动还没有开始!');
}
if (TIMESTAMP > $egg['endtime']) {
message('活动已经结束啦!');
}
$where .= ' AND `uniacid` = :uniacid AND `uid` = :uid';
$params[':uniacid'] = $_W['uniacid'];
$params[':uid'] = $_W['member']['uid'];
$params[':createtime'] = strtotime(date('Y-m-d'));
// 当日砸蛋次数
$sql = 'SELECT COUNT(*) FROM ' . tablename('egg_winner') . $where . ' AND `createtime` > :createtime';
$total = pdo_fetchcolumn($sql, $params);
// 会员信息
$member = mc_fetch($_W['member']['uid'], array('realname', 'mobile'));
// 我的奖品
$sql = 'SELECT `award`, `description` FROM ' . tablename('egg_winner') . $where . ' ORDER BY `createtime` DESC';
unset($params[':createtime']);
$myAward = pdo_fetchall($sql, $params);
// 中奖名单
$sql = 'SELECT `award`, `realname` FROM ' . tablename('egg_winner') . ' AS `w` JOIN ' . tablename('mc_members')
. ' AS `m` ON `w`.`uid` = `m`.`uid` WHERE `rid` = :rid ORDER BY `w`.`id` DESC LIMIT 20';
$otherAward = pdo_fetchall($sql, array(':rid' => $params[':rid']));
// 分享信息
$shareTitle = empty($egg['title']) ? '砸蛋抽奖' : $egg['title'];
$shareDesc = $egg['description'];
$shareImage = tomedia($egg['picture']);
include $this->template('lottery');
}
public function doMobileGetAward() {
global $_GPC, $_W;
if (empty($_W['fans']['from_user']) || empty($_W['member']['uid'])) {
message('非法访问,请重新发送消息进入砸蛋页面!');
}
checkauth();
$fromuser = $_W['fans']['from_user'];
$uid = intval($_W['member']['uid']);
$id = intval($_GPC['id']);
$sql = 'SELECT `id`, `periodlottery`, `maxlottery`,`maxaward`, `default_tips`, `misscredit`, `hitcredit` FROM '
. tablename('egg_reply') . ' WHERE `rid` = :rid';
$params = array(':rid' => $id);
$egg = pdo_fetch($sql, $params);
if (empty($egg)) {
message('非法访问,请重新发送消息进入砸蛋页面!');
}
$result = array('status' => -1, 'message' => '');
$sql = 'SELECT COUNT(*) FROM ' . tablename('egg_winner') . ' WHERE `rid` = :rid AND `uid` = :uid';
$params[':uid'] = $uid;
if (empty($egg['periodlottery'])) {
$total = pdo_fetchcolumn($sql, $params);
if ($total >= $egg['maxlottery']) {
$result['message'] = '您已经超过最大砸蛋次数';
message($result, '', 'ajax');
}
} else {
$sql .= ' AND `createtime` > :createtime';
$params[':createtime'] = strtotime(date('Y-m-d')) - 86400 * $egg['periodlottery'];
$total = pdo_fetchcolumn($sql, $params);
if ($total >= $egg['maxlottery']) {
$sql = 'SELECT `createtime` FROM ' . tablename('egg_winner') . ' WHERE `rid` = :rid AND `uid` = :uid
ORDER BY `createtime` DESC';
$lastdate = pdo_fetchcolumn($sql, array(':rid' => $id, ':uid' => $uid));
$result['message'] = '您还未到达可以再次砸蛋的时间。下次可砸时间为' . date('Y-m-d', strtotime(date('Y-m-d', $lastdate)) + $egg['periodlottery'] * 86400);
message($result, '', 'ajax');
}
}
$count_award = pdo_fetchcolumn("SELECT COUNT(*) FROM ".tablename('egg_winner')." WHERE uniacid = :uniacid AND rid = :rid AND uid = :uid", array(':uniacid' => $_W['uniacid'], ':rid' => $id, ':uid' => $uid));
if ($count_award + 1 > $egg['maxaward'] && !empty($egg['maxaward'])) {
message(error(-1, '你已达到最大领奖限制'), '', 'ajax');
}
$sql = 'SELECT * FROM ' . tablename('egg_award') . ' WHERE `rid` = :rid ORDER BY `probalilty`';
$gifts = pdo_fetchall($sql, array(':rid' => $id));
$awards = array();
foreach ($gifts as $key => $gift) {
if (empty($gift['total']) || empty($gift['probalilty'])) {
unset($gifts[$key]);
continue;
}
$gifts[$key]['random'] = mt_rand(1, 100 / $gift['probalilty']);
if (mt_rand(1, 100 / $gift['probalilty']) == mt_rand(1, 100 / $gift['probalilty'])) {
$awards[] = $gift;
}
}
if (count($awards)>0){
$randid = mt_rand(0, count($awards) - 1);
$awardid = $awards[$randid];
}
$result['message'] = empty($egg['default_tips']) ? '很遗憾,您没能中奖!' : $egg['default_tips'];
$credit = array(
'rid' => $id,
'uniacid' => $_W['uniacid'],
'uid' => $uid,
'from_user' => $fromuser,
'isaward' => empty($awardid) ? 0 : 1,
'award' => (empty($awardid) ? '未中' : '中') . '奖奖励积分',
'description' => (empty($awardid) ? $egg['misscredit'] : $egg['hitcredit']),
'credit' => (empty($awardid) ? $egg['misscredit'] : $egg['hitcredit']),
'createtime' => strtotime(date('Y-m-d H:i:s')),
'status' => 2
);
if (!empty($awardid)) {
$sql = 'SELECT * FROM ' . tablename('egg_award') . ' WHERE `rid` = :rid AND `id` = :id';
$params = array(':rid' => $id, ':id' => $awardid['id']);
$gift = pdo_fetch($sql, $params);
if ($gift['total'] > 0) {
$credit['status'] = 0;
$credit['award'] = $gift['title'];
if (!empty($gift['inkind'])) {
$credit['description'] = $gift['description'];
$sql = 'UPDATE ' . tablename('egg_award') . ' SET `total` = `total` - 1 WHERE `rid` = :rid AND `id` = :id';
pdo_query($sql, $params);
} else {
$gift['activation_code'] = (array)iunserializer($gift['activation_code']);
$code = array_pop($gift['activation_code']);
$activation_code = iserializer($gift['activation_code']);
$sql = 'UPDATE ' . tablename('egg_award') . " SET `total` = `total` - 1, `activation_code` = '" . $activation_code .
"' WHERE `rid` = :rid AND `id` = :id";
pdo_query($sql, $params);
$credit['description'] = '兑换码:' . $code . '
兑换地址:' . $gift['activation_url'];
}
$result['message'] = '恭喜您,得到“' . $gift['title'] . '”!';
$result['status'] = 0;
} else {
$credit['description'] = $egg['misscredit'];
$credit['award'] = '未中奖奖励积分';
}
}
!empty($credit['description']) && $result['message'] .= '
' . $credit['award'] . ':' . $credit['description'];
$credit['aid'] = $gift['id'];
if(empty($awardid)) {
$value = intval($egg['misscredit']);
$uid = mc_openid2uid($fromuser);
mc_credit_update($uid, 'credit1', $value, array(0, '使用砸蛋模块未中奖,赠送'.$value.'积分'));
} else {
$value = intval($egg['hitcredit']);
$uid = mc_openid2uid($fromuser);
mc_credit_update($uid, 'credit1', $value, array(0, '使用砸蛋模块中奖,赠送'.$value.'积分'));
}
pdo_insert('egg_winner', $credit);
$result['myaward'] = pdo_fetchall("SELECT award, description FROM " . tablename('egg_winner') . " WHERE uid = '{$uid}' AND award <> '' AND rid = '$id' ORDER BY createtime DESC");
message($result, '', 'ajax');
}
public function doMobileRegister() {
global $_GPC, $_W;
$title = '砸蛋领奖登记个人信息';
if (!empty($_GPC['submit'])) {
if (empty($_W['fans']['from_user'])) {
message('非法访问,请重新发送消息进入砸蛋页面!');
}
$data = array(
'realname' => $_GPC['realname'],
'mobile' => $_GPC['mobile'],
'qq' => $_GPC['qq'],
);
if (empty($data['realname'])) {
die('');
}
if (empty($data['mobile'])) {
die('');
}
fans_update($_W['fans']['from_user'], $data);
die('');
}
include $this->template('register');
}
}