qifengquan 1 year ago
parent
commit
a722ee1b40
1 changed files with 36 additions and 18 deletions
  1. 36 18
      app/data/controller/api/auth/UserPurchase.php

+ 36 - 18
app/data/controller/api/auth/UserPurchase.php

@@ -68,16 +68,24 @@ class UserPurchase extends Auth
         $item=ShopPurchase::getItem($request['tab']);
 
         $offerTable=$offer->getTable();
-//        print_r($offerTable);
-//        exit;
+
         $status = $request['status'];
         $offer->where("{$offerTable}.user_id",$user['id']);
+
         if($request['status']==1){
             //$offer->where('amount','=',0);
             $offer->whereRaw('amount=0 or amount is NULL');
         }elseif($request['status']==2){
-            if ($request['tab']!=1){
                 $offer->where('amount','>',0);
+//                if($request['tab']==1){
+//                    $item->whereNull("offer_id");
+//                }
+            if ($request['tab']==1){
+                $offer->whereExists(
+                    $item->where("id",Db::raw("{$offerTable}.item_id"))->whereNull('offer_id')->buildSql()
+                );
+            }
+            if ($request['tab']!=1){
                 $offer->whereNotExists(
                     $item->where("offer_id",Db::raw("{$offerTable}.id"))->buildSql()
                 );
@@ -89,37 +97,47 @@ class UserPurchase extends Auth
                 $item->where("offer_id",Db::raw("{$offerTable}.id"))->buildSql()
             );
         }
+
+//        print_r($offer);
+//        exit();
         $offer->group($key);
         $offer->order('id','desc');
+
         $offer->whereExists(
             ShopPurchase::getQuery($request['tab'])
-                ->where(function ($query) use ($status,$request){
-                    if($request['tab'] == 1){
-                        if($status == 1){
-                            $query->whereExists('select * from shop_purchase_item where shop_purchase_item.purchase_id=shop_purchase.id and not exists(select * from shop_purchase_offer where shop_purchase_offer.item_id=shop_purchase_item.id)');
-                        }elseif ($status == 2){
-                            $query->whereExists('select * from shop_purchase_item where shop_purchase_item.purchase_id=shop_purchase.id and exists(select * from shop_purchase_offer where shop_purchase_offer.item_id=shop_purchase_item.id)');
-                        }elseif($status == 3){
-                            $query->whereExists('select * from shop_purchase_item where shop_purchase_item.purchase_id=shop_purchase.id and offer_id is not null');
-                        }else{
-                            $this->error('未知参数');
-                        }
-                    }else{
+                ->where(function ($query) use ($status){
+//                    if($request['tab'] == 1){
+//                        if($status == 1){
+//                            $query->whereExists('select * from shop_purchase_item where shop_purchase_item.purchase_id=shop_purchase.id and not exists(select * from shop_purchase_offer where shop_purchase_offer.item_id=shop_purchase_item.id)');
+//                        }elseif ($status == 2){
+//                            $query->whereExists('select * from shop_purchase_item where shop_purchase_item.purchase_id=shop_purchase.id and exists(select * from shop_purchase_offer where shop_purchase_offer.item_id=shop_purchase_item.id)');
+//                        }elseif($status == 3){
+//                            $query->whereExists('select * from shop_purchase_item where shop_purchase_item.purchase_id=shop_purchase.id and offer_id is not null');
+//                        }else{
+//                            $this->error('未知参数');
+//                        }
+//                    }else{
                         if ($status>2){
                             $query->where('status',$status);
                         }
-                    }
+//                    }
                 })
                 ->where('id',"{$offerTable}.$key")->buildSql()
         );
 //        $list = $offer->select();
 //        echo $offer->getLastSql();die;
         $list=$offer->paginate($request['limit']?:15);
-
-
+//        $this->success('',$list);
+//        print_r($item);
+//        exit();
         foreach ($list as $k=>$item){
             $with=['items'];
             $order=ShopPurchase::getQuery($request['tab'])->with($with)->find($item[$key]);
+
+//            $this->success('',$order);
+//            print_r($item);
+//            echo "</br>";
+//            exit();
             $order['status']=$request['status'];
             if($request['tab']>1) {
                 $order['user_order'] = $order->offers()->where('user_id',$user['id'])->find();