174 lines
4.8 KiB
PHP
174 lines
4.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Requests\TemplateRequest;
|
|
use App\Models\Template;
|
|
use App\Models\WarehouseTemplateBinding;
|
|
use Illuminate\Http\Request;
|
|
|
|
class TemplateController extends Controller
|
|
{
|
|
/**
|
|
* 模板列表
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$query = Template::orderBy('created_at', 'desc');
|
|
|
|
// 筛选条件
|
|
if ($request->filled('platform')) {
|
|
$query->where('platform', $request->platform);
|
|
}
|
|
|
|
if ($request->filled('name')) {
|
|
$query->where('name', 'like', '%' . $request->name . '%');
|
|
}
|
|
|
|
$perPage = $request->input('limit', 10);
|
|
$templates = $query->paginate($perPage);
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => [
|
|
'list' => $templates->items(),
|
|
'total' => $templates->total(),
|
|
'current_page' => $templates->currentPage(),
|
|
'last_page' => $templates->lastPage(),
|
|
],
|
|
'message' => 'success'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 创建模板
|
|
*/
|
|
public function store(TemplateRequest $request)
|
|
{
|
|
try {
|
|
$template = Template::create([
|
|
'name' => $request->name,
|
|
'platform' => $request->platform,
|
|
'size' => $request->size,
|
|
'style' => $request->style,
|
|
'default_express' => $request->default_express,
|
|
'sender_name' => $request->sender_name,
|
|
'sender_phone' => $request->sender_phone,
|
|
'sender_address' => $request->sender_address,
|
|
'show_product' => $request->show_product ?? true,
|
|
'remark' => $request->remark,
|
|
]);
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => $template,
|
|
'message' => '模板创建成功'
|
|
]);
|
|
} catch (\Exception $e) {
|
|
return response()->json([
|
|
'code' => 500,
|
|
'message' => '创建失败: ' . $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 模板详情
|
|
*/
|
|
public function show(string $id)
|
|
{
|
|
$template = Template::find($id);
|
|
|
|
if (!$template) {
|
|
return response()->json([
|
|
'code' => 404,
|
|
'message' => '模板不存在'
|
|
], 404);
|
|
}
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => $template,
|
|
'message' => 'success'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 更新模板
|
|
*/
|
|
public function update(TemplateRequest $request, string $id)
|
|
{
|
|
$template = Template::find($id);
|
|
|
|
if (!$template) {
|
|
return response()->json([
|
|
'code' => 404,
|
|
'message' => '模板不存在'
|
|
], 404);
|
|
}
|
|
|
|
try {
|
|
$template->update([
|
|
'name' => $request->name,
|
|
'platform' => $request->platform,
|
|
'size' => $request->size,
|
|
'style' => $request->style,
|
|
'default_express' => $request->default_express,
|
|
'sender_name' => $request->sender_name,
|
|
'sender_phone' => $request->sender_phone,
|
|
'sender_address' => $request->sender_address,
|
|
'show_product' => $request->show_product ?? $template->show_product,
|
|
'remark' => $request->remark,
|
|
]);
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'data' => $template,
|
|
'message' => '模板更新成功'
|
|
]);
|
|
} catch (\Exception $e) {
|
|
return response()->json([
|
|
'code' => 500,
|
|
'message' => '更新失败: ' . $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除模板
|
|
*/
|
|
public function destroy(string $id)
|
|
{
|
|
$template = Template::find($id);
|
|
|
|
if (!$template) {
|
|
return response()->json([
|
|
'code' => 404,
|
|
'message' => '模板不存在'
|
|
], 404);
|
|
}
|
|
|
|
// 检查模板是否被仓库绑定
|
|
$bindingCount = WarehouseTemplateBinding::where('template_id', $id)->count();
|
|
if ($bindingCount > 0) {
|
|
return response()->json([
|
|
'code' => 400,
|
|
'message' => '模板已被仓库绑定,无法删除'
|
|
], 400);
|
|
}
|
|
|
|
try {
|
|
$template->delete();
|
|
|
|
return response()->json([
|
|
'code' => 200,
|
|
'message' => '模板删除成功'
|
|
]);
|
|
} catch (\Exception $e) {
|
|
return response()->json([
|
|
'code' => 500,
|
|
'message' => '删除失败: ' . $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
} |