erp-backend/app/Http/Controllers/WarehouseTemplateBindingController.php
2026-04-01 17:07:04 +08:00

125 lines
3.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\WarehouseTemplateBindingRequest;
use App\Models\WarehouseTemplateBinding;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class WarehouseTemplateBindingController extends Controller
{
/**
* 获取仓库的绑定列表
*/
public function getWarehouseBindings(string $warehouseId)
{
$bindings = WarehouseTemplateBinding::with(['warehouse', 'template'])
->where('warehouse_id', $warehouseId)
->get();
return response()->json([
'code' => 200,
'data' => $bindings,
'message' => 'success'
]);
}
/**
* 新增绑定
*/
public function store(WarehouseTemplateBindingRequest $request)
{
// 检查是否已存在相同平台绑定
$existingBinding = WarehouseTemplateBinding::where('warehouse_id', $request->warehouse_id)
->where('platform', $request->platform)
->first();
if ($existingBinding) {
return response()->json([
'code' => 400,
'message' => '该仓库已绑定此平台的模板'
], 400);
}
try {
$binding = WarehouseTemplateBinding::create([
'warehouse_id' => $request->warehouse_id,
'platform' => $request->platform,
'template_id' => $request->template_id,
]);
return response()->json([
'code' => 200,
'data' => $binding->load(['warehouse', 'template']),
'message' => '绑定成功'
]);
} catch (\Exception $e) {
return response()->json([
'code' => 500,
'message' => '绑定失败: ' . $e->getMessage()
], 500);
}
}
/**
* 更新绑定(更换模板)
*/
public function update(WarehouseTemplateBindingRequest $request, string $id)
{
$binding = WarehouseTemplateBinding::find($id);
if (!$binding) {
return response()->json([
'code' => 404,
'message' => '绑定记录不存在'
], 404);
}
try {
$binding->update([
'template_id' => $request->template_id,
]);
return response()->json([
'code' => 200,
'data' => $binding->load(['warehouse', 'template']),
'message' => '更新成功'
]);
} catch (\Exception $e) {
return response()->json([
'code' => 500,
'message' => '更新失败: ' . $e->getMessage()
], 500);
}
}
/**
* 删除绑定
*/
public function destroy(string $id)
{
$binding = WarehouseTemplateBinding::find($id);
if (!$binding) {
return response()->json([
'code' => 404,
'message' => '绑定记录不存在'
], 404);
}
try {
$binding->delete();
return response()->json([
'code' => 200,
'message' => '解绑成功'
]);
} catch (\Exception $e) {
return response()->json([
'code' => 500,
'message' => '解绑失败: ' . $e->getMessage()
], 500);
}
}
}