Kaynağa Gözat

接收Java退货登记信息

eric2h 4 yıl önce
ebeveyn
işleme
ff3c9aa40b
2 değiştirilmiş dosya ile 122 ekleme ve 0 silme
  1. 118 0
      app/Http/ApiControllers/RejectController.php
  2. 4 0
      routes/api.php

+ 118 - 0
app/Http/ApiControllers/RejectController.php

@@ -0,0 +1,118 @@
+<?php
+
+
+namespace App\Http\ApiControllers;
+
+
+use App\Jobs\SyncOrderRejectingStatusJob;
+use App\Logistic;
+use App\QualityLabel;
+use App\RejectedBill;
+use App\RejectedBillItem;
+use Illuminate\Http\Request;
+
+
+class RejectController
+{
+    /**
+     * @api {post} /reject/save 录入退货登记
+     * @apiName save
+     * @apiGroup reject
+     *
+     *
+     * @apiSuccess {string} message 响应描述
+     * @apiSuccess {int} status_code HTTP响应码
+     * @apiSuccess {bool} data 结果
+     *
+     * @apiSuccessExample {json} Success-Response:
+     *     HTTP/1.1 200 OK
+     *     {
+     *       "message": "请求成功",
+     *       "status_code": "200"
+     *       "data":true
+     *     }
+     *
+     */
+    public function rejectSave(Request $request)
+    {
+        $logistic_number_return=$request->input('logistic_number_return');
+        $logistics_name=$request->input('logistics_name');
+        if (!$logistic_number_return||!$logistics_name){
+            $response["message"] = "请求失败,未携带退回单号或未指定快递公司";
+            $response["code"] = 410;
+            return response()->json($response);
+        }
+        $id_logistic_return=Logistic::query()->where("belong_company",$logistics_name)->first()['id'];
+        $data=$request->all();
+        $rejectBill=RejectedBill::query()->where("logistic_number_return",$logistic_number_return)->first();
+        if (!$rejectBill){
+            $rejectBillNew=new RejectedBill();
+            $rejectBillNew->logistic_number_return=$data['logistic_number_return'];
+            $rejectBillNew->id_owner=$data['id_owner'];
+            $rejectBillNew->order_number=$data['order_number'];
+            $rejectBillNew->sender=$data['sender'];
+            $rejectBillNew->mobile_sender=$data['mobile_sender'];
+            $rejectBillNew->remark=$data['remark'];
+            $rejectBillNew->id_operator=3754;
+            $rejectBillNew->id_logistic_return=$id_logistic_return;
+            $rejectBillNew->save();
+            $this->saveRejectBillItem($data,$rejectBillNew);
+            SyncOrderRejectingStatusJob::dispatch($rejectBillNew);
+        }else{
+            RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
+            $this->saveRejectBillItem($data,$rejectBill);
+            SyncOrderRejectingStatusJob::dispatch($rejectBill);
+        }
+        $response["message"] = "退件信息保存成功";
+        $response["code"] = 200;
+        return response()->json($response);
+    }
+
+    /**
+     * @api {post} /reject/delete 删除退货登记
+     * @apiName save
+     * @apiGroup reject
+     *
+     *
+     * @apiSuccess {string} message 响应描述
+     * @apiSuccess {int} status_code HTTP响应码
+     * @apiSuccess {bool} data 结果
+     *
+     * @apiSuccessExample {json} Success-Response:
+     *     HTTP/1.1 200 OK
+     *     {
+     *       "message": "请求成功",
+     *       "status_code": "200"
+     *       "data":true
+     *     }
+     *
+     */
+    public function rejectDelete(Request $request){
+        $logistic_number_return=$request->input('logistic_number_return');
+        if (!$logistic_number_return){
+            $response["message"] = "请求失败,未携带退回单号";
+            $response["code"] = 410;
+            return response()->json($response);
+        }
+        $rejectBill=RejectedBill::query()->where("logistic_number_return",$logistic_number_return)->first();
+        RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
+        $rejectBill->delete();
+        $response["message"] = "退件信息删除成功";
+        $response["code"] = 200;
+        return response()->json($response);
+    }
+
+    private function saveRejectBillItem($data,$rejectBill){
+        foreach ($data['rejectItems'] as $item){
+            $id_quality_label=QualityLabel::query()->where('name',$item['quality'])->first()['id'];
+            $rejectBillItemNew = new RejectedBillItem();
+            $rejectBillItemNew->id_rejected_bill=$rejectBill->id;
+            $rejectBillItemNew->barcode_goods=$item['barcode_goods'];
+            $rejectBillItemNew->name_goods=$item['name_goods'];
+            $rejectBillItemNew->amount=$item['amount'];
+            $rejectBillItemNew->remark=$item['remark'];
+            $rejectBillItemNew->id_quality_label=$id_quality_label;
+            $rejectBillItemNew->save();
+        }
+    }
+}

+ 4 - 0
routes/api.php

@@ -44,4 +44,8 @@ Route::prefix("v1")->group(function (){
             });
         });
 });
+Route::prefix("reject")->group(function () {
+    Route::POST('save', 'RejectController@rejectSave');
+    Route::GET('delete', 'RejectController@rejectDelete');
+});