123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <?php
- /**
- * [WeEngine System] Copyright (c) 2014 WE7.CC
- * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
- */
- defined('IN_IA') or exit('Access Denied');
- $_W['page']['title'] = '卡券核销-积分兑换';
- load()->model('mc');
- uni_user_permission_check("activity_consume_coupon");
- $dos = array('consume', 'display', 'del');
- $do = in_array($do, $dos) ? $do : 'display';
- if (!empty($type)) {
- $type_title = activity_coupon_type_label($type);
- }
- if($do == 'consume') {
- $recid = intval($_GPC['id']);
- $record = pdo_get('coupon_record', array('uniacid' => $_W['uniacid'], 'id' => $recid));
- if(empty($record)) {
- message(error(-1, '兑换记录不存在'), referer(), 'ajax');
- }
- $source = intval($_GPC['source']);
- $clerk_name = trim($_W['user']['name']) ? trim($_W['user']['name']) : trim($_W['user']['username']);
- $update = array(
- 'status' => 3,
- 'usetime' => TIMESTAMP,
- 'clerk_id' => $_W['user']['clerk_id'],
- 'clerk_type' => $_W['user']['clerk_type'],
- 'store_id' => $_W['user']['store_id'],
- 'clerk_name' => $clerk_name,
- );
- if ($source == '2') {
- $status = $coupon_api->ConsumeCode(array('code' => $record['code']));
- if(is_error($status)) {
- if (strexists($status['message'], '40127')) {
- $status['message'] = '卡券已失效';
- pdo_update('coupon_record', array('status' => '2'), array('uniacid' => $_W['uniacid'], 'id' => $recid));
- }
- if (strexists($status['message'], '40099')) {
- $status['message'] = '卡券已被核销';
- pdo_update('coupon_record', array('status' => '3'), array('uniacid' => $_W['uniacid'], 'id' => $recid));
- }
- message(error(-1, $status['message']), '', 'ajax');
- }
- }
- $status = pdo_update('coupon_record', $update, array('uniacid' => $_W['uniacid'], 'id' => $recid));
- if (!empty($status)) {
- message(error(0, '核销成功'), referer(), 'ajax');
- }
- }
- if($do == 'display') {
- $source = (COUPON_TYPE == SYSTEM_COUPON) ? '1' : '2';
- $clerks = pdo_getall('activity_clerks', array('uniacid' => $_W['uniacid']), array('id', 'name'), 'id');
- $stores = pdo_getall('activity_stores', array('uniacid' => $_W['uniacid']), array('id', 'business_name', 'branch_name'), 'id');
- $store_ids = array_keys($stores);
- $nicknames_info = pdo_getall('mc_mapping_fans', array('uniacid' => $_W['uniacid']), array('nickname', 'openid'), 'openid');
- $condition = '';
- $coupons = pdo_fetchall('SELECT id, title FROM ' . tablename('coupon') . ' WHERE uniacid = :uniacid AND source = :source ORDER BY id DESC', array(':uniacid' => $_W['uniacid'], ':source' => $source), 'id');
- $starttime = empty($_GPC['time']['start']) ? strtotime('-1 month') : strtotime($_GPC['time']['start']);
- $endtime = empty($_GPC['time']['end']) ? TIMESTAMP : strtotime($_GPC['time']['end']) + 86399;
- $type = intval($_GPC['type']);
- if (!empty($type)) {
- $condition = "AND b.type = $type";
- }
- $where = " WHERE a.uniacid = {$_W['uniacid']} ".$condition." AND b.source = {$source}";
- $params = array();
- $code = trim($_GPC['code']);
- if (!empty($code)) {
- $where .=' AND a.code=:code';
- $params[':code'] = $code;
- }
- $couponid = intval($_GPC['couponid']);
- if (!empty($couponid)) {
- $where .= " AND a.couponid = {$couponid}";
- }
- $clerk_id = intval($_GPC['clerk_id']);
- if (!empty($clerk_id)) {
- $where .= " AND a.clerk_id = :clerk_id";
- $params[':clerk_id'] = $clerk_id;
- }
- if (!empty($_GPC['nickname'])) {
- $nicknames = pdo_fetchall('SELECT * FROM '. tablename('mc_mapping_fans')." WHERE uniacid = :uniacid AND nickname LIKE :nickname", array(':uniacid' => $_W['uniacid'], ':nickname' => '%'.$_GPC['nickname'].'%'), 'openid');
- $nickname = array_keys($nicknames);
- $nickname = '\''.implode('\',\'', $nickname).'\'';
- $where .= " AND openid in ({$nickname}) ";
- }
- $status = intval($_GPC['status']);
- if (!empty($status)) {
- $where .= " AND a.status = :status";
- $params[':status'] = $status;
- } else {
- $where .= " AND a.status <> :status";
- $params[':status'] = 4;
- }
- $pindex = max(1, intval($_GPC['page']));
- $psize = 20;
- $list = pdo_fetchall("SELECT a.status AS rstatus,a.id AS recid, a.*, b.* FROM ".tablename('coupon_record'). ' AS a LEFT JOIN ' . tablename('coupon') . ' AS b ON a.couponid = b.id ' . " $where AND a.code <> '' ORDER BY a.status DESC, a.couponid DESC,a.id DESC LIMIT ".($pindex - 1) * $psize.','.$psize, $params);
- $total = pdo_fetchcolumn("SELECT COUNT(*) FROM ".tablename('coupon_record') . ' AS a LEFT JOIN ' . tablename('coupon') . ' AS b ON a.couponid = b.id '. $where ." AND a.code <> ''", $params);
- if(!empty($list)) {
- $uids = array();
- foreach ($list as &$row) {
- if (empty($row['store_id'])) {
- $row['store_name'] = '系统';
- } else {
- if (!in_array($row['store_id'], $store_ids)) {
- $row['store_name'] = '<span class="label label-danger">门店已删除</span>';
- } else {
- $row['store_name'] = $stores[$row['store_id']]['business_name'];
- }
- }
- $uids[] = $row['uid'];
- if($row['status'] == 2) {
- $operator = mc_account_change_operator($row['clerk_type'], $row['store_id'], $row['clerk_id']);
- $row['clerk_cn'] = $operator['clerk_cn'];
- $row['store_cn'] = $operator['store_cn'];
- }
- $row['extra'] = iunserializer($row['extra']);
- if ($row['type'] == COUPON_TYPE_DISCOUNT){
- $row['extra_notes'] = $row['extra']['discount'] * 0.1 . '折';
- } elseif ($row['type'] == COUPON_TYPE_CASH){
- $row['extra_notes'] = $row['extra']['reduce_cost'] * 0.01 . '元';
- }
- $date = iunserializer($row['date_info']);
- if ($date['time_type'] == 2) {
- $addtime = strtotime(date('Y-m-d', $row['addtime']));
- $row['starttime'] = $addtime + $date['deadline'] * 86400;
- $row['endtime'] = $starttime + ($date['limit'] - 1) * 86400;
- $row['time'] = strtotime(date('Y-m-d'));
- }
- }
- $members = mc_fetch($uids, array('uid', 'nickname'));
- foreach ($list as &$row) {
- $row['nickname'] = $members[$row['uid']]['nickname'];
- $row['logo_url'] = tomedia($row['logo_url']);
- }
- }
- $pager = pagination($total, $pindex, $psize);
- $status = array('1' => '未使用', '2' => '已使用');
- $clerks = pdo_getall('activity_clerks', array('uniacid' => $_W['uniacid']), array('id', 'name'), 'id');
- }
- if($do == 'del') {
- $recid = intval($_GPC['id']);
- $record = pdo_get('coupon_record', array('uniacid' => $_W['uniacid'], 'id' => $recid));
- if(empty($record)) {
- message(error(-1, '没有要删除的记录'), '', 'ajax');
- }
- $source = intval($_GPC['source']);
- if ($source == '2') {
- $status = $coupon_api->UnavailableCode(array('code' => $record['code']));
- if (is_error($status)) {
- message(error(-1, $status['message']), referer(), 'ajax');
- }
- }
- $status = pdo_delete('coupon_record', array('uniacid' => $_W['uniacid'], 'id' => $recid));
- if (!empty($status)) {
- message(error(0, '删除成功'), referer(), 'ajax');
- }
- }
- template('activity/consume');
|