Kaynağa Gözat

'200988563'

zory 1 hafta önce
ebeveyn
işleme
e7f073674c

+ 1 - 1
app/controller/api/Goods.php

@@ -36,7 +36,7 @@ class Goods extends Base
             ],$request->method());
             if (!is_array($param)) return error($param);
             $data = $this->model->where("product_id",$param['goods'])->with(['poi' => function ($query) {
-                $query->field("poi_id,poi_name,poi_address,longitude,latitude,poi_id");
+                $query->field("poi_id,poi_name,poi_address,longitude,latitude,service_mobile,start_at,end_at");
             },'skuSpecs'])->findOrEmpty();
             if ($data->isEmpty()) return errorTrans("empty.data");
             return $this->encode("success",$data->toArray());

+ 36 - 1
app/controller/api/Order.php

@@ -50,6 +50,40 @@ class Order extends Base
     }
 
 
+    #[PostMapping("del")]
+    public function delOrderData(Request $request): Response
+    {
+        try {
+            $param = $this->_valid([
+                "order.require" => trans("empty.require"),
+                "type.require"  => trans("empty.require"),
+            ],$request->method());
+            if (!is_array($param)) return error($param);
+            $order = $this->model->where("order_sn",$param['order'])->with(['product','poi'])->findOrEmpty();
+            if ($order->isEmpty()) return errorTrans("empty.data");
+            if ($order['openid'] <> $request->user['openid']) return errorTrans("empty.data");
+            switch ($param['type']) {
+                case "del": // 删除订单
+                    if ($order['status'] <> 5) return error("该订单不支持删除");
+                    $state = $order->delete();
+                    break;
+                case "cancel": // 取消订单
+                    if ($order['status'] <> 0) return error("该订单不支持取消");
+                    $order->status = 5;
+                    $state = $order->save();
+                    break;
+                default:
+                    $state = false;
+                    break;
+            }
+            if (!$state) return errorTrans("error.data");
+            return successTrans("success.data");
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+    }
+
+
     #[PostMapping("refund")]
     public function orderRefund(Request $request): Response
     {
@@ -96,8 +130,9 @@ class Order extends Base
                 "order.require"     => trans("empty.require")
             ],$request->method());
             if (!is_array($param)) return error($param);
-            $order = $this->model->where("order_sn",$param['order'])->with(['product','poi'])->findOrEmpty();
+            $order = $this->model->where("out_order_no",$param['order'])->with(['product','poi'])->findOrEmpty();
             if ($order->isEmpty()) return errorTrans("empty.data");
+            $order['end_time'] = timeDiff(strtotime("+30 minutes",strtotime($order['create_at'])),time());
             return $this->encode("ok",$order->toArray());
         } catch (\Throwable $th) {
             return error($th->getMessage());

+ 8 - 1
app/controller/merchant/Goods.php

@@ -41,7 +41,14 @@ class Goods extends Base
         try {
             $param = $request->all();
             $param['poi_id'] = $request->user['store_id'];
-            $data = $this->service->setModel()->getList($param);
+            $productType = $this->service->productType();
+            $data = $this->service->setModel()->getList($param,null,true,['types'],['types' => function($query,$resp) use($productType){
+                $productTypeArr = [];
+                foreach ($productType as $val) {
+                    $productTypeArr[$val['key']] = $val['name'];
+                }
+                return $productTypeArr[$resp['product_type']]??'';
+            }]);
             return successTrans(100010,pageFormat($data),200);
         } catch (\Throwable $th) {
             return error($th->getMessage());

+ 24 - 0
app/functions.php

@@ -569,4 +569,28 @@ if (!function_exists("formatTime"))
             return date('Y-m-d', $time);
         }
     }
+}
+if(! function_exists ('timeDiff') ) {
+    function timeDiff($begin_time, $end_time): array
+    {
+        if ($begin_time < $end_time) {
+            return ["day" => 0, "hour" => 0, "min" => 0, "sec" => 0];
+        } else {
+            $starttime = $end_time;
+            $endtime = $begin_time;
+        }
+
+        //计算天数
+        $timediff = $endtime - $starttime;
+        $days = intval($timediff / 86400);
+        //计算小时数
+        $remain = $timediff % 86400;
+        $hours = intval($remain / 3600);
+        //计算分钟数
+        $remain = $remain % 3600;
+        $mins = intval($remain / 60);
+        //计算秒数
+        $secs = $remain % 60;
+        return ["day" => $days, "hour" => $hours, "min" => $mins, "sec" => $secs];
+    }
 }