order-food-admin/app/Admin/Controllers/ApiController.php

139 lines
4.3 KiB
PHP

<?php
namespace App\Admin\Controllers;
use Carbon\Carbon;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Storage;
use App\Models\{Good,GoodsCategory,GoodsType,TypeAttr,GoodsAttr,Order,Guess,User,QuanTicket};
use App\Http\Resources\OrderInfoResource;
use Dcat\Admin\Http\JsonResponse;
class ApiController extends Controller
{
public function getGoodsCategories(Request $request){
$q = $request->get('q');
$query = GoodsCategory::select('id', 'category_name as text');
if($q){
$query->where('category_name', 'like', "%$q%");
return $query->paginate(null);
}
return response()->json($query->get());
}
public function getGoodsTypes(Request $request){
$q = $request->get('q');
$query = GoodsType::select('id', 'type_name as text')->where('is_use', 1);
if($q){
$query->where('type_name', 'like', "%$q%");
return $query->paginate(null);
}
return response()->json($query->get());
}
public function getTypeAttrs(Request $request){
$q = $request->get('type_id');
$query = TypeAttr::select('id', 'attr_name', 'ext')->where('type_id', $q);
// if($q){
// $query->where('type_name', 'like', "%$q%");
// return $query->paginate(null);
// }
return response()->json($query->get());
}
public function getGoodsAttrs(Request $request){
$q = $request->get('goods_id');
$query = GoodsAttr::select('id', 'attr_value', 'value_price', 'is_use')->where('goods_id', $q);
// if($q){
// $query->where('type_name', 'like', "%$q%");
// return $query->paginate(null);
// }
return response()->json($query->get());
}
public function getGoods(Request $request){
$q = $request->get('q');
$is_sell = intval($request->get('is_sell', 1));
$query = Good::select('id', 'goods_name as text');
if($is_sell){
$query->where('is_sell', 1);
}
if($q){
$query->where('goods_name', 'like', "%$q%");
return $query->paginate(null);
}
return response()->json($query->get());
}
public function getOrder(Request $request){
$order_number = $request->get('order_number');
$start_time = Carbon::now()->startOfDay();
$end_time = Carbon::now()->endOfDay();
// $order = Order::with('goods')->findOrFail(296);
$order = Order::with('goods')
->whereBetween('number_time', [$start_time, $end_time])
->where('order_number', $order_number)->first();
if(!$order){
return JsonResponse::make()->error('未查询到订单');
}
$data = OrderInfoResource::make($order);
$data->offsetSet('is_admin', 1);
// if($q){
// $query->where('goods_name', 'like', "%$q%");
// return $query->paginate(null);
// }
return $data;
}
public function guess(Request $request)
{
$q = $request->get('q');
$data = Guess::where('name', 'like', "%$q%")->paginate(null, ['id', 'name as text']);
return $data ?: [];
}
public function user(Request $request)
{
$q = $request->get('q');
$query = User::select('id', 'nick_name as text');
if($q){
$query->where('phone', 'like', "%$q%");
return $query->paginate(null);
}
return response()->json($query->get());
}
public function ticketValue(Request $request){
$q = $request->get('q');
if($q == 0){//指定所有商品
return [];
}
if($q == 1){//查询上架商品
$query = Good::select('id', 'goods_name as text')->where('is_sell', 1);
}
if($q == 2){
$query = GoodsCategory::select('id', 'category_name as text');
}
return response()->json($query->get());
}
public function quanTicket(Request $request){
$q = $request->get('q');
$query = QuanTicket::select('id', 'quan_name as text')->where('is_use', 1);
if($q){
$query->where('quan_name', 'like', "%$q%");
return $query->paginate(null);
}
return response()->json($query->get());
}
}