WorkOrderImageService.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. namespace App\Services;
  3. use App\Traits\ServiceAppAop;
  4. use App\WorkOrder;
  5. use App\WorkOrderDetail;
  6. use App\WorkOrderImage;
  7. use Illuminate\Http\UploadedFile;
  8. class WorkOrderImageService
  9. {
  10. use ServiceAppAop;
  11. protected $modelClass = WorkOrderImage::class;
  12. /**
  13. * 外包装
  14. * @param WorkOrderDetail $detail
  15. * @param $images
  16. */
  17. public function createWorkOrderPackageImages(WorkOrderDetail $detail, $images)
  18. {
  19. foreach ($images as $image) {
  20. $this->createWorkOrderPackageImage($detail, $image);
  21. }
  22. }
  23. /**
  24. * @param WorkOrderDetail $detail
  25. * @param $image
  26. */
  27. public function createWorkOrderPackageImage(WorkOrderDetail $detail, $image)
  28. {
  29. /** @var UploadedFile $image */
  30. $count = $detail->images()->where('type', 1)->count();
  31. /** @var WorkOrderImage $workOrderImage */
  32. $workOrderImage = $detail->images()->create(['type' => 1, 'number' => ++$count,'work_order_id'=> $detail->work_order_id]);
  33. $workOrderImage->saveFile($image);
  34. }
  35. /**
  36. * 工单商品
  37. * @param WorkOrderDetail $detail
  38. * @param $images
  39. */
  40. public function createWorkOrderCommodityImages(WorkOrderDetail $detail, $images)
  41. {
  42. foreach ($images as $image) {
  43. $this->createWorkOrderCommodityImage($detail, $image);
  44. }
  45. }
  46. /**
  47. * @param WorkOrderDetail $detail
  48. * @param $image
  49. */
  50. public function createWorkOrderCommodityImage(WorkOrderDetail $detail, $image)
  51. {
  52. /** @var UploadedFile $image */
  53. $count = $detail->images()->where('type', 2)->count();
  54. /** @var WorkOrderImage $workOrderImage */
  55. $workOrderImage = $detail->images()->create(['type' => 2, 'number' => ++$count,'work_order_id'=> $detail->work_order_id]);
  56. $workOrderImage->saveFile($image);
  57. }
  58. /**
  59. * 交易截图
  60. * @param WorkOrderDetail $detail
  61. * @param $images
  62. */
  63. public function createWorkOrderDealImages(WorkOrderDetail $detail, $images)
  64. {
  65. foreach ($images as $image) {
  66. $this->createWorkOrderDealImage($detail, $image);
  67. }
  68. }
  69. public function createWorkOrderDealImage(WorkOrderDetail $detail, $image)
  70. {
  71. /** @var UploadedFile $image */
  72. $count = $detail->images()->where('type', 3)->count();
  73. /** @var WorkOrderImage $workOrderImage */
  74. $workOrderImage = $detail->images()->create(['type' => 3, 'number' => ++$count,'work_order_id'=> $detail->work_order_id]);
  75. $workOrderImage->saveFile($image);
  76. }
  77. /**
  78. * 退款截图
  79. * @param WorkOrderDetail $detail
  80. * @param $images
  81. */
  82. public function createWorkOrderRefundImages(WorkOrderDetail $detail, $images)
  83. {
  84. foreach ($images as $image) {
  85. $this->createWorkOrderRefundImage($detail, $image);
  86. }
  87. }
  88. public function createWorkOrderRefundImage(WorkOrderDetail $detail, $image)
  89. {
  90. /** @var UploadedFile $image */
  91. $count = $detail->images()->where('type', 4)->count();
  92. /** @var WorkOrderImage $workOrderImage */
  93. $workOrderImage = $detail->images()->create(['type' => 4, 'number' => ++$count,'work_order_id'=> $detail->work_order_id]);
  94. $workOrderImage->saveFile($image);
  95. }
  96. public function createImages(WorkOrderDetail $detail, $package_images = null, $commodity_images = null, $deal_images = null, $refund_images = null)
  97. {
  98. if ($package_images) $this->createWorkOrderPackageImages($detail, $package_images);
  99. if ($commodity_images) $this->createWorkOrderCommodityImages($detail, $commodity_images);
  100. if ($deal_images) $this->createWorkOrderDealImages($detail, $deal_images);
  101. if ($refund_images) $this->createWorkOrderRefundImages($detail, $refund_images);
  102. }
  103. public function createWorkOrderImages(WorkOrderDetail $detail, $params)
  104. {
  105. $package_images = $params['packageImages'] ?? [];
  106. $commodity_images = $params['commodityImages'] ?? [];
  107. $deal_images = $params['dealImages'] ?? [];
  108. $refund_images = $params['refundImages'] ?? [];
  109. $delete_ids= $params['delete_image_ids'] ?? [];
  110. $this->createImages($detail, $package_images, $commodity_images, $deal_images, $refund_images);
  111. if ($delete_ids) $this->deleteImages($detail,$delete_ids);
  112. }
  113. public function deleteImages($detail,$delete_ids)
  114. {
  115. if (!$delete_ids)return;
  116. WorkOrderImage::query()->where('work_order_detail_id',$detail->id)->whereIn('id',$delete_ids)->delete();
  117. }
  118. /**
  119. * @param WorkOrderDetail $detail
  120. */
  121. public function undoneTag(WorkOrderDetail $detail)
  122. { // 标记为未完成历史标记
  123. $detail->images()->update(['tag' => 2]);
  124. }
  125. /**
  126. * @param WorkOrderDetail $detail
  127. */
  128. public function endDetail(WorkOrderDetail $detail)
  129. { // 标记为完成
  130. $detail->images()->update(['tag' => 1]);
  131. }
  132. }