OrderIssueService.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace App\Services;
  3. use App\OrderIssue;
  4. use App\Services\common\QueryService;
  5. use App\Order;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\DB;
  8. class OrderIssueService
  9. {
  10. public function __construct()
  11. {
  12. app()->bind("OrderService", OrderService::class);
  13. }
  14. private function conditionQuery(Request $request)
  15. {
  16. // 订单日期
  17. // 客户
  18. // 是否完结
  19. // 原始订单
  20. // 最终状态
  21. // 承运商赔偿金额
  22. // 宝时赔偿金额
  23. $query = OrderIssue::with(['order','rejectedBill','orderIssueType','workgroup','secondOrder','orderIssueOnTop']);
  24. /* if($request->input('created_at_start')){
  25. $query->where('created_at','>=',$request->input('created_at_start').' 00:00:00');
  26. }
  27. if($request->input('created_at_end')){
  28. $query->where('created_at','<=',$request->input('created_at_start').' 23:59:59');
  29. }
  30. if($request->input('logistic_indemnity_money')){
  31. $query->where('logistic_indemnity_money',$request->input('logistic_indemnity_money'));
  32. }
  33. if($request->input('baoshi_indemnity_money')){
  34. $query->where('baoshi_indemnity_money'.$request->input('baoshi_indemnity_money'));
  35. }
  36. if($request->input('final_status')){
  37. $query->where('final_status',input('final_status'))
  38. }*/
  39. return $query;
  40. }
  41. public function paginate(Request $request)
  42. {
  43. return $this->conditionQuery($request)->paginate($request->paginate ?? 50);
  44. }
  45. public function get(Request $request)
  46. {
  47. }
  48. public function orderIssueTag(Request $request)
  49. {
  50. $orderNos = $request->input('orderNos');
  51. $meg = ['success' => false];
  52. if ($this->verifyOrderIssue($request)) {
  53. $meg['fail_info'] = '传入订单编号中对应的订单问题已有生成';
  54. return $meg;
  55. }
  56. foreach ($orderNos as $orderNo) {
  57. $this->createOrFind($orderNo);
  58. }
  59. $meg['success'] = '选中订单已标记为问题订单';
  60. return $meg;
  61. }
  62. public function verifyOrderIssue(Request $request)
  63. {
  64. $orderIds = $request->input('orderNos');
  65. $orders = Order::whereIn('code', $orderIds)->get();
  66. if (count($orders) == 0) {
  67. return false;
  68. }
  69. foreach ($orders as $order) {
  70. $order_ids[] = $order->id;
  71. }
  72. $count = OrderIssue::whereIn('order_id', $order_ids)->count();
  73. return $count != 0;
  74. }
  75. public function createOrFind($ordeNo)
  76. {
  77. $orderService = app('OrderService');
  78. $order = $orderService->createOrFindByOrderHead($ordeNo);
  79. $arr = [
  80. 'order_id' => $order->id,
  81. ];
  82. return OrderIssue::create($arr);
  83. }
  84. }