hrjy il y a 3 ans
Parent
commit
12ffe3ef27
1 fichiers modifiés avec 29 ajouts et 1 suppressions
  1. 29 1
      app/api/controller/auction/AuctionController.php

+ 29 - 1
app/api/controller/auction/AuctionController.php

@@ -75,6 +75,23 @@ class AuctionController
         if (AuctionBooking::where([['uid', '=', $request->uid()], ['auction_id' , '=', $auction['id']], ['frequency', '=', $auction['frequency']]])->find()){
             return app('json')->fail('当前场馆已预约');
         }
+
+        $product = AuctionProduct::alias('a')
+            ->field('a.*')
+            ->where([['a.uid', '<>', $request->uid()], ['a.is_show', '=', 1], ['b.add_time', '<=', strtotime('today')], ['a.auction_id', '=', $data['id']], ['succeed_time', '<', strtotime('today')]])
+            ->leftJoin('auction_time b', 'a.id = b.product_id')
+            ->limit(1)
+            ->orderRaw('rand()')
+            ->select();
+        if (count($product) == 0) {
+            $product = AuctionProduct::where([['uid', '<>', $request->uid()], ['is_admin', '=', 1],['is_show', '=', 1], ['auction_id', '=', $data['id']], ['succeed_time', '<', strtotime('today')]])
+                ->limit(1)
+                ->orderRaw('rand()')
+                ->select();
+            if (count($product) == 0) {
+                return app('json')->fail('商品已认购完');
+            }
+        }
         cache($request->uid(), 1, 5);
         $userModel = new User();
         $user = User::where('uid', $request->uid())->find();
@@ -82,9 +99,20 @@ class AuctionController
         if ($user['anticipate'] < $auction['anticipate']) return app('json')->fail('易趣卷不足');
         $user['anticipate'] = $user['anticipate'] - $auction['anticipate'];// 扣除预约卷
 
-
         $res = $user->save();
         if ($res){
+            AuctionOrder::create([
+                'uid' => $request->uid(),
+                'collection_id' => $product[0]['uid'],// 商品拥有有人
+                'order_id' => getNewOrderId(),
+                'name' => $product[0]['name'],
+                'product_id' => $product[0]['id'],
+                'auction_id' => $auction['id'],
+                'image'=> $product[0]['image'],
+                'price' => $product[0]['hanging_price'],
+                'frequency' => $auction['frequency']
+            ]);
+            AuctionProduct::where('id', $product[0]['id'])->update(['succeed_time' => strtotime('today')]);
             AuctionBooking::booking($user['uid'], $auction);
             UserBill::expend('预约场馆', $user['uid'], 'anticipate','reduce_anticipate', $auction['anticipate'], 0, $user['anticipate'], '预约扣除易趣卷'); // 写入记录