Zory vor 1 Woche
Ursprung
Commit
c57dda121e
1 geänderte Dateien mit 41 neuen und 0 gelöschten Zeilen
  1. 41 0
      app/controller/merchant/Order.php

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

@@ -6,6 +6,7 @@ use app\extra\basic\Base;
 use app\extra\dyLife\data\OrderData;
 use app\middleware\AuthMiddleware;
 use app\model\saas\SaasOrder;
+use app\model\saas\SaasOrderAddress;
 use app\model\saas\SaasStore;
 use app\service\saas\GoodsService;
 use app\service\saas\OrderService;
@@ -148,4 +149,44 @@ class Order extends Base
         }
     }
 
+
+    #[PostMapping('address')]
+    public function setOrderAddress(Request $request): Response
+    {
+        try {
+            $param = $this->_valid([
+                "nickname.require"      => trans("empty.require"),
+                "mobile.require"        => trans("empty.require"),
+                "mobile.mobile"         => trans("error.mobile"),
+                "city.require"          => trans("empty.require"),
+                "address.require"       => trans("empty.require"),
+                "cityLabel.require"     => trans("empty.require"),
+                "order.require"         => trans("empty.require"),
+            ],$request->method());
+            if (!is_array($param)) return error($param);
+            $order = (new SaasOrder)->where("out_order_no",$param["order"])->with(['poi'])->findOrEmpty();
+            if ($order->isEmpty()) return error("关联订单错误");
+            if ($order['status'] <> 1) return error("关联订单错误");
+            $address = (new SaasOrderAddress)->where(['openid' => $order['openid'],'order_sn' => $param['order']])->findOrEmpty();
+            if (!$address->isEmpty()) return error("请勿重复提交");
+            $param['city_text'] = empty($param['cityLabel'])?'':implode("",$param['cityLabel']);
+            $address->insertGetId([
+                "openid"    => $order['openid'],
+                "order_sn"  => $param['order'],
+                "city_code" => empty($param['city'])?[]:json_encode($param['city']),
+                "city_text" => $param['city_text'],
+                "mobile"    => $param['mobile'],
+                "address"   => $param['address'],
+                "nickname"  => $param['nickname'],
+            ]);
+            $order->status = 2;
+            $order->express_status = 1;
+            $state = $order->save();
+            if (!$state) return errorTrans("error.data");
+            return successTrans("success.data");
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+    }
+
 }