126 lines
3.0 KiB
PHP
126 lines
3.0 KiB
PHP
<?php
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\ErpSku;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ErpSkuController extends Controller
|
|
{
|
|
/**
|
|
* 商品列表
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$query = ErpSku::query();
|
|
|
|
if ($request->filled('keyword')) {
|
|
$query->where(function ($q) use ($request) {
|
|
$q->where('sku_code', 'like', "%{$request->keyword}%")
|
|
->orWhere('name', 'like', "%{$request->keyword}%")
|
|
->orWhere('platform_sku', 'like', "%{$request->keyword}%");
|
|
});
|
|
}
|
|
|
|
$perPage = $request->input('limit', 15);
|
|
$skus = $query->paginate($perPage);
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => [
|
|
'list' => $skus->items(),
|
|
'total' => $skus->total(),
|
|
'current_page' => $skus->currentPage(),
|
|
'last_page' => $skus->lastPage(),
|
|
],
|
|
'message' => 'success'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 创建商品
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'sku_code' => 'required|unique:erp_skus',
|
|
'name' => 'required',
|
|
'platform_sku' => 'nullable',
|
|
'alias' => 'nullable',
|
|
'price' => 'nullable|numeric',
|
|
'stock' => 'nullable|integer',
|
|
]);
|
|
|
|
$sku = ErpSku::create($request->all());
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => $sku,
|
|
'message' => '创建成功'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 商品详情
|
|
*/
|
|
public function show($id)
|
|
{
|
|
$sku = ErpSku::findOrFail($id);
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => $sku,
|
|
'message' => 'success'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 更新商品
|
|
*/
|
|
public function update(Request $request, $id)
|
|
{
|
|
$sku = ErpSku::findOrFail($id);
|
|
|
|
$request->validate([
|
|
'sku_code' => 'sometimes|required|unique:erp_skus,sku_code,' . $id,
|
|
'name' => 'sometimes|required',
|
|
'platform_sku' => 'nullable',
|
|
'alias' => 'nullable',
|
|
'price' => 'nullable|numeric',
|
|
'stock' => 'nullable|integer',
|
|
]);
|
|
|
|
$sku->update($request->all());
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => $sku,
|
|
'message' => '更新成功'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 删除商品
|
|
*/
|
|
public function destroy($id)
|
|
{
|
|
$sku = ErpSku::findOrFail($id);
|
|
$sku->delete();
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'message' => '删除成功'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 获取所有商品(用于下拉选择)
|
|
*/
|
|
public function all()
|
|
{
|
|
$skus = ErpSku::select('id', 'sku_code', 'name', 'price')->get();
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => $skus,
|
|
'message' => 'success'
|
|
]);
|
|
}
|
|
} |