RejectController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. namespace App\Http\ApiControllers;
  3. use App\Jobs\SyncOrderRejectingStatusJob;
  4. use App\Logistic;
  5. use App\QualityLabel;
  6. use App\RejectedBill;
  7. use App\RejectedBillItem;
  8. use Illuminate\Http\Request;
  9. class RejectController
  10. {
  11. /**
  12. * @api {post} /reject/save 录入退货登记
  13. * @apiName save
  14. * @apiGroup reject
  15. *
  16. *
  17. * @apiSuccess {string} message 响应描述
  18. * @apiSuccess {int} status_code HTTP响应码
  19. * @apiSuccess {bool} data 结果
  20. *
  21. * @apiSuccessExample {json} Success-Response:
  22. * HTTP/1.1 200 OK
  23. * {
  24. * "message": "请求成功",
  25. * "status_code": "200"
  26. * "data":true
  27. * }
  28. *
  29. */
  30. public function rejectSave(Request $request)
  31. {
  32. $logistic_number_return=$request->input('logistic_number_return');
  33. $logistics_name=$request->input('logistics_name');
  34. if (!$logistic_number_return||!$logistics_name){
  35. $response["message"] = "请求失败,未携带退回单号或未指定快递公司";
  36. $response["code"] = 410;
  37. return response()->json($response);
  38. }
  39. $id_logistic_return=Logistic::query()->where("belong_company",$logistics_name)->first()['id'];
  40. $data=$request->all();
  41. $rejectBill=RejectedBill::query()->where("logistic_number_return",$logistic_number_return)->first();
  42. if (!$rejectBill){
  43. $rejectBillNew=new RejectedBill();
  44. $rejectBillNew->logistic_number_return=$data['logistic_number_return']??'';
  45. $rejectBillNew->id_owner=$data['id_owner']??'';
  46. <<<<<<< HEAD
  47. $rejectBillNew->order_number=$data['order_number']??'';
  48. =======
  49. $rejectBillNew->order_number=$data['order_number']??'';//上游单号
  50. >>>>>>> b0347ca84d8eeedd9c1ac88b1c55b77c6a0613e8
  51. $rejectBillNew->sender=$data['sender']??'';
  52. $rejectBillNew->mobile_sender=$data['mobile_sender']??'';
  53. $rejectBillNew->remark=$data['remark']??'';
  54. $rejectBillNew->id_operator=3754;
  55. $rejectBillNew->id_logistic_return=$id_logistic_return;
  56. <<<<<<< HEAD
  57. =======
  58. $rejectBillNew->logistic_number=$data['logistic_number']??'';//原快递单号
  59. >>>>>>> b0347ca84d8eeedd9c1ac88b1c55b77c6a0613e8
  60. $rejectBillNew->save();
  61. $this->saveRejectBillItem($data,$rejectBillNew);
  62. SyncOrderRejectingStatusJob::dispatch($rejectBillNew);
  63. }else{
  64. RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
  65. $this->saveRejectBillItem($data,$rejectBill);
  66. SyncOrderRejectingStatusJob::dispatch($rejectBill);
  67. }
  68. $response["message"] = "退件信息保存成功";
  69. $response["code"] = 200;
  70. return response()->json($response);
  71. }
  72. /**
  73. * @api {post} /reject/delete 删除退货登记
  74. * @apiName delete
  75. * @apiGroup reject
  76. *
  77. *
  78. * @apiSuccess {string} message 响应描述
  79. * @apiSuccess {int} status_code HTTP响应码
  80. * @apiSuccess {bool} data 结果
  81. *
  82. * @apiSuccessExample {json} Success-Response:
  83. * HTTP/1.1 200 OK
  84. * {
  85. * "message": "请求成功",
  86. * "status_code": "200"
  87. * "data":true
  88. * }
  89. *
  90. */
  91. public function rejectDelete(Request $request){
  92. $logistic_number_return=$request->input('logistic_number_return');
  93. if (!$logistic_number_return){
  94. $response["message"] = "请求失败,未携带退回单号";
  95. $response["code"] = 410;
  96. return response()->json($response);
  97. }
  98. $rejectBill=RejectedBill::query()->where("logistic_number_return",$logistic_number_return)->first();
  99. if ($rejectBill){
  100. RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
  101. $rejectBill->delete();
  102. }
  103. $response["message"] = "退件信息删除成功";
  104. $response["code"] = 200;
  105. return response()->json($response);
  106. }
  107. /**
  108. * @api {post} /rejectBillItem/delete 删除退货登记
  109. * @apiName rejectBillItemDelete
  110. * @apiGroup reject
  111. *
  112. *
  113. * @apiSuccess {string} message 响应描述
  114. * @apiSuccess {int} status_code HTTP响应码
  115. * @apiSuccess {bool} data 结果
  116. *
  117. * @apiSuccessExample {json} Success-Response:
  118. * HTTP/1.1 200 OK
  119. * {
  120. * "message": "请求成功",
  121. * "status_code": "200"
  122. * "data":true
  123. * }
  124. *
  125. */
  126. public function rejectBillItemDelete(Request $request){
  127. $data=$request->all();
  128. if (!$data['logistic_number_return']){
  129. $response["message"] = "请求失败,未携带退回单号";
  130. $response["code"] = 410;
  131. return response()->json($response);
  132. }
  133. $rejectBill_id=RejectedBill::query()->where("logistic_number_return",$data['logistic_number_return'])->first()['id'];
  134. RejectedBillItem::query()->where('id_rejected_bill',$rejectBill_id)
  135. ->where('barcode_goods',$data['barcode_goods'])->delete();
  136. $response["message"] = "退件明细信息删除成功";
  137. $response["code"] = 200;
  138. return response()->json($response);
  139. }
  140. private function saveRejectBillItem($data,$rejectBill){
  141. foreach ($data['rejectItems'] as $item){
  142. $id_quality_label=QualityLabel::query()->where('name',$item['quality'])->first()['id'];
  143. $rejectBillItemNew = new RejectedBillItem();
  144. $rejectBillItemNew->id_rejected_bill=$rejectBill->id;
  145. $rejectBillItemNew->barcode_goods=$item['barcode_goods']??'';
  146. $rejectBillItemNew->name_goods=$item['name_goods']??'';
  147. $rejectBillItemNew->amount=$item['amount']??'';
  148. $rejectBillItemNew->remark=$item['remark']??'';
  149. $rejectBillItemNew->id_quality_label=$id_quality_label;
  150. $rejectBillItemNew->save();
  151. }
  152. }
  153. }