hrjy 2 years ago
parent
commit
5a499550e7

+ 20 - 2
app/admin/controller/auction/Auction.php

@@ -8,6 +8,7 @@ use app\admin\model\auction\AuctionProduct as model;
 use app\admin\model\store\StoreProductAttrResult;
 use app\admin\model\store\StoreProductAttrValue;
 use app\admin\model\User;
+use app\models\auction\AuctionTime;
 use app\models\store\StoreProduct;
 use app\models\store\StoreProductAttr;
 use crmeb\services\{ExpressService,
@@ -445,7 +446,15 @@ class Auction extends AuthController
         $auction_gu = \app\admin\model\auction\AuctionGu::where('id' ,$auction['auction_gu_id'])->find();
         $data['uid'] = $auction_gu['uid'];
         $model = new model();
-        $res = $model->save($data);
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $data['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('添加成功!');
         }else{
@@ -511,7 +520,16 @@ class Auction extends AuthController
         $auction = \app\admin\model\auction\Auction::where('id' ,$data['auction_id'])->find();
         $auction_gu = \app\admin\model\auction\AuctionGu::where('id' ,$auction['auction_gu_id'])->find();
         $data['uid'] = $auction_gu['uid'];
-        $res = model::create($data);
+        $model = new model();
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $data['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('修改成功!');
         }else{

+ 19 - 2
app/admin/controller/auction/AuctionProduct.php

@@ -102,7 +102,15 @@ class AuctionProduct extends AuthController
         $auction_gu = \app\admin\model\auction\AuctionGu::where('id' ,$auction['auction_gu_id'])->find();
         $data['uid'] = $auction_gu['uid'];
         $model = new model();
-        $res = $model->save($data);
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $auction_gu['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('添加成功!');
         }else{
@@ -280,7 +288,16 @@ class AuctionProduct extends AuthController
         ]);
         $data['slider_image'] = json_encode($data['slider_image']);
         $data['description'] = htmlspecialchars($data['description']);
-        $res = model::create($data);
+        $model = new model();
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $data['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('修改成功!');
         }else{

+ 5 - 9
app/admin/model/auction/AuctionProduct.php

@@ -63,16 +63,12 @@ class AuctionProduct extends BaseModel
         $data['data'] = $model->select()->toArray();
         foreach ($data['data'] as $k => $v)
         {
-            if ($v['is_admin'] == 2){
-                $time = AuctionTime::where('product_id', $v['id'])->find();
-                if ($time){
-                    $data['data'][$k]['time'] = date('Y-m-d', $time['add_time']);
-                }else{
-                    $data['data'][$k]['time'] = '未上架';
-
-                }
+            $time = AuctionTime::where('product_id', $v['id'])->find();
+            if ($time){
+                $data['data'][$k]['time'] = date('Y-m-d', $time['add_time']);
             }else{
-                $data['data'][$k]['time'] = date('Y-m-d', time());
+                $data['data'][$k]['time'] = '未上架';
+
             }
         }
         return $data;

+ 2 - 0
app/api/controller/auction/AuctionProductController.php

@@ -133,6 +133,8 @@ class AuctionProductController
             if (!$redis->lPop($data['product_id'])){
                 return app('json')->fail('商品已卖出');
             }
+            $product['succeed_time'] = strtotime('today');
+            $product->save();
             $res = AuctionOrder::create([
                 'uid' => $request->uid(),
                 'collection_id' => $product['uid'],// 商品拥有有人

+ 5 - 0
app/models/auction/AuctionOrder.php

@@ -133,6 +133,7 @@ class AuctionOrder extends BaseModel
                     ->field('FROM_UNIXTIME(a.add_time,"%Y-%m-%d") as gs_time,au.nickname,b.*')
                     ->order('a.id DESC')
                     ->where([['a.uid', '=', $uid]])
+                    ->where('b.is_admin', 2)
                     ->leftJoin('auction_product b', 'a.product_id = b.id')
                     ->leftJoin('auction au', 'au.id = a.auction_id')
                     ->select();
@@ -307,7 +308,9 @@ class AuctionOrder extends BaseModel
                         $user['anticipate'] += $dedu; // 卖家增加预约卷
                         $fz['deduction'] = $fz['anticipate'];
                         $fz['status'] = 2;
+                        $product['succeed_time'] = 0;
 
+                        $product->save();
                         $user->save();
                         \app\models\user\User::where('uid', $v['uid'])->update(['status' => 0, 'freeze_time' => strtotime('+1 day')]); // 冻结用户
                         UserBill::income('超时增加', $v['collection_id'], 'anticipate', 'ad_anticipate', $dedu, $v['uid'], $user['anticipate'], '(' . $userl['nickname'] . '-' . $userl['uid'] . ')超时付款,增加易趣卷');
@@ -338,7 +341,9 @@ class AuctionOrder extends BaseModel
                             $user['anticipate'] += $dedu; // 卖家增加预约卷
                             $booking['deduction'] = $booking['anticipate'];
                             $booking['status'] = 2;
+                            $product['succeed_time'] = 0;
 
+                            $product->save();
                             $user->save();
                             \app\models\user\User::where('uid', $v['uid'])->update(['status' => 0, 'freeze_time' => strtotime('+1 day')]); // 冻结用户
                             UserBill::income('超时增加', $v['collection_id'], 'anticipate', 'ad_anticipate', $dedu, $v['uid'], $user['anticipate'], '(' . $userl['nickname'] . '-' . $userl['uid'] . ')超时付款,增加易趣卷');

+ 6 - 60
app/models/auction/AuctionProduct.php

@@ -36,70 +36,16 @@ class AuctionProduct extends BaseModel
      * @throws \think\db\exception\ModelNotFoundException
      */
     public static function list($data, $uid){
-        $model = self::where('is_show', 1)->where('auction_id', $data['id'])->order('id DESC');
+        $model = self::where('auction_id', $data['id'])->order('succeed_time ASC,is_show DESC,id DESC');
+        $model = $model->page($data['page'], $data['limit']);
         if ($data['name']) $model->where('name', 'like', '%'.$data['name'].'%');
         $list = $model->select();
         $list = empty($list)? [] : $list->toArray();
-        $lists = [];
-        $auction = Auction::where('id', $data['id'])->find();
-        if ($list){
-            foreach ($list as $k => $v) {
-                $order = AuctionOrder::where('product_id', $v['id'])->where('status', '>', 0)->where('frequency', $auction['frequency'])->find();
-                if ($order){
-                    $list[$k]['status'] = 2;// 已被购买
-                    $list[$k]['str'] = '已卖完';
-                }else{
-                    $list[$k]['status'] = 1;// 能购买
-                    $list[$k]['str'] = '购买';
-                }
-                if ($v['is_admin'] == 2){
-                    $time = AuctionTime::where([['auction_id', '=', $auction['id']], ['product_id', '=', $v['id']], ['add_time', '=', strtotime(date('Y-m-d', time()))]])->find();
-                    if (!$time){
-                        unset($list[$k]);
-                    } else{
-                        $lists[] = $list[$k];
-                    }
-                }else{
-                    $lists[] = $list[$k];
-                }
-            }
-            $productId = AuctionProduct::where('auction_id', $data['id'])->column('id');
-            $orderList = AuctionOrder::alias('a')
-                ->field('p.*')
-                ->leftJoin('auction_product p', 'a.product_id = p.id')
-                ->where([['a.product_id', 'in', $productId], ['a.frequency', '=', $auction['frequency']], ['a.status', '=', 3]])
-                ->select();
-        }else{
-            $productId = AuctionProduct::where('auction_id', $data['id'])->column('id');
-            $orderList = AuctionOrder::alias('a')
-                ->field('p.*')
-                ->leftJoin('auction_product p', 'a.product_id = p.id')
-                ->where([['a.product_id', 'in', $productId], ['a.frequency', '=', $auction['frequency']], ['a.status', '=', 3]])
-                ->select();
+        foreach ($list as &$item){
+            $item['status'] = 1;
+            if ($item['succeed_time'] == strtotime('today') || $item['is_show'] == 0) $item['status'] = 2;
         }
-
-        $a = [];
-        $b = [];
-        foreach ($lists as $k => $v){
-            if ($v['status']  == 1){
-                $a[] = $v; // 未卖出的商品
-            }
-            if ($v['status']  == 2) $b[] = $v; // 卖出的商品
-        }
-        foreach ($b as $k => $v){
-            array_push($a, $v); // 卖出商品到最后
-        }
-        if (isset($orderList) and !empty($orderList)){
-            $orderList = count($orderList) == 0? [] : $orderList->toArray();
-            foreach ($orderList as $v){
-                $v['status'] = 2;// 已被购买
-                $v['str'] = '已卖完';
-                array_push($a, $v);
-            }
-        }
-        $data['page'] = ($data['page'] - 1)*$data['limit'];
-        $List = array_slice($a, $data['page'], $data['limit']);
-        return $List;
+        return $list;
     }
 
     /**