RejectController.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. $rejectBillNew->order_number=$data['order_number']??'';
  47. $rejectBillNew->sender=$data['sender']??'';
  48. $rejectBillNew->mobile_sender=$data['mobile_sender']??'';
  49. $rejectBillNew->remark=$data['remark']??'';
  50. $rejectBillNew->id_operator=3754;
  51. $rejectBillNew->id_logistic_return=$id_logistic_return;
  52. $rejectBillNew->save();
  53. $this->saveRejectBillItem($data,$rejectBillNew);
  54. SyncOrderRejectingStatusJob::dispatch($rejectBillNew);
  55. }else{
  56. RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
  57. $this->saveRejectBillItem($data,$rejectBill);
  58. SyncOrderRejectingStatusJob::dispatch($rejectBill);
  59. }
  60. $response["message"] = "退件信息保存成功";
  61. $response["code"] = 200;
  62. return response()->json($response);
  63. }
  64. /**
  65. * @api {post} /reject/delete 删除退货登记
  66. * @apiName delete
  67. * @apiGroup reject
  68. *
  69. *
  70. * @apiSuccess {string} message 响应描述
  71. * @apiSuccess {int} status_code HTTP响应码
  72. * @apiSuccess {bool} data 结果
  73. *
  74. * @apiSuccessExample {json} Success-Response:
  75. * HTTP/1.1 200 OK
  76. * {
  77. * "message": "请求成功",
  78. * "status_code": "200"
  79. * "data":true
  80. * }
  81. *
  82. */
  83. public function rejectDelete(Request $request){
  84. $logistic_number_return=$request->input('logistic_number_return');
  85. if (!$logistic_number_return){
  86. $response["message"] = "请求失败,未携带退回单号";
  87. $response["code"] = 410;
  88. return response()->json($response);
  89. }
  90. $rejectBill=RejectedBill::query()->where("logistic_number_return",$logistic_number_return)->first();
  91. if ($rejectBill){
  92. RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
  93. $rejectBill->delete();
  94. }
  95. $response["message"] = "退件信息删除成功";
  96. $response["code"] = 200;
  97. return response()->json($response);
  98. }
  99. /**
  100. * @api {post} /rejectBillItem/delete 删除退货登记
  101. * @apiName rejectBillItemDelete
  102. * @apiGroup reject
  103. *
  104. *
  105. * @apiSuccess {string} message 响应描述
  106. * @apiSuccess {int} status_code HTTP响应码
  107. * @apiSuccess {bool} data 结果
  108. *
  109. * @apiSuccessExample {json} Success-Response:
  110. * HTTP/1.1 200 OK
  111. * {
  112. * "message": "请求成功",
  113. * "status_code": "200"
  114. * "data":true
  115. * }
  116. *
  117. */
  118. public function rejectBillItemDelete(Request $request){
  119. $data=$request->all();
  120. if (!$data['logistic_number_return']){
  121. $response["message"] = "请求失败,未携带退回单号";
  122. $response["code"] = 410;
  123. return response()->json($response);
  124. }
  125. $rejectBill_id=RejectedBill::query()->where("logistic_number_return",$data['logistic_number_return'])->first()['id'];
  126. RejectedBillItem::query()->where('id_rejected_bill',$rejectBill_id)
  127. ->where('barcode_goods',$data['barcode_goods'])->delete();
  128. $response["message"] = "退件明细信息删除成功";
  129. $response["code"] = 200;
  130. return response()->json($response);
  131. }
  132. private function saveRejectBillItem($data,$rejectBill){
  133. foreach ($data['rejectItems'] as $item){
  134. $id_quality_label=QualityLabel::query()->where('name',$item['quality'])->first()['id'];
  135. $rejectBillItemNew = new RejectedBillItem();
  136. $rejectBillItemNew->id_rejected_bill=$rejectBill->id;
  137. $rejectBillItemNew->barcode_goods=$item['barcode_goods']??'';
  138. $rejectBillItemNew->name_goods=$item['name_goods']??'';
  139. $rejectBillItemNew->amount=$item['amount']??'';
  140. $rejectBillItemNew->remark=$item['remark']??'';
  141. $rejectBillItemNew->id_quality_label=$id_quality_label;
  142. $rejectBillItemNew->save();
  143. }
  144. }
  145. }