Zory 3 hafta önce
ebeveyn
işleme
c33c2017c5

+ 39 - 0
app/controller/merchant/Order.php

@@ -337,4 +337,43 @@ class Order extends Base
         }
     }
 
+    #[PostMapping("express")]
+    public function setExpressData(Request $request): Response
+    {
+        try {
+            $param = $this->_valid([
+                "order.require"         => trans("empty.require"),
+                "express_sn.require"    => trans("empty.require"),
+                "express_name.require"  => trans("empty.require"),
+            ],$request->method());
+            if (!is_array($param)) return error($param);
+            $order = $this->model->where("out_order_no",$param["order"])->findOrEmpty();
+            if ($order->isEmpty()) return error("关联订单错误");
+            $express = (new SaasOrderExpress)->where("order_sn",$order["order_sn"])->findOrEmpty();
+            if (!$express->isEmpty()) return error("该订单已完成发货,请勿重复操作");
+            $usedOrder = (new SaasOrderExpress)->where('express_sn', $param['express_sn'])
+                ->where('order_sn', '<>', $order["order_sn"])  // 排除自己
+                ->where('status', 0)           // 只查未发货的
+                ->findOrEmpty();
+            if (!$usedOrder->isEmpty() && $usedOrder['openid'] != $order['openid']) {
+                return error("该单号已被其他用户使用");
+            }
+            $state = $express->setAutoData([
+                "openid"        => $order["openid"],
+                "order_sn"      => $order["order_sn"],
+                "express_sn"    => $param["express_sn"],
+                "express_name"  => $param["express_name"],
+                "mobile"        => $param["mobile"]??$order['mobile'],
+            ]);
+            if (!$state) return errorTrans("error.data");
+            $order->status = 7;
+            $order->express_status = 2;
+            $order->save();
+            return successTrans("success.data");
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+
+    }
+
 }

+ 1 - 1
app/controller/v2/Complaint.php

@@ -32,7 +32,7 @@ class Complaint extends Base
             if (!empty($param['size'])) {
                 $param['pageSize'] = $param['size'];
             }
-//            $param['openid'] = $request->user['openid'];
+            $param['openid'] = $request->user['openid'];
             $data = $this->service->setModel()->getList($param);
             return successTrans("success.data",pageFormat($data));
         } catch (\Throwable $th) {

+ 50 - 3
app/controller/v2/Order.php

@@ -214,7 +214,7 @@ class Order extends Base
     }
 
     /**
-     * 发货后申请退款
+     * 核销后申请退款
      * Array
      * (
      *  [order] => AL202608215835460704413
@@ -230,8 +230,55 @@ class Order extends Base
     public function setOrderRefund(Request $request): Response
     {
         try {
-            print_r($request->all());
-            return error("error");
+            $param = $this->_valid([
+                "order.require"     => trans("empty.require"),
+                "msg.require"       => trans("empty.require"),
+                "type.require"      => trans("empty.require"),
+                "content.require"   => trans("empty.require"),
+            ],$request->method());
+            if (!is_array($param)) return error($param);
+            $order = $this->model->where("out_order_no",$param["order"])->with(['poi'])->findOrEmpty();
+            if ($order->isEmpty()) return error("关联订单错误");
+            if ($order['openid'] <> $request->user['openid']) return error("关联订单错误");
+            if ($order['status'] <> 2) return error("订单不支持该操作");
+            $order->status = 9;
+            $order->refund_msg = json_encode([$param['msg']]);
+            $state = $order->save();
+            if (!$state) return error('申请失败');
+            return success("申请成功");
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+    }
+
+    /**
+     * 履约中申请退款
+     *  Array
+     *  (
+     *   [order] => AL202608215835460704413
+     *   [msg] => 计划有变,暂时不需要了
+     *  )
+     * @param Request $request
+     * @return Response
+     */
+    #[PostMapping("keeps")]
+    public function setOrderRefundKeeps(Request $request): Response
+    {
+        try {
+            $param = $this->_valid([
+                "order.require"     => trans("empty.require"),
+                "msg.require"       => trans("empty.require"),
+            ],$request->method());
+            if (!is_array($param)) return error($param);
+            $order = $this->model->where("out_order_no",$param["order"])->with(['poi'])->findOrEmpty();
+            if ($order->isEmpty()) return error("关联订单错误");
+            if ($order['openid'] <> $request->user['openid']) return error("关联订单错误");
+            if ($order['status'] <> 7) return error("订单不支持该操作");
+            $order->status = 8;
+            $order->refund_msg = json_encode([$param['msg']]);
+            $state = $order->save();
+            if (!$state) return error('申请失败');
+            return success("申请成功");
         } catch (\Throwable $throwable) {
             return error($throwable->getMessage());
         }