site_id], ]; $res['all'] = model("reserve")->getCount($condition); $condition = [ ['site_id', '=', $this->site_id], ['reserve_state', '=', 'wait_confirm'] ]; $res['wait_confirm'] = model("reserve")->getCount($condition); $condition = [ ['site_id', '=', $this->site_id], ['reserve_state', '=', 'wait_to_store'] ]; $res['wait_to_store'] = model("reserve")->getCount($condition); $condition = [ ['site_id', '=', $this->site_id], ['reserve_state', '=', 'cancelled'] ]; $res['cancelled'] = model("reserve")->getCount($condition); return $this->response($this->success($res)); } /** * 列表 * @return false|string */ public function lists() { $page = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $search_text = input('search_text', ''); $reserve_state = input('reserve_state', 'all'); $start = input('start_time', 0); $end = input('end_time', 0); $store_id = !empty(input('store_id', 0)) ? input('store_id', 0) : $this->store_id; $condition = [ ['noy.site_id', '=', $this->site_id] ]; if ($reserve_state != 'all') { $condition[] = ['noy.reserve_state', '=', $reserve_state]; } if (!empty($search_text)) { $condition[] = ['nm.mobile|nm.nickname', 'like', '%' . $search_text . '%']; } if (!empty($store_id)) { $condition[] = ['noy.store_id', 'in', $store_id]; } if ($start && $end) { $condition[] = ['noy.reserve_time', 'between', [$start, $end]]; } else { if ($start && !$end) { $condition[] = ['noy.reserve_time', '>=', $start]; } else { if (!$start && $end) { $condition[] = ['noy.reserve_time', '<=', $end]; } } } $field = 'noy.store_id, noy.member_id, noy.remark, noy.reserve_id, noy.reserve_name, noy.reserve_state_name, noy.reserve_state, noy.reserve_time, noy.reserve_item, noy.create_time, noy.source, nm.headimg, nm.nickname, nm.mobile, os.store_name, noy.name, noy.phone, noy.people_num'; $reserve_model = new ReserveModel(); $result = $reserve_model->getReservePageList($condition, $page, $page_size, 'noy.create_time desc', $field); if (!empty($result['data']['list'])) { foreach ($result['data']['list'] as $k => $item) { $result['data']['list'][$k]['item'] = $reserve_model->getReserveItemList([ [ 'oyi.reserve_id', '=', $item['reserve_id'] ] ], 'g.goods_name,g.goods_id,g.sku_id,ys.username,oyi.reserve_user_id', 'reserve_item_id desc', 'oyi', [['goods g', 'g.sku_id = oyi.reserve_goods_sku_id', 'right'], ['user ys', 'oyi.reserve_user_id = ys.uid', 'left'] ])['data']; } } return $this->response($result); } /** * 确认预约 * @return array|false|string */ public function confirm() { $reserve_id = input('reserve_id', 0); $reserve_model = new ReserveModel(); return $this->response($reserve_model->confirmReserve($reserve_id, $this->site_id)); } /** * 取消预约 * @return array|false|string */ public function cancel() { $reserve_id = input('reserve_id', 0); $reserve_model = new ReserveModel(); return $this->response($reserve_model->cancelReserve($reserve_id, $this->site_id)); } /** * 删除预约 * @return array|false|string */ public function deleteReserve() { $reserve_id = input('reserve_id', 0); $reserve_model = new ReserveModel(); return $this->response($reserve_model->deleteReserve($reserve_id, $this->site_id)); } /** * 确认到店 * @return array|false|string */ public function confirmToStore() { $reserve_id = input('reserve_id', 0); $reserve_model = new ReserveModel(); return $this->response($reserve_model->confirmToStore($reserve_id, $this->site_id)); } /** * 确认完成 * @return array|false|string */ public function complete() { $reserve_id = input('reserve_id', 0); $reserve_model = new ReserveModel(); return $this->response($reserve_model->confirmComplete($reserve_id, $this->site_id)); } /** * 预约详情 * @return mixed|void */ public function detail() { $reserve_id = input('reserve_id', 0); $model = new ReserveModel(); $info = $model->getReserveInfo([ ['reserve_id', '=', $reserve_id], ['oy.site_id', '=', $this->site_id] ], 'oy.*, nm.headimg, nm.nickname, nm.mobile,os.store_name', 'oy', [ ['member nm', 'oy.member_id = nm.member_id', 'left'], ['store os', 'oy.store_id = os.store_id', 'left'] ])['data']; if (empty($info)) { $this->error('未获取到预约信息'); return; } $info['item'] = $model->getReserveItemList([ [ 'oyi.reserve_id', '=', $reserve_id ] ], 'g.goods_name,sku.service_length,g.goods_id,g.sku_id,g.price,ys.username,oyi.reserve_user_id', 'reserve_item_id desc', 'oyi', [ ['goods g', 'g.sku_id = oyi.reserve_goods_sku_id', 'right'], ['goods_sku sku', 'sku.sku_id = oyi.reserve_goods_sku_id', 'right'], ['user ys', 'oyi.reserve_user_id = ys.uid', 'left'] ])['data']; return $this->response($this->success($info)); } }