where($totalWhere)->count(); //待支付 $waitPayWhere = $totalWhere; $waitPayWhere[] = ['status', '=', 0]; $waitPayCount = $order->where($waitPayWhere)->count(); //待发货 $waitSendWhere = $totalWhere; $waitSendWhere[] = ['status', '=', 1]; $waitSendCount = $order->where($waitSendWhere)->count(); //待收货 $waitAcceptWhere = $totalWhere; $waitAcceptWhere[] = ['status', '=', 2]; $waitAcceptCount = $order->where($waitAcceptWhere)->count(); //已完成 $okWhere = $totalWhere; $okWhere[] = ['status', '=', 3]; $okCount = $order->where($okWhere)->count(); //已取消 $closeWhere = $totalWhere; $closeWhere[] = ['status', '=', -1]; $closeCount = $order->where($closeWhere)->count(); return app('json')->success([ 'orderCount' => $orderCount, 'waitPayCount' => $waitPayCount, 'waitSendCount' => $waitSendCount, 'waitAcceptCount' => $waitAcceptCount, 'okCount' => $okCount, 'closeCount' => $closeCount, ]); } /** * 商城订单列表 * @param Request $request */ public function list(Request $request) { $pageSize = 50; $post = UtilService::getMore([ ['page', 1], ['uid', 0], ['mobile', ''], ['order_id', ''], ['status', ''], ['time', []], ], $request); $where = []; if (!empty($post['uid'])) { $where[] = ['o.uid', '=', $post['uid']]; } else if (!empty($post['mobile'])) { $m = Db::name('user')->where('mobile', $post['mobile'])->find(); if (!empty($m)) { $where[] = ['o.uid', '=', $m['uid']]; } } if (!empty($post['order_id'])) { $where[] = ['o.order_id', '=', $post['order_id']]; } if ($post['status'] !== '' && in_array((string)$post['status'], ["0", "1", "2", "3", "-1"])) { $where[] = ['o.status', '=', (int)$post['status']]; } //创建时间 $startTime = ''; $endTime = ''; if (!empty($post['time'][0]) && !empty($post['time'][1])) { $startTime = strtotime($post['time'][0]); $endTime = strtotime($post['time'][1]); $where[] = ['o.time', 'between', "{$startTime},{$endTime}"]; } $order = Db::name('store_order'); $data = $order ->alias('o') ->field('o.*,u.mobile,u.nickname') ->leftJoin('user u', 'u.uid = o.uid') ->where($where) ->page((int)$post['page'], $pageSize) ->order('o.id', 'desc') ->select() ->toArray(); $pageCount = $order->where($where)->count(); $result = UtilService::getParam([ 'id', 'order_id', 'uid', 'mobile', 'nickname', 'real_name', 'phone', 'province', 'city', 'district', 'detail', 'total_price', 'pay_price', 'total_postage', 'pay_postage', 'paid', 'status', ['time', 'time', 'date("Y-m-d H:i:s",$1)'], ['pay_time', 'pay_time', function ($item) { return empty($item) ? "-" : date('Y-m-d H:i:s', $item); }], ['confirm_time', 'confirm_time', function ($item) { return empty($item) ? "-" : date('Y-m-d H:i:s', $item); }], ], $data); return app('json')->success([ 'list' => $result, 'pageCount' => $pageCount, 'pageSize' => $pageSize, 'page' => $post['page'], ]); } /** * 商城订单详情 * @param Request $request */ public function info(Request $request) { $post = UtilService::getMore([ ['id', '', 'empty', '参数错误'], ], $request); $order = Db::name('store_order') ->alias('o') ->field('o.*,u.mobile,u.nickname') ->leftJoin('user u', 'u.uid = o.uid') ->where('o.id', $post['id']) ->find(); if (empty($order)) { return app('json')->fail('订单不存在'); } $data = $order->toArray(); //获取订单商品 $cartInfo = Db::name('store_order_cart_info') ->where('oid', $data['id']) ->select() ->toArray(); $data['cart_info'] = $cartInfo; return app('json')->success($data); } /** * 发货 * @param Request $request */ public function fahuo(Request $request) { $post = UtilService::getMore([ ['id', '', 'empty', '参数错误'], ['express_type', ''], ['express_code', ''], ['express_num', ''], ], $request); $order = Db::name('store_order') ->where('id', $post['id']) ->where('status', 1) ->find(); if (empty($order)) { return app('json')->fail('当前订单不可发货'); } if (empty($post['express_num'])) { return app('json')->fail('请输入物流单号'); } $result = Db::name('store_order')->where('id', $post['id'])->update([ 'status' => 2, 'express_type' => $post['express_type'], 'express_code' => $post['express_code'], 'express_num' => $post['express_num'], 'delivery_time' => time(), ]); if ($result) { return app('json')->success('操作成功'); } else { return app('json')->fail('操作失败'); } } /** * 订单备注 * @param Request $request */ public function mono(Request $request) { $post = UtilService::getMore([ ['id', '', 'empty', '参数错误'], ['remark', '', 'empty', '请输入备注内容'], ], $request); $order = Db::name('store_order')->where('id', $post['id'])->find(); if (empty($order)) { return app('json')->fail('订单不存在'); } $result = Db::name('store_order')->where('id', $post['id'])->update([ 'remark' => $post['remark'], ]); if ($result) { return app('json')->success('操作成功'); } else { return app('json')->fail('操作失败'); } } }