OrderIssueService.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 query(){
  21. }
  22. public function orderIssueTag(Request $request)
  23. {
  24. $orderNos = $request->input('orderNos');
  25. $meg = ['success' => false];
  26. if ($this->verifyOrderIssue($request)) {
  27. $meg['fail_info'] = '传入订单编号中对应的订单问题已有生成';
  28. return $meg;
  29. }
  30. foreach ($orderNos as $orderNo) {
  31. $this->createOrFind($orderNo);
  32. }
  33. $meg['success'] = '选中订单已标记为问题订单';
  34. return $meg;
  35. }
  36. public function verifyOrderIssue(Request $request)
  37. {
  38. $orderIds = $request->input('orderNos');
  39. $orders = Order::whereIn('code', $orderIds)->get();
  40. if (count($orders) == 0) {
  41. return false;
  42. }
  43. foreach ($orders as $order) {
  44. $order_ids[] = $order->id;
  45. }
  46. $count = OrderIssue::whereIn('order_id', $order_ids)->count();
  47. return $count != 0;
  48. }
  49. public function createOrFind($ordeNo)
  50. {
  51. $orderService = app('OrderService');
  52. $order = $orderService->createOrFindByOrderHead($ordeNo);
  53. $arr = [
  54. 'order_id' => $order->value('id'),
  55. ];
  56. return OrderIssue::create($arr);
  57. }
  58. }