model('mc');
$_W['page']['title'] = '卡券核销-微信卡券';
$dos = array('account', 'record');
$do = in_array($do, $dos) ? $do : 'record';
if($do == 'record') {
$acid = $_W['acid'];
$op = empty($_GPC['op']) ? 'list' : $_GPC['op'];
if($op == 'list') {
$condition = ' WHERE acid = :acid';
$parma[':acid'] = $acid;
$cid = intval($_GPC['cid']);
$card_id = trim($_GPC['card_id']);
if($cid > 0) {
$coupon = pdo_fetch('SELECT title,card_id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $cid));
$card_id = $coupon['card_id'];
} else {
$coupon = pdo_fetch('SELECT title FROM ' . tablename('coupon') . ' WHERE acid = :acid AND card_id = :card_id', array(':acid' => $acid, ':card_id' => $card_id));
}
if(!empty($card_id)) {
$condition .= ' AND card_id = :card_id';
$parma[':card_id'] = $card_id;
}
$code = trim($_GPC['code']);
if(!empty($code)) {
$condition .= " AND code LIKE '%{$code}%'";
}
$status = intval($_GPC['status']);
if($status > 0) {
$condition .= " AND status = :status";
$parma[':status'] = $status;
}
$outer_id = intval($_GPC['outer_id']);
if(!empty($outer_id)) {
$condition .= " AND outer_id = :oid";
$parma[':oid'] = $outer_id;
}
$nickname = trim($_GPC['nickname']);
if(!empty($nickname)) {
$condition .= " AND openid IN (SELECT openid FROM " . tablename('mc_mapping_fans') ." WHERE acid = {$acid} AND nickname LIKE '%{$nickname}%')";
}
$pindex = max(1, intval($_GPC['page']));
$psize = 20;
$total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('coupon_record') . $condition, $parma);
$data = pdo_fetchall('SELECT * FROM ' . tablename('coupon_record') . $condition . ' ORDER BY id DESC LIMIT ' .($pindex - 1) * $psize.','.$psize, $parma);
if(!empty($data)) {
foreach($data as &$da) {
if(!empty($da['openid'])) {
$openids[] = $da['openid'];
}
if(!empty($da['friend_openid'])) {
$openids[] = $da['friend_openid'];
}
if(!empty($da['card_id'])) {
$card_ids[] = $da['card_id'];
}
if($da['outer_id'] > 0) {
$outer_ids[] = $da['outer_id'];
}
$operator = mc_account_change_operator($da['clerk_type'], $da['store_id'], $da['clerk_id']);
$da['clerk_cn'] = $operator['clerk_cn'];
$da['store_cn'] = $operator['store_cn'];
}
if(!empty($openids)) {
$openids_str = "'" . implode("','", $openids) . "'";
$nicknames = pdo_fetchall('SELECT nickname,openid FROM ' . tablename('mc_mapping_fans') . "WHERE acid = {$acid} AND openid IN ({$openids_str})", array(), 'openid');
}
if(!empty($outer_ids)) {
$outer_str = implode(',', $outer_ids);
$outers = pdo_fetchall('SELECT name,qrcid FROM ' . tablename('qrcode') . "WHERE acid = {$acid} AND type = 'card' AND qrcid IN ({$outer_str})", array(), 'qrcid');
}
if(!empty($card_ids)) {
$card_str = implode("','", $card_ids);
$card_str = "'" . $card_str . "'";
$cards = pdo_fetchall('SELECT card_id,title FROM ' . tablename('coupon') . "WHERE acid = {$acid} AND card_id IN ({$card_str})", array(), 'card_id');
}
}
$pager = pagination($total, $pindex, $psize);
}
if($op == 'unavailable') {
$id = intval($_GPC['id']);
$del = intval($_GPC['del']);
$record = pdo_fetch('SELECT code,status FROM ' . tablename('coupon_record') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $id));
if(empty($record)) {
message('对应code码不存在', referer(), 'error');
}
if($record['status'] == 1) {
load()->classs('coupon');
$acc = new coupon($acid);
$status = $acc->UnavailableCode(array('code' => $record['code']));
if(is_error($status) && !$_GPC['force']) {
$url_1 = url('wechat/consume');
$url_2 = url('wechat/consume/record', array('op' => 'unavailable', 'del' => 1, 'id' => $id, 'force' => 1));
$message = "否 是 ";
message($status['message'] . "
是否强制删除本地数据 {$message}", '', 'error');
} else {
pdo_update('coupon_record', array('status' => 2, 'clerk_name' => $_W['user']['name'], 'clerk_id' => $_W['user']['clerk_id'], 'store_id' => $_W['user']['store_id'], 'clerk_type' => $_W['user']['clerk_type'], 'usetime' => TIMESTAMP), array('acid' => $acid, 'code' => $record['code'], 'id' => $id));
}
}
if($del == 1) {
pdo_delete('coupon_record', array('acid' => $acid, 'id' => $id));
message('删除卡券领取状态成功', url('wechat/consume'), 'success');
}
message('更改卡券领取状态成功', url('wechat/consume'), 'success');
}
if($op == 'consume') {
$id = intval($_GPC['id']);
$record = pdo_fetch('SELECT code,status FROM ' . tablename('coupon_record') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $id));
if(empty($record)) {
message('对应code码不存在', referer(), 'error');
}
if($record['status'] == 1) {
load()->classs('coupon');
$acc = new coupon($acid);
$status = $acc->ConsumeCode(array('code' => $record['code']));
if(is_error($status)) {
message($status['message'], '', 'error');
} else {
pdo_update('coupon_record', array('status' => 3, 'clerk_name' => $_W['user']['name'], 'clerk_id' => $_W['user']['clerk_id'], 'store_id' => $_W['user']['store_id'], 'clerk_type' => $_W['user']['clerk_type'], 'usetime' => TIMESTAMP), array('acid' => $acid, 'code' => $record['code'], 'id' => $id));
}
}
message('核销卡券成功', referer(), 'success');
}
template('wechat/consume');
}