public function doWebPrint() { global $_W, $_GPC; $id = intval($_GPC['id']); //订单ID $op = trim($_GPC['op']) ? trim($_GPC['op']) : 'print_list'; if ($op == 'print_post') { if ($id > 0) { $item = pdo_fetch('SELECT * FROM ' . tablename('shopping_print') . ' WHERE uniacid = :uniacid AND id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $id)); } if (empty($item)) { $item = array('status' => 1, 'print_nums' => 1); } if (checksubmit('submit')) { $data['status'] = intval($_GPC['status']); $data['name'] = !empty($_GPC['name']) ? trim($_GPC['name']) : message('打印机名称不能为空', '', 'error'); $data['print_no'] = !empty($_GPC['print_no']) ? trim($_GPC['print_no']) : message('机器号不能为空', '', 'error'); $data['key'] = !empty($_GPC['key']) ? trim($_GPC['key']) : message('打印机key不能为空', '', 'error'); $data['print_nums'] = intval($_GPC['print_nums']) ? intval($_GPC['print_nums']) : 1; if (!empty($_GPC['qrcode_link']) && (strexists($_GPC['qrcode_link'], 'http://') || strexists($_GPC['qrcode_link'], 'https://'))) { $data['qrcode_link'] = trim($_GPC['qrcode_link']); } $data['uniacid'] = $_W['uniacid']; $data['sid'] = $sid; if (!empty($item) && $id) { pdo_update('shopping_print', $data, array('uniacid' => $_W['uniacid'], 'id' => $id)); } else { pdo_insert('shopping_print', $data); } message('更新打印机设置成功', $this->createWebUrl('print', array('op' => 'print_list')), 'success'); } } elseif ($op == 'print_list') { $data = pdo_fetchall('SELECT * FROM ' . tablename('shopping_print') . ' WHERE uniacid = :uniacid ', array(':uniacid' => $_W['uniacid'])); // include $this->template('print'); } elseif ($op == 'print_del') { $id = intval($_GPC['id']); pdo_delete('shopping_print', array('uniacid' => $_W['uniacid'], 'id' => $id)); message('删除打印机成功', referer(), 'success'); } elseif ($op == 'log_del') { $id = intval($_GPC['id']); pdo_delete('shopping_order_print', array('uniacid' => $_W['uniacid'], 'id' => $id)); message('删除打印记录成功', referer(), 'success'); } elseif ($op == 'print_log') { $id = intval($_GPC['id']); $item = pdo_fetch('SELECT * FROM ' . tablename('shopping_print') . ' WHERE uniacid = :uniacid AND id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $id)); if (empty($item)) { message('打印机不存在或已删除', $this->createWebUrl('print', array('op' => 'print_list')), 'success'); } if (!empty($item['print_no']) && !empty($item['key'])) { include 'wprint.class.php'; $wprint = new wprint(); $status = $wprint->QueryPrinterStatus($item['print_no'], $item['key']); if (is_error($status)) { $status = '查询打印机状态失败。请刷新页面重试'; } } $condition = ' WHERE a.uniacid = :aid AND a.sid = :sid AND a.pid = :pid'; $params[':aid'] = $_W['uniacid']; $params[':sid'] = $sid; $params[':pid'] = $id; if (!empty($_GPC['oid'])) { $oid = trim($_GPC['oid']); $condition .= ' AND a.oid = :oid'; $params[':oid'] = $oid; } $pindex = max(1, intval($_GPC['page'])); $psize = 20; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('shopping_order_print') . ' AS a ' . $condition, $params); $data = pdo_fetchall('SELECT a.*,b.* FROM ' . tablename('shopping_order_print') . ' AS a LEFT JOIN' . tablename('shopping_order') . ' AS b ON a.oid = b.id' . $condition . ' ORDER BY addtime DESC LIMIT ' . ($pindex - 1) * $psize . ',' . $psize, $params); $pager = pagination($total, $pindex, $psize); // include $this->template('print'); } include $this->template('print'); }
pdo_delete('daijia_print', array('uniacid' => $_W['uniacid'], 'id' => $id)); message('删除打印机成功', referer(), 'success'); } elseif ($op == 'log_del') { $id = intval($_GPC['id']); pdo_delete('daiaji_order_print', array('uniacid' => $_W['uniacid'], 'id' => $id)); message('删除打印记录成功', referer(), 'success'); } elseif ($op == 'print_log') { $id = intval($_GPC['id']); $item = pdo_fetch('SELECT * FROM ' . tablename('daijia_print') . ' WHERE uniacid = :uniacid AND id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $id)); if (empty($item)) { message('打印机不存在或已删除', $this->createWebUrl('print', array('op' => 'print_list')), 'success'); } if (!empty($item['print_no']) && !empty($item['key'])) { include 'wprint.class.php'; $wprint = new wprint(); $status = $wprint->QueryPrinterStatus($item['print_no'], $item['key']); if (is_error($status)) { $status = '查询打印机状态失败。请刷新页面重试'; } } $condition = ' WHERE a.uniacid = :aid AND a.sid = :sid AND a.pid = :pid'; $params[':aid'] = $_W['uniacid']; $params[':sid'] = $sid; $params[':pid'] = $id; if (!empty($_GPC['oid'])) { $oid = trim($_GPC['oid']); $condition .= ' AND a.oid = :oid'; $params[':oid'] = $oid; } $pindex = max(1, intval($_GPC['page'])); $psize = 20;
public function doWebManage() { global $_W, $_GPC; $op = trim($_GPC['op']) ? trim($_GPC['op']) : 'cate_list'; $sid = intval($_GPC['__sid']); $store = pdo_fetch('SELECT id, title FROM ' . tablename('str_store') . ' WHERE uniacid = :aid AND id = :id', array(':aid' => $_W['uniacid'], ':id' => $sid)); if (empty($store)) { message('门店信息不存在或已删除', $this->createWebUrl('store'), 'error'); } $pay_types = array('alipay' => '支付宝支付', 'wechat' => '微信支付', 'credit' => '余额支付', 'delivery' => '餐到付款'); if ($op == 'cate_list') { $condition = ' uniacid = :aid AND sid = :sid'; $params[':aid'] = $_W['uniacid']; $params[':sid'] = $sid; if (!empty($_GPC['keyword'])) { $condition .= " AND title LIKE '%{$_GPC['keyword']}%'"; } $pindex = max(1, intval($_GPC['page'])); $psize = 20; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('str_dish_category') . ' WHERE ' . $condition, $params); $lists = pdo_fetchall('SELECT * FROM ' . tablename('str_dish_category') . ' WHERE ' . $condition . ' ORDER BY displayorder DESC,id ASC LIMIT ' . ($pindex - 1) * $psize . ',' . $psize, $params, 'id'); if (!empty($lists)) { $ids = implode(',', array_keys($lists)); $nums = pdo_fetchall('SELECT count(*) AS num,cid FROM ' . tablename('str_dish') . " WHERE uniacid = :aid AND cid IN ({$ids}) GROUP BY cid", array(':aid' => $_W['uniacid']), 'cid'); } $pager = pagination($total, $pindex, $psize); if (checksubmit('submit')) { if (!empty($_GPC['ids'])) { foreach ($_GPC['ids'] as $k => $v) { $data = array('title' => trim($_GPC['title'][$k]), 'displayorder' => intval($_GPC['displayorder'][$k])); pdo_update('str_dish_category', $data, array('uniacid' => $_W['uniacid'], 'id' => intval($v))); } message('编辑成功', $this->createWebUrl('manage', array('op' => 'cate_list')), 'success'); } } include $this->template('category'); } elseif ($op == 'cate_post') { if (checksubmit('submit')) { if (!empty($_GPC['title'])) { foreach ($_GPC['title'] as $k => $v) { $v = trim($v); if (empty($v)) { continue; } $data['sid'] = $sid; $data['uniacid'] = $_W['uniacid']; $data['title'] = $v; $data['displayorder'] = intval($_GPC['displayorder'][$k]); pdo_insert('str_dish_category', $data); } } message('添加菜品分类成功', $this->createWebUrl('manage', array('sid' => $sid, 'op' => 'cate_list')), 'success'); } include $this->template('category'); } elseif ($op == 'cate_del') { $id = intval($_GPC['id']); pdo_delete('str_dish_category', array('uniacid' => $_W['uniacid'], 'sid' => $sid, 'id' => $id)); pdo_delete('str_dish', array('uniacid' => $_W['uniacid'], 'sid' => $sid, 'cid' => $id)); message('删除菜品分类成功', $this->createWebUrl('manage', array('op' => 'cate_list')), 'success'); } elseif ($op == 'dish_list') { $condition = ' uniacid = :aid AND sid = :sid'; $params[':aid'] = $_W['uniacid']; $params[':sid'] = $sid; if (!empty($_GPC['keyword'])) { $condition .= " AND title LIKE '%{$_GPC['keyword']}%'"; } if (!empty($_GPC['cid'])) { $condition .= " AND cid = :cid"; $params[':cid'] = intval($_GPC['cid']); } $pindex = max(1, intval($_GPC['page'])); $psize = 20; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('str_dish') . ' WHERE ' . $condition, $params); $lists = pdo_fetchall('SELECT * FROM ' . tablename('str_dish') . ' WHERE ' . $condition . ' ORDER BY displayorder DESC,id ASC LIMIT ' . ($pindex - 1) * $psize . ',' . $psize, $params); $pager = pagination($total, $pindex, $psize); $category = pdo_fetchall('SELECT title, id FROM ' . tablename('str_dish_category') . ' WHERE uniacid = :aid AND sid = :sid', array(':aid' => $_W['uniacid'], ':sid' => $sid), 'id'); include $this->template('dish'); } elseif ($op == 'dish_post') { load()->func('tpl'); $category = pdo_fetchall('SELECT title, id FROM ' . tablename('str_dish_category') . ' WHERE uniacid = :aid AND sid = :sid ORDER BY displayorder DESC, id ASC', array(':aid' => $_W['uniacid'], ':sid' => $sid)); $id = intval($_GPC['id']); if ($id) { $item = pdo_fetch('SELECT * FROM ' . tablename('str_dish') . ' WHERE uniacid = :aid AND id = :id', array(':aid' => $_W['uniacid'], ':id' => $id)); if (empty($item)) { message('菜品不存在或已删除', $this->createWebUrl('manage', array('dish_list')), 'success'); } } else { $item['total'] = -1; } if (checksubmit('submit')) { $data = array('sid' => $sid, 'uniacid' => $_W['uniacid'], 'title' => trim($_GPC['title']), 'price' => intval($_GPC['price']), 'total' => intval($_GPC['total']), 'sailed' => intval($_GPC['sailed']), 'is_display' => intval($_GPC['is_display']), 'cid' => intval($_GPC['cid']), 'thumb' => trim($_GPC['thumb']), 'displayorder' => intval($_GPC['displayorder']), 'description' => trim($_GPC['description'])); if ($id) { pdo_update('str_dish', $data, array('uniacid' => $_W['uniacid'], 'id' => $id)); } else { pdo_insert('str_dish', $data); } message('编辑菜品成功', $this->createWebUrl('manage', array('op' => 'dish_list')), 'success'); } include $this->template('dish'); } elseif ($op == 'order') { //获取模块的支付方式 load()->func('tpl'); $condition = ' WHERE uniacid = :aid AND sid = :sid'; $params[':aid'] = $_W['uniacid']; $params[':sid'] = $sid; $status = intval($_GPC['status']); if ($status) { $condition .= ' AND status = :stu'; $params[':stu'] = $status; } $keyword = trim($_GPC['keyword']); if (!empty($keyword)) { $condition .= " AND (username LIKE '%{$keyword}%' OR mobile LIKE '%{$keyword}%')"; } $pay_ty = trim($_GPC['pay_type']); if (!empty($pay_ty)) { $condition .= " AND pay_type = :pay_ty"; $params[':pay_ty'] = $pay_ty; } $pay_sta = trim($_GPC['pay_status']); if (!empty($pay_sta)) { $condition .= " AND pay_status = :pay_sta"; $params[':pay_sta'] = $pay_sta; } if (!empty($_GPC['addtime'])) { $starttime = strtotime($_GPC['addtime']['start']); $endtime = strtotime($_GPC['addtime']['end']) + 86399; } else { $starttime = strtotime('-15 day'); $endtime = TIMESTAMP; } $condition .= " AND addtime > :start AND addtime < :end"; $params[':start'] = $starttime; $params[':end'] = $endtime; $pindex = max(1, intval($_GPC['page'])); $psize = 20; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('str_order') . $condition, $params); $data = pdo_fetchall('SELECT * FROM ' . tablename('str_order') . $condition . ' ORDER BY addtime DESC LIMIT ' . ($pindex - 1) * $psize . ',' . $psize, $params); $pager = pagination($total, $pindex, $psize); include $this->template('order'); } elseif ($op == 'orderdetail') { $id = intval($_GPC['id']); $order = pdo_fetch('SELECT * FROM ' . tablename('str_order') . ' WHERE uniacid = :aid AND id = :id', array(':aid' => $_W['uniacid'], ':id' => $id)); if (empty($order)) { message('订单不存在或已经删除', $this->createWebUrl('manage', array('op' => 'order')), 'error'); } else { $order['dish'] = iunserializer($order['dish']); $comment = pdo_fetchall('SELECT * FROM ' . tablename('str_dish_comment') . ' WHERE uniacid = :aid AND oid = :id', array(':aid' => $_W['uniacid'], ':id' => $id), 'did'); } include $this->template('order'); } elseif ($op == 'ajaxorder') { $oid = intval($_GPC['oid']); $status = intval($_GPC['status']); $column = trim($_GPC['column']); $is_exist = pdo_fetch('SELECT id FROM ' . tablename('str_order') . ' WHERE uniacid = :aid AND id = :id', array(':aid' => $_W['uniacid'], ':id' => $oid)); if (empty($is_exist)) { exit('订单不存在'); } pdo_update('str_order', array($column => $status), array('uniacid' => $_W['uniacid'], 'id' => $oid)); exit('success'); } elseif ($op == 'orderdel') { $id = intval($_GPC['id']); pdo_delete('str_order', array('uniacid' => $_W['uniacid'], 'id' => $id)); pdo_delete('str_dish_comment', array('uniacid' => $_W['uniacid'], 'oid' => $id)); message('删除订单成功', $this->createWebUrl('manage', array('op' => 'order')), 'success'); } elseif ($op == 'print_post') { $id = intval($_GPC['id']); if ($id > 0) { $item = pdo_fetch('SELECT * FROM ' . tablename('str_print') . ' WHERE uniacid = :uniacid AND id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $id)); } if (empty($item)) { $item = array('status' => 1, 'print_nums' => 1); } if (checksubmit('submit')) { $data['status'] = intval($_GPC['status']); $data['name'] = !empty($_GPC['name']) ? trim($_GPC['name']) : message('打印机名称不能为空', '', 'error'); $data['print_no'] = !empty($_GPC['print_no']) ? trim($_GPC['print_no']) : message('机器号不能为空', '', 'error'); $data['key'] = !empty($_GPC['key']) ? trim($_GPC['key']) : message('打印机key不能为空', '', 'error'); $data['print_nums'] = intval($_GPC['print_nums']) ? intval($_GPC['print_nums']) : 1; if (!empty($_GPC['qrcode_link']) && (strexists($_GPC['qrcode_link'], 'http://') || strexists($_GPC['qrcode_link'], 'https://'))) { $data['qrcode_link'] = trim($_GPC['qrcode_link']); } $data['uniacid'] = $_W['uniacid']; $data['sid'] = $sid; if (!empty($item) && $id) { pdo_update('str_print', $data, array('uniacid' => $_W['uniacid'], 'id' => $id)); } else { pdo_insert('str_print', $data); } message('更新打印机设置成功', $this->createWebUrl('manage', array('op' => 'print_list')), 'success'); } include $this->template('print'); } elseif ($op == 'print_list') { $data = pdo_fetchall('SELECT * FROM ' . tablename('str_print') . ' WHERE uniacid = :uniacid AND sid = :sid', array(':uniacid' => $_W['uniacid'], ':sid' => $sid)); include $this->template('print'); } elseif ($op == 'print_del') { $id = intval($_GPC['id']); pdo_delete('str_print', array('uniacid' => $_W['uniacid'], 'id' => $id)); message('删除打印机成功', referer(), 'success'); } elseif ($op == 'log_del') { $id = intval($_GPC['id']); pdo_delete('str_order_print', array('uniacid' => $_W['uniacid'], 'id' => $id)); message('删除打印记录成功', referer(), 'success'); } elseif ($op == 'print_log') { $id = intval($_GPC['id']); $item = pdo_fetch('SELECT * FROM ' . tablename('str_print') . ' WHERE uniacid = :uniacid AND id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $id)); if (empty($item)) { message('打印机不存在或已删除', $this->createWebUrl('manage', array('op' => 'print_list')), 'success'); } if (!empty($item['print_no']) && !empty($item['key'])) { include 'wprint.class.php'; $wprint = new wprint(); $status = $wprint->QueryPrinterStatus($item['print_no'], $item['key']); if (is_error($status)) { $status = '查询打印机状态失败。请刷新页面重试'; } } $condition = ' WHERE a.uniacid = :aid AND a.sid = :sid AND a.pid = :pid'; $params[':aid'] = $_W['uniacid']; $params[':sid'] = $sid; $params[':pid'] = $id; if (!empty($_GPC['oid'])) { $oid = trim($_GPC['oid']); $condition .= ' AND a.oid = :oid'; $params[':oid'] = $oid; } $pindex = max(1, intval($_GPC['page'])); $psize = 20; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('str_order_print') . ' AS a ' . $condition, $params); $data = pdo_fetchall('SELECT a.*,b.username,b.mobile FROM ' . tablename('str_order_print') . ' AS a LEFT JOIN' . tablename('str_order') . ' AS b ON a.oid = b.id' . $condition . ' ORDER BY addtime DESC LIMIT ' . ($pindex - 1) * $psize . ',' . $psize, $params); $pager = pagination($total, $pindex, $psize); include $this->template('print'); } elseif ($op == 'ajaxprint') { $id = intval($_GPC['id']); $order = pdo_fetch('SELECT * FROM ' . tablename('str_order') . ' WHERE uniacid = :aid AND sid = :sid AND id = :id', array(':aid' => $_W['uniacid'], ':sid' => $sid, ':id' => $id)); if (empty($order)) { exit('订单不存在或已经删除'); } $order['dish'] = iunserializer($order['dish']); $pay_types = array('alipay' => '支付宝支付', 'wechat' => '微信支付', 'credit' => '余额支付', 'delivery' => '餐到付款'); $order['pay_type'] = !empty($pay_types[$order['pay_type']]) ? $pay_types[$order['pay_type']] : '其他支付方式'; //获取该门店的所有打印机 $prints = pdo_fetchall('SELECT * FROM ' . tablename('str_print') . ' WHERE uniacid = :aid AND sid = :sid AND status = 1', array(':aid' => $_W['uniacid'], ':sid' => $sid)); if (empty($prints)) { exit('没有有效的打印机'); } $store = pdo_fetch('SELECT title FROM ' . tablename('str_store') . ' WHERE uniacid = :aid AND id = :sid', array(':aid' => $_W['uniacid'], ':sid' => $sid)); $orderinfo = ''; $orderinfo .= "<CB>{$store['title']}</CB>\n"; $orderinfo .= '名称 单价 数量 金额\\n'; $orderinfo .= '--------------------------------\\n'; if (!empty($order['dish'])) { foreach ($order['dish'] as $di) { $dan = $di['price'] / $di['num']; $orderinfo .= str_pad(cutstr($di['title'], 7), '21', ' ', STR_PAD_RIGHT); $orderinfo .= ' ' . str_pad($dan, '6', ' ', STR_PAD_RIGHT); $orderinfo .= 'X ' . str_pad($di['num'], '3', ' ', STR_PAD_RIGHT); $orderinfo .= ' ' . str_pad($di['price'], '5', ' ', STR_PAD_RIGHT); $orderinfo .= '\\n'; } } if (!empty($order['note'])) { $orderinfo .= '备注:' . $order['note'] . '\\n'; } $orderinfo .= '--------------------------------\\n'; $orderinfo .= "合计:{$order['price']}元\n"; $orderinfo .= "下单人:{$order['username']}\n"; $orderinfo .= "送餐地址:{$order['address']}\n"; $orderinfo .= "联系电话:{$order['mobile']}\n"; $orderinfo .= "支付方式:{$order['pay_type']}\n"; if (!empty($order['delivery_time'])) { $orderinfo .= "送餐时间:{$order['delivery_time']}"; } include 'wprint.class.php'; foreach ($prints as $li) { if (!empty($li['qrcode_link'])) { $orderinfo .= "<QR>{$li['qrcode_link']}</QR>\n"; } if (!empty($li['print_no']) && !empty($li['key'])) { $wprint = new wprint(); $status = $wprint->StrPrint($li['print_no'], $li['key'], $orderinfo, 1); if (!is_error($status)) { $i++; $data = array('uniacid' => $_W['uniacid'], 'sid' => $sid, 'pid' => $li['id'], 'oid' => $id, 'status' => 1, 'foid' => $status, 'addtime' => TIMESTAMP); pdo_insert('str_order_print', $data); } } } if ($i > 0) { pdo_query('UPDATE ' . tablename('str_order') . " SET print_nums = print_nums + {$i} WHERE uniacid = {$_W['uniacid']} AND id = {$id}"); } else { exit('发送打印指令失败。没有有效的机器号'); } exit('success'); } //账号管理员 if ($op == 'ctrl') { $accounts = uni_accounts(); foreach ($accounts as $k => $li) { if ($li['level'] < 3) { unset($li[$k]); } } $config = pdo_fetch('SELECT notice_acid, groupid FROM ' . tablename('str_store') . ' WHERE uniacid = :uniacid AND id = :sid', array(':uniacid' => $_W['uniacid'], ':sid' => $sid)); if (!empty($config['notice_acid'])) { $groups = pdo_fetch('SELECT * FROM ' . tablename('mc_fans_groups') . ' WHERE uniacid = :uniacid AND acid = :acid', array(':uniacid' => $_W['uniacid'], ':acid' => $config['notice_acid'])); !empty($groups) && ($groups = iunserializer($groups['groups'])); } if (checksubmit('submit')) { $acid = intval($_GPC['acid']); $groupid = intval($_GPC['groupid']); pdo_update('str_store', array('notice_acid' => $acid, 'groupid' => $groupid), array('uniacid' => $_W['uniacid'], 'id' => $sid)); message('设置微信管理员成功', referer(), 'success'); } include $this->template('ctrl'); } if ($op == 'fangroup') { $acid = intval($_GPC['acid']); $data = pdo_fetch('SELECT * FROM ' . tablename('mc_fans_groups') . ' WHERE uniacid = :uniacid AND acid = :acid', array(':uniacid' => $_W['uniacid'], ':acid' => $acid)); $out['errcode'] = 0; $out['errmsg'] = ''; if (empty($data)) { $out['errcode'] = 1; $out['errmsg'] = '请先更新粉丝分组'; exit(json_encode($out)); } $data = iunserializer($data['groups']); $out['errmsg'] = $data; exit(json_encode($out)); } }