OrderIssueService.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Services;
  3. use App\Authority;
  4. use App\Logistic;
  5. use App\OracleDOCOrderHeader;
  6. use App\OrderIssue;
  7. use App\Owner;
  8. use App\Shop;
  9. use App\Sign;
  10. use App\Order;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\Auth;
  13. use Illuminate\Support\Facades\DB;
  14. class OrderIssueService
  15. {
  16. public function __construct()
  17. {
  18. app()->bind("OrderService", OrderService::class);
  19. }
  20. public function orderIssueTag(Request $request)
  21. {
  22. $orderNos = $request->input('orderNos');
  23. $meg = ['success' => false];
  24. if ($this->verifyOrderIssue($request)) {
  25. $meg['fail_info'] = '传入订单编号中对应的订单问题已有生成';
  26. return $meg;
  27. }
  28. foreach ($orderNos as $orderNo) {
  29. $this->createOrFind($orderNo);
  30. }
  31. $meg['success'] = '选中订单已标记为问题订单';
  32. return $meg;
  33. }
  34. public function verifyOrderIssue(Request $request)
  35. {
  36. $orderIds = $request->input('orderNos');
  37. $orders = Order::whereIn('code', $orderIds)->get();
  38. if (count($orders) == 0) {
  39. return false;
  40. }
  41. foreach ($orders as $order) {
  42. $order_ids[] = $order->id;
  43. }
  44. $count = OrderIssue::whereIn('order_id', $order_ids)->count();
  45. return $count != 0;
  46. }
  47. public function createOrFind($ordeNo)
  48. {
  49. $orderService = app('OrderService');
  50. $order = $orderService->createOrFindByOrderHead($ordeNo);
  51. $arr = [
  52. 'order_id' => $order->value('id'),
  53. ];
  54. return OrderIssue::create($arr);
  55. }
  56. }