PrintPartController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Order;
  5. use App\PrintPart;
  6. use App\PrintTemplate;
  7. use App\Services\PrintPartService;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Http;
  10. class PrintPartController extends Controller
  11. {
  12. use AsyncResponse;
  13. public function index(Request $request)
  14. {
  15. $printParts = PrintPart::query()->paginate($request['paginate'] ?? 50);
  16. $imgPrintPart = app(PrintPartService::class)->getImagePart();
  17. return view('/maintenance/expressPrinting/part/index', compact('printParts','imgPrintPart'));
  18. }
  19. public function create(Request $request)
  20. {
  21. $imgPrintPart = app(PrintPartService::class)->getImagePart();
  22. return view('/maintenance/expressPrinting/part/create',compact('imgPrintPart'));
  23. }
  24. public function storeApi(Request $request): \Illuminate\Http\RedirectResponse
  25. {
  26. PrintPart::query()->create($request->all());
  27. $this->success('添加成功');
  28. }
  29. public function destroyApi(Request $request)
  30. {
  31. $printPart = PrintPart::query()->find($request['id']);
  32. $printPart->delete();
  33. $this->success('删除成功');
  34. }
  35. public function print(Request $request)
  36. {
  37. $template = PrintTemplate::query()->where('name', 'test-快递单号打印')->first();
  38. $items = Order::query()->whereIn('code', ["SO190628000378", "SO190628000347"])->with('packages')->get();
  39. return view("maintenance.expressPrinting.print.index", compact("template", 'items'));
  40. }
  41. public function getImagesPartApi(PrintPartService $service)
  42. {
  43. return ['success' => true, 'data' => $service->getImagePart()];
  44. }
  45. public function pushImagesPartApi(Request $request,PrintPartService $service)
  46. {
  47. if (is_null($request['name'])) return ['success' => false, 'message' => "文件名未命名"];
  48. if (!$request->hasFile('file')) return ['success' => false, 'message' => '未找到上传文件'];
  49. if (!$request->has('name')) return ['success' => false, 'message' => "文件名未命名"];
  50. return $service->pushImagePart($request->file('file'),$request['name']);
  51. }
  52. public function printTemplateApi(Request $request)
  53. {
  54. $file = $request->file("blob");
  55. $content = $file->getContent();
  56. $content = base64_encode($content);
  57. $files = $request->file("blobs");
  58. $content = [
  59. "type" => "print",
  60. "aliasName" => "admin",
  61. "printerName" => "admin123",
  62. "content" => $content
  63. ];
  64. if (!$files) return Http::post("http://127.0.0.1:3000", $content);
  65. $contents = [];
  66. foreach ($files as $item) {
  67. $contents[] = base64_encode($item->getContent());
  68. }
  69. return Http::post("http://127.0.0.1:3000", ['file' => $content, 'files' => $contents]);
  70. }
  71. }