xieruidong 2 years ago
parent
commit
e06d5050ad

+ 16 - 3
application/api/controller/mall/Orders.php

@@ -119,8 +119,8 @@ class Orders extends Api
         $order['num_install']=$info['num_install'];
         $order['tax']=$data['tax']??null;
         $order->save();
-        foreach ($info['goods'] as $goods){
-            OrderInfo::saveInfo($order,$goods);
+        foreach ($info['goods'] as $everyGoods){
+            OrderInfo::saveInfo($order,$everyGoods);
         }
         $order->address()->save($address->orderAddress());
 
@@ -167,6 +167,19 @@ class Orders extends Api
         }
         $this->success('',$order);
     }
+    /**
+     * 取消订单
+     * @ApiParams (name=id,description="订单ID")
+     */
+    public function cancel(){
+        $data=$this->_validate([
+            'id'=>['require'],
+        ]);
+        $user=$this->auth->getUser();
+        $order=$user->orders()->findOrFail($data['id']);
+        $order->makeCancel();
+        $this->success('',$order);
+    }
 
     /**
      * 用户订单列表
@@ -181,7 +194,7 @@ class Orders extends Api
             ->paginate(input('limit',15));
 
         foreach ($orders as $order){
-            $order->append(['goods']);
+            $order['info']=$order->info()->with(['goodsBak'])->find();
         }
 
         $this->success('',$orders);

+ 1 - 0
application/common/model/OrderInfo.php

@@ -27,6 +27,7 @@ class OrderInfo extends Model
             'goods'=>$goods['goods'],
             'sku'=>$goods['sku'],
         ]);
+        $orderInfo['logo']=$goods['logo'][0];
         $orderInfo['user_id']=$orders['user_id'];
         $orderInfo['order_id']=$orders['id'];
         $orderInfo['goods_id']=$goods['goods_id'];

+ 8 - 2
application/common/model/Orders.php

@@ -66,14 +66,14 @@ class Orders extends Model
     public function address(){
         return $this->hasOne(OrderAddress::class,'order_id');
     }
-    public function getGoodsAttr(){
+    /*public function getGoodsAttr(){
         $info=$this->info()->with(['goodsBak'])->find();
         $goods=$info['goodsBak'];
         return [
             'goods'=>$goods['goods'],
             'sku'=>$goods['sku'],
         ];
-    }
+    }*/
     public function getIsWaitPayAttr($_,$model){
         return $model['status']==self::S_WAIT_PAY;
     }
@@ -95,6 +95,12 @@ class Orders extends Model
     public function makeCancel(){
         $this['status']=self::S_CANCEL;
         $this['cancel_time']=time();
+        foreach ($this->info as $orderInfo){
+            $goods=Goods::find($orderInfo['goods_id']);
+            $goods && $goods->setDec('num_sell',$orderInfo['num']);
+            $sku=GoodsSku::find($orderInfo['goods_sku_id']);
+            $sku && $sku->setDec('num_sell',$orderInfo['num']);
+        }
         $this->save();
     }
     #待收货过期