$_W['uniacid'], ':status' => 1)); template('wechat/location_model'); exit(); } if(empty($_GPC['__color'])) { load()->classs('coupon'); $acc = new coupon($acid); $status = $acc->GetColors(); if(is_error($status)) { message($status['message'], referer(), 'error'); } foreach($status['colors'] as $val) { $colors[$val['name']] = $val; } $colors = base64_encode(iserializer($colors)); isetcookie('__color', $colors, 86400*7); } $colors = iunserializer(base64_decode($_GPC['__color'])); load()->model('coupon'); load()->classs('coupon'); $setting = pdo_fetch('SELECT * FROM ' . tablename('coupon_setting') . ' WHERE uniacid = :aid AND acid = :cid', array(':aid' => $_W['uniacid'], ':cid' => $acid)); $setting['logourl_'] = media2local($setting['logourl']); $types = array( 'discount' => '折扣券', 'cash' => '代金券', 'gift' => '礼品券', 'groupon' => '团购券', 'general_coupon' => '优惠券', ); if($do == 'display') { $condition = ' WHERE uniacid = :aid AND acid = :cid'; $parma[':aid'] = $_W['uniacid']; $parma[':cid'] = $acid; if(!empty($_GPC['type'])) { $condition .= ' AND type = :type'; $parma[':type'] = $_GPC['type']; } if(!empty($_GPC['title'])) { $title = trim($_GPC['title']); $condition .= " AND title LIKE '%{$title}%'"; } if(!empty($_GPC['status'])) { $status = intval($_GPC['status']); $condition .= " AND status = {$status}"; } if($_GPC['is_selfconsume'] == '1') { $condition .= " AND is_selfconsume = 1"; } elseif ($_GPC['is_selfconsume'] == '0') { $condition .= " AND is_selfconsume = 0"; } else { $condition = $condition; } $pindex = max(1, intval($_GPC['page'])); $psize = 20; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('coupon') . $condition, $parma); $data = pdo_fetchall('SELECT * FROM ' . tablename('coupon') . $condition . ' ORDER BY id DESC LIMIT ' .($pindex - 1) * $psize.','.$psize, $parma); if(!empty($data)) { foreach($data as &$da) { $da['date_info'] = @iunserializer($da['date_info']); $da['location_id_list'] = @iunserializer($da['location_id_list']); } } $pager = pagination($total, $pindex, $psize); template('wechat/card'); } if($do == 'sync') { $id = intval($_GPC['cid']); $card = pdo_fetch('SELECT id,status,card_id,acid FROM ' . tablename('coupon') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $id)); if(empty($card) || empty($card['card_id'])) { message('卡券不存在或卡券id为空', referer(), 'error'); } $coupon = new coupon($acid); $card = $coupon->fetchCard($card['card_id']); if(is_error($card)) { message($card['message'], referer(), 'error'); } $type = strtolower($card['card_type']); $coupon_status = coupon_status(); $status = $coupon_status[$card[$type]['base_info']['status']]; pdo_update('coupon', array('status' => $status), array('acid' => $acid, 'id' => $id)); message('更新卡券状态成功', referer(), 'success'); } if($do == 'del') { $id = intval($_GPC['id']); $card_id = pdo_fetchcolumn('SELECT card_id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $id)); $status = coupon_delete($id); if(!is_error($status) || $_GPC['force'] == 1) { pdo_delete('coupon', array('id' => $id, 'uniacid' => $_W['uniacid'])); pdo_delete('qrcode', array('acid' => $acid, 'type' => 'card', 'extra' => $id)); pdo_delete('coupon_record', array('acid' => $acid, 'card_id' => $card_id)); pdo_delete('coupon_modules', array('acid' => $acid, 'id' => $id)); message('删除卡券成功', url('wechat/card/display'), 'success'); } else{ $url_1 = url('wechat/card/display'); $url_2 = url('wechat/card/del', array('id' => $id, 'force' => 1)); $message = " "; message($status['message']."
是否强制删除本地数据 {$message}", '', 'error'); } } if($do == 'modifystock') { $status = coupon_modifystock($_GPC['id'], $_GPC['num']); $out['erron'] = 0; $out['error'] = ''; if(!is_error($status)) { exit(json_encode($out)); } else{ $out['erron'] = 1; $out['error'] = $status['message']; exit(json_encode($out)); } } if($do == 'qr') { if($op == 'post') { $cid = intval($_GPC['cid']); $id = intval($_GPC['id']); $title = pdo_fetchcolumn('SELECT title FROM ' . tablename('coupon') . ' WHERE uniacid = :aid AND id = :id', array(':aid' => $_W['uniacid'], ':id' => $cid)); if(empty($title)) { message('卡券不存在或已经删除', url('wechat/card/display'), 'error'); } $row = pdo_fetch('SELECT * FROM ' . tablename('qrcode') . ' WHERE uniacid = :aid AND id = :id', array(':aid' => $_W['uniacid'], ':id' => $id)); if(checksubmit('submit')) { $title = !empty($_GPC['name']) ? trim($_GPC['name']) : message('场景名称不能为空'); $qrctype = intval($_GPC['qrc-model']); $data['id'] = $cid; if($id > 0) { $data['id'] = $cid; $data['outer_id'] = $row['qrcid']; $data['expire_seconds'] = min(array(intval($_GPC['expire-seconds']), 1800)); $status = coupon_qr($data); if(!is_error($status)) { $update['name'] = $title; $update['createtime'] = TIMESTAMP; $update['expire'] = $status['expire_seconds']; $update['ticket'] = $status['ticket']; $update['url'] = $status['url']; pdo_update('qrcode', $update, array('uniacid' => $_W['uniacid'], 'id' => $id)); message('更新二维码成功', url('wechat/card/qr', array('op' => 'list','cid' => $cid)), 'success'); } else { message('更新二维码失败,' . $status['message'], referer(), 'error'); } } if ($qrctype == 1) { $qrcid = pdo_fetchcolumn("SELECT qrcid FROM ".tablename('qrcode')." WHERE acid = :acid AND model = '1' ORDER BY qrcid DESC", array(':acid' => $acid)); $data['outer_id'] = !empty($qrcid) ? ($qrcid+1) : 100001; $data['expire_seconds'] = intval($_GPC['expire-seconds']) ? min(array(intval($_GPC['expire-seconds']), 1800)) : 1800; $result = coupon_qr($data); } else if ($qrctype == 2) { $qrcid = pdo_fetchcolumn("SELECT qrcid FROM ".tablename('qrcode')." WHERE acid = :acid AND model = '2' ORDER BY qrcid DESC", array(':acid' => $acid)); $data['outer_id'] = !empty($qrcid) ? ($qrcid+1) : 1; if ($data['outer_id'] > 100000) { message('抱歉,永久二维码已经生成最大数量,请先删除一些。'); } $result = coupon_qr($data); } else { message('抱歉,此公众号暂不支持您请求的二维码类型!'); } if(!is_error($result)) { $insert = array( 'uniacid' => $_W['uniacid'], 'acid' => $acid, 'qrcid' => $data['outer_id'], 'keyword' => '', 'name' => $_GPC['name'], 'model' => $qrctype, 'ticket' => $result['ticket'], 'expire' => $result['expire_seconds'], 'url' => $result['url'], 'createtime' => TIMESTAMP, 'status' => '1', 'type' => 'card', 'extra' => $cid ); pdo_insert('qrcode', $insert); message('恭喜,生成二维码成功!', url('wechat/card/qr', array('op' => 'list', 'cid' => $cid)), 'success'); } else { message("公众平台返回接口错误.
错误代码为: {$result['errorcode']}
错误信息为: {$result['message']}"); } } } if($op == 'list') { $cid = intval($_GPC['cid']); $title = pdo_fetchcolumn('SELECT title FROM ' . tablename('coupon') . ' WHERE uniacid = :aid AND id = :id', array(':aid' => $_W['uniacid'], ':id' => $cid)); $data = pdo_fetchall('SELECT * FROM ' . tablename('qrcode') . ' WHERE uniacid = :aid AND type = :type AND extra = :cid', array(':aid' => $_W['uniacid'], ':type' => 'card', ':cid' => $cid)); pdo_query("UPDATE ".tablename('qrcode')." SET status = '0' WHERE uniacid = '{$_W['uniacid']}' AND model = '1' AND createtime < '{$_W['timestamp']}' - expire"); } if($op == 'extend') { $id = intval($_GPC['id']); if (!empty($id)) { $qrcrow = pdo_fetch("SELECT * FROM ".tablename('qrcode')." WHERE uniacid = {$_W['uniacid']} AND id = '{$id}'"); $update = array(); if($qrcrow['model'] == 1) { $data['expire_seconds'] = 1800; $data['id'] = $qrcrow['extra']; $data['outer_id'] = $qrcrow['qrcid']; $result = coupon_qr($data); if(is_error($result)) { message($result['message'], '', 'error'); } $update['ticket'] = $result['ticket']; $update['expire'] = $result['expire_seconds']; $update['url'] = $result['url']; $update['createtime'] = TIMESTAMP; pdo_update('qrcode', $update, array('id' => $id, 'uniacid' => $_W['uniacid'])); } message('恭喜,延长临时二维码时间成功!', referer(), 'success'); } } if($op == 'del') { $cid = intval($_GPC['cid']); if ($_GPC['scgq']) { $list = pdo_fetchall("SELECT id FROM ".tablename('qrcode')." WHERE uniacid = '{$_W['uniacid']}' AND extra = {$cid} AND status = '0' AND type='card'", array(), 'id'); if (!empty($list)) { pdo_query("DELETE FROM ".tablename('qrcode')." WHERE id IN (".implode(',', array_keys($list)).")"); } message('执行成功
删除二维码:'.count($list), url('wechat/card/qr', array('op' => 'list', 'cid' => $cid)),'success'); }else{ $id = $_GPC['id']; pdo_delete('qrcode', array('id' =>$id, 'extra' => $cid, 'uniacid' => $_W['uniacid'])); message('删除成功', url('wechat/card/qr', array('op' => 'list', 'cid' => $cid)), 'success'); } } template('wechat/qrcode'); } if($do == 'record') { load()->model('mc'); 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($da['outer_id'] > 0) { $outer_ids[] = $da['outer_id']; } } 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'); } $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']; } $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) { $acc = new coupon($acid); $status = $acc->UnavailableCode(array('code' => $record['code'])); if(is_error($status)) { message($status['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('删除卡券领取状态成功', referer(), 'success'); } message('更改卡券领取状态成功', referer(), '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) { $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/record'); } if($do == 'toggle') { $id = intval($_GPC['id']); if($op == 'is_display') { $display = pdo_fetchcolumn('SELECT is_display FROM ' . tablename('coupon') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $id)); if($display == 1) { pdo_update('coupon', array('is_display' => 0), array('acid' => $acid, 'id' => $id)); } else { pdo_update('coupon', array('is_display' => 1), array('acid' => $acid, 'id' => $id)); } exit('success'); } } if($do == 'selfconsume') { $id = intval($_GPC['id']); load()->classs('coupon'); $coupon = new coupon($acid); $card_info = pdo_get('coupon', array('acid' => $acid,'id' => $id),array('is_selfconsume','card_id','location_id_list')); $is_selfconsume = $card_info['is_selfconsume']; $card_id = $card_info['card_id']; $location_id_list = iunserializer($card_info['location_id_list']); if(empty($location_id_list)) { exit('该卡券未设置适用门店,无法设置自助核销'); } else { $is_open = ($is_selfconsume == 1) ? false : true; $selfconsume_value = ($is_selfconsume == 1) ? 0 : 1; $data = array( 'card_id' => $card_id, 'is_open' => $is_open ); $result = $coupon->selfConsume($data); if(!is_error($result)) { pdo_update('coupon', array('is_selfconsume' => $selfconsume_value), array('acid' => $acid, 'id' => $id)); } exit('success'); } } if($do == 'discount') { if($op == 'post') { unset($url_name_type['URL_NAME_TYPE_VIP_SERVICE']); $id = intval($_GPC['id']); if($id > 0) { $item = coupon_fetch($id); if(is_error($item)) { message($item['message'], '', 'error'); } } template('wechat/coupon-post'); } elseif($op == 'post_save') { $post = array(); foreach($_GPC['data'] as $da) { $post[$da['name']] = trim($da['value']); } $out['errno'] = 1; $out['error'] = ''; $post['logo_url'] = empty($post['logo_url']) ? $setting['logourl'] : trim($post['logo_url']); $base = new Card('DISCOUNT', $post); if(is_error($base->discount->base_info)) { $out['errno'] = 0; $out['error'] = $base->discount->base_info['message']; exit(json_encode($out)); } $base->get_card()->set_discount(100 - intval($post['discount'])); $acc = new coupon($acid); $status = $acc->CreateCard($base->toJson()); if(is_error($status)) { $out['errno'] = 0; $out['error'] = $status['message']; exit(json_encode($out)); } $post['card_id'] = $status['card_id']; $post['date_info'] = array( 'time_type' => $post['time_type'], 'time_limit_start' => $post['time_limit[start]'], 'time_limit_end' => $post['time_limit[end]'], 'deadline' => $post['deadline'], 'limit' => $post['limit'], ); $post['date_info'] = iserializer($post['date_info']); if(!empty($post['location-select'])) { $location = explode('-', $post['location-select']); $post['location_id_list'] = iserializer($location); } else { $post['location_id_list'] = iserializer(array()); } $post['uniacid'] = $_W['uniacid']; $post['acid'] = $acid; $post['type'] = 'discount'; $post['extra'] = intval($post['discount']); $post['is_display'] = intval($post['is_display']); empty($post['code_type']) && $post['code_type'] = 1; $post['status'] = 1; $module = trim($post['module-select']); unset($post['module-select'],$post['discount'],$post['time_type'],$post['limit'],$post['deadline'], $post['time_limit[start]'],$post['time_limit[end]'],$post['color-value'], $post['token'], $post['is_location'], $post['location-select']); $is_ok = pdo_fetchcolumn('SELECT id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND card_id = :card_id', array(':acid' => $acid, ':card_id' => $post['card_id'])); if(empty($is_ok)) { pdo_insert('coupon', $post); $cid = pdo_insertid(); } else { $cid = $is_ok; unset($post['status']); pdo_update('coupon', $post, array('acid' => $acid, 'id' => $is_ok)); } if(!empty($module)) { $arr = explode('@', $module); foreach($arr as $li) { $data = array( 'uniacid' => $_W['uniacid'], 'acid' => $acid, 'card_id' =>$post['card_id'], 'cid' => $cid, 'module' => $li ); pdo_insert('coupon_modules', $data); } } exit(json_encode($out)); } } if($do == 'cash') { if($op == 'post') { unset($url_name_type['URL_NAME_TYPE_VIP_SERVICE']); $id = intval($_GPC['id']); if($id > 0) { $item = coupon_fetch($id); if(is_error($item)) { message($item['message'], '', 'error'); } } template('wechat/cash-post'); } elseif($op == 'post_save') { $post = array(); foreach($_GPC['data'] as $da) { $post[$da['name']] = trim($da['value']); } $out['errno'] = 1; $out['error'] = ''; $post['logo_url'] = empty($post['logo_url']) ? $setting['logourl'] : trim($post['logo_url']); $base = new Card('CASH', $post); if(is_error($base->cash->base_info)) { $out['errno'] = 0; $out['error'] = $base->cash->base_info['message']; exit(json_encode($out)); } $base->get_card()->set_least_cost($post['least_cost'] * 100); $base->get_card()->set_reduce_cost($post['reduce_cost'] * 100); $acc = new coupon($acid); $status = $acc->CreateCard($base->toJson()); if(is_error($status)) { $out['errno'] = 0; $out['error'] = $status['message']; exit(json_encode($out)); } $post['card_id'] = $status['card_id']; $post['date_info'] = array( 'time_type' => $post['time_type'], 'time_limit_start' => $post['time_limit[start]'], 'time_limit_end' => $post['time_limit[end]'], 'deadline' => $post['deadline'], 'limit' => $post['limit'], ); $post['date_info'] = iserializer($post['date_info']); if(!empty($post['location-select'])) { $location = explode('-', $post['location-select']); $post['location_id_list'] = iserializer($location); } else { $post['location_id_list'] = iserializer(array()); } $post['uniacid'] = $_W['uniacid']; $post['acid'] = $acid; $post['type'] = 'cash'; $post['extra'] = iserializer(array('least_cost' => $post['least_cost'], 'reduce_cost' => $post['reduce_cost'],)); $post['is_display'] = intval($post['is_display']); empty($post['code_type']) && $post['code_type'] = 1; $post['status'] = 1; $module = trim($post['module-select']); unset($post['module-select'],$post['least_cost'],$post['reduce_cost'],$post['time_type'],$post['limit'],$post['deadline'], $post['time_limit[start]'],$post['time_limit[end]'],$post['color-value'], $post['token'], $post['is_location'], $post['location-select']); $is_ok = pdo_fetchcolumn('SELECT id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND card_id = :card_id', array(':acid' => $acid, ':card_id' => $post['card_id'])); if(empty($is_ok)) { pdo_insert('coupon', $post); $cid = pdo_insertid(); } else { $cid = $is_ok; unset($post['status']); pdo_update('coupon', $post, array('acid' => $acid, 'id' => $is_ok)); } if(!empty($module)) { $arr = explode('@', $module); foreach($arr as $li) { $data = array( 'uniacid' => $_W['uniacid'], 'acid' => $acid, 'card_id' =>$post['card_id'], 'cid' => $cid, 'module' => $li ); pdo_insert('coupon_modules', $data); } } exit(json_encode($out)); } } if($do == 'gift') { if($op == 'post') { unset($url_name_type['URL_NAME_TYPE_VIP_SERVICE']); $id = intval($_GPC['id']); if($id > 0) { $item = coupon_fetch($id); if(is_error($item)) { message($item['message'], '', 'error'); } } template('wechat/gift-post'); } elseif($op == 'post_save') { $post = array(); foreach($_GPC['data'] as $da) { $post[$da['name']] = trim($da['value']); } $out['errno'] = 1; $out['error'] = ''; $post['logo_url'] = empty($post['logo_url']) ? $setting['logourl'] : trim($post['logo_url']); $base = new Card('GIFT', $post); if(is_error($base->gift->base_info)) { $out['errno'] = 0; $out['error'] = $base->gift->base_info['message']; exit(json_encode($out)); } $base->get_card()->set_gift(urlencode(trim($post['gift']))); $acc = new coupon($acid); $status = $acc->CreateCard($base->toJson()); if(is_error($status)) { $out['errno'] = 0; $out['error'] = $status['message']; exit(json_encode($out)); } $post['card_id'] = $status['card_id']; $post['date_info'] = array( 'time_type' => $post['time_type'], 'time_limit_start' => $post['time_limit[start]'], 'time_limit_end' => $post['time_limit[end]'], 'deadline' => $post['deadline'], 'limit' => $post['limit'], ); $post['date_info'] = iserializer($post['date_info']); if(!empty($post['location-select'])) { $location = explode('-', $post['location-select']); $post['location_id_list'] = iserializer($location); } else { $post['location_id_list'] = iserializer(array()); } $post['uniacid'] = $_W['uniacid']; $post['acid'] = $acid; $post['type'] = 'gift'; $post['extra'] = trim($post['gift']); $post['is_display'] = intval($post['is_display']); empty($post['code_type']) && $post['code_type'] = 1; $post['status'] = 1; unset($post['gift'],$post['time_type'],$post['limit'],$post['deadline'], $post['time_limit[start]'],$post['time_limit[end]'],$post['color-value'], $post['token'], $post['is_location'], $post['location-select']); $is_ok = pdo_fetchcolumn('SELECT id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND card_id = :card_id', array(':acid' => $acid, ':card_id' => $post['card_id'])); if(empty($is_ok)) { pdo_insert('coupon', $post); } else { unset($post['status']); pdo_update('coupon', $post, array('acid' => $acid, 'id' => $is_ok)); } exit(json_encode($out)); } } if($do == 'groupon') { if($op == 'post') { unset($url_name_type['URL_NAME_TYPE_VIP_SERVICE']); $id = intval($_GPC['id']); if($id > 0) { $item = coupon_fetch($id); if(is_error($item)) { message($item['message'], '', 'error'); } } template('wechat/groupon-post'); } elseif($op == 'post_save') { $post = array(); foreach($_GPC['data'] as $da) { $post[$da['name']] = trim($da['value']); } $out['errno'] = 1; $out['error'] = ''; $post['logo_url'] = empty($post['logo_url']) ? $setting['logourl'] : trim($post['logo_url']); $base = new Card('GROUPON', $post); if(is_error($base->groupon->base_info)) { $out['errno'] = 0; $out['error'] = $base->groupon->base_info['message']; exit(json_encode($out)); } $base->get_card()->set_deal_detail(urlencode(trim($post['deal_detail']))); $acc = new coupon($acid); $status = $acc->CreateCard($base->toJson()); if(is_error($status)) { $out['errno'] = 0; $out['error'] = $status['message']; exit(json_encode($out)); } $post['card_id'] = $status['card_id']; $post['date_info'] = array( 'time_type' => $post['time_type'], 'time_limit_start' => $post['time_limit[start]'], 'time_limit_end' => $post['time_limit[end]'], 'deadline' => $post['deadline'], 'limit' => $post['limit'], ); $post['date_info'] = iserializer($post['date_info']); if(!empty($post['location-select'])) { $location = explode('-', $post['location-select']); $post['location_id_list'] = iserializer($location); } else { $post['location_id_list'] = iserializer(array()); } $post['uniacid'] = $_W['uniacid']; $post['acid'] = $acid; $post['type'] = 'groupon'; $post['extra'] = trim($post['deal_detail']); $post['is_display'] = intval($post['is_display']); empty($post['code_type']) && $post['code_type'] = 1; $post['status'] = 1; unset($post['deal_detail'],$post['time_type'],$post['limit'],$post['deadline'], $post['time_limit[start]'],$post['time_limit[end]'],$post['color-value'], $post['token'], $post['is_location'], $post['location-select']); $is_ok = pdo_fetchcolumn('SELECT id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND card_id = :card_id', array(':acid' => $acid, ':card_id' => $post['card_id'])); if(empty($is_ok)) { pdo_insert('coupon', $post); } else { unset($post['status']); pdo_update('coupon', $post, array('acid' => $acid, 'id' => $is_ok)); } exit(json_encode($out)); } } if($do == 'general_coupon') { if($op == 'post') { unset($url_name_type['URL_NAME_TYPE_VIP_SERVICE']); $id = intval($_GPC['id']); if($id > 0) { $item = coupon_fetch($id); if(is_error($item)) { message($item['message'], '', 'error'); } } template('wechat/general_coupon-post'); } elseif($op == 'post_save') { $post = array(); foreach($_GPC['data'] as $da) { $post[$da['name']] = trim($da['value']); } $out['errno'] = 1; $out['error'] = ''; $post['logo_url'] = empty($post['logo_url']) ? $setting['logourl'] : trim($post['logo_url']); $base = new Card('GENERAL_COUPON', $post); if(is_error($base->general_coupon->base_info)) { $out['errno'] = 0; $out['error'] = $base->general_coupon->base_info['message']; exit(json_encode($out)); } $base->get_card()->set_default_detail(urlencode(trim($post['default_detail']))); $acc = new coupon($acid); $status = $acc->CreateCard($base->toJson()); if(is_error($status)) { $out['errno'] = 0; $out['error'] = $status['message']; exit(json_encode($out)); } $post['card_id'] = $status['card_id']; $post['date_info'] = array( 'time_type' => $post['time_type'], 'time_limit_start' => $post['time_limit[start]'], 'time_limit_end' => $post['time_limit[end]'], 'deadline' => $post['deadline'], 'limit' => $post['limit'], ); $post['date_info'] = iserializer($post['date_info']); if(!empty($post['location-select'])) { $location = explode('-', $post['location-select']); $post['location_id_list'] = iserializer($location); } else { $post['location_id_list'] = iserializer(array()); } $post['uniacid'] = $_W['uniacid']; $post['acid'] = $acid; $post['type'] = 'general_coupon'; $post['extra'] = $post['default_detail']; $post['is_display'] = intval($post['is_display']); empty($post['code_type']) && $post['code_type'] = 1; $post['status'] = 1; unset($post['default_detail'],$post['time_type'],$post['limit'],$post['deadline'], $post['time_limit[start]'],$post['time_limit[end]'],$post['color-value'], $post['token'], $post['is_location'], $post['location-select']); $is_ok = pdo_fetchcolumn('SELECT id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND card_id = :card_id', array(':acid' => $acid, ':card_id' => $post['card_id'])); if(empty($is_ok)) { pdo_insert('coupon', $post); } else { unset($post['status']); pdo_update('coupon', $post, array('acid' => $acid, 'id' => $is_ok)); } exit(json_encode($out)); } } if($do == 'module') { $module = uni_modules(); if(!empty($module)) { $new = array(); $filter = array('system', 'activity'); foreach($module as $mou) { if(in_array($mou['type'], $filter)) continue; $new[] = $mou; } } unset($module); template('wechat/module_model'); die; }