hrjy 3 lat temu
rodzic
commit
95b0a4ffe6

+ 2 - 2
app/admin/controller/user/User.php

@@ -192,7 +192,7 @@ class User extends AuthController
         if ($data['anticipate_status'] && $data['anticipate']) {//趣豆增加或者减少
             if ($data['anticipate_status'] == 1) {//增加
                 $edit['anticipate'] = bcadd($user['anticipate'], $data['anticipate'], 2);
-                $res3 = UserBillAdmin::income('系统增加预约券', $user['uid'], 'anticipate', 'add_anticipate', $data['anticipate'], $this->adminId, $edit['anticipate'], '系统增加了' . floatval($data['anticipate']) . '趣豆');
+                $res3 = UserBillAdmin::income('系统增加预约券', $user['uid'], 'anticipate', 'add_anticipate', $data['anticipate'], $this->adminId, $edit['anticipate'], '系统增加了' . floatval($data['anticipate']) . '预约券');
                 try {
                     UserRepository::adminAddIntegral($user, $data['integration']);
                 } catch (\Exception $e) {
@@ -201,7 +201,7 @@ class User extends AuthController
                 }
             } else if ($data['anticipate_status'] == 2) {//减少
                 $edit['anticipate'] = bcsub($user['anticipate'], $data['anticipate'], 2);
-                $res3 = UserBillAdmin::expend('系统减少预约券', $user['uid'], 'anticipate', 'reduce_anticipate', $data['anticipate'], $this->adminId, $edit['anticipate'], '系统扣除了' . floatval($data['anticipate']) . '趣豆');
+                $res3 = UserBillAdmin::expend('系统减少预约券', $user['uid'], 'anticipate', 'reduce_anticipate', $data['anticipate'], $this->adminId, $edit['anticipate'], '系统扣除了' . floatval($data['anticipate']) . '预约券');
                 try {
                     UserRepository::adminSubIntegral($user, $data['anticipate']);
                 } catch (\Exception $e) {

+ 43 - 40
app/api/controller/auction/AuctionProductController.php

@@ -83,6 +83,7 @@ class AuctionProductController
 
 
         $product = AuctionProduct::where('id', $data['product_id'])->find();
+        if ($product['is_show'] == 0) return app('json')->fail('商品未挂售');
         $product_ids = AuctionProduct::where('auction_id', $product['auction_id'])->column('id');
         $auction  = Auction::where('id', $product['auction_id'])->find();
         $count = AuctionOrder::where('frequency',$auction['frequency'])->where('uid', $request->uid())->where('product_id', 'in', $product_ids)->count();
@@ -253,7 +254,7 @@ class AuctionProductController
         if (empty($details)) return app('json')->fail('商品不存在');
         $details['slider_image'] = is_string($details['slider_image']) ? json_decode($details['slider_image'], true) : [];
         $details['description'] = !empty($details['description']) ? html_entity_decode($details['description'], ENT_COMPAT) : '';
-        $details['user_nickname'] = User::where('uid', $details['auction_id'])->find()['nickname'];
+        $details['user_nickname'] = User::where('uid', $details['uid'])->find()['nickname'];
 
         $auction = Auction::where('id', $details['auction_id'])->find();
         $details['time'] = $auction['radd_time'].'-'.$auction['rend_time'];
@@ -300,7 +301,7 @@ class AuctionProductController
        $product = AuctionProduct::where('id', $data['id'])->find();
        if (!$product) return app('json')->fail('商品不存在');
 
-       $data = $this->bs($data['id']);
+       $data = AuctionProduct::bs($data['id']);
        return app('json')->successful($data);
 
    }
@@ -325,7 +326,7 @@ class AuctionProductController
 
         if ($product['is_show'] == 1) return app('json')->fail('商品已挂售');
 
-        $datas = $this->bs($data['id']);// 获取挂售详情
+        $datas = AuctionProduct::bs($data['id']);// 获取挂售详情
         if ($user['anticipate'] < $datas['anticipate']) return app('json')->fail('预约券不足');
 
         $product['price'] = $product['hanging_price'];
@@ -358,51 +359,53 @@ class AuctionProductController
 
     }
 
-    public function bs($id)
+    /**
+     * 取消挂售
+     * @param Request $request
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function cancel(Request $request)
     {
-        $product = AuctionProduct::where('id',$id)->find();
-        $auction = Auction::where('id', $product['auction_id'])->find();
-        if (!$product) return app('json')->fail('商品不存在');
+        $data = UtilService::postMore([
+            ['id']
+        ]);
+        $productModel = new AuctionProduct();
 
-        $data['time'] = explode(',', $auction['site']);
-
-        $date = date('w', time()); // 今天星期几
-        $data['gs_time'] = '';
-        $bs = 0;
-        if (in_array(1, $data['time'])){
-            if ($date >= 1 and $date <= 2){
-                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Wednesday")); // 星期三
-                $bs = 2;
-            }elseif ($date >= 3 and $date <= 4){
-                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Friday")); // 星期五
-                $bs = 2;
-            }elseif ($date >= 5 or $date == 0){
-                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Monday")); // 下个星期一
-                $bs = 3;
-            }
+        $details = $productModel->find($data['id']);
+        if (!$details)  return app('json')->fail('商品不存在');
+        $order = AuctionOrder::where([['product_id', '=', $details['id']], ['status', '<', 3], ['status', '>', 0]])->find();
+        if ($order) return app('json')->fail('商品已出售,无法取消');
 
-        }else if (in_array(2, $data['time'])){
-            if ($date >= 2 and $date <= 3){
-                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Thursday")); // 星期四
-                $bs = 2;
-            }elseif ($date >= 4 and $date <= 5){
-                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Saturday")); // 星期六
-                $bs = 2;
-            }elseif ($date >= 6 or $date == 0 or $date == 1){
-                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Tuesday")); // 下个星期二
-                $bs = 3;
-            }
-        }
+        $user = User::where('uid', $request->uid())->find();
+        $anticipate = round($details['price'] * $details['deduct']/100, 2);
+        $details['hanging_price'] = $details['price']; // 价格变=回未挂售前;
+        $details['is_show'] = 0; // 价格变=回未挂售前;
+        $user['anticipate'] += $anticipate;// 退回挂售扣除的预约预约券
 
-        $hanging_price = round($product['hanging_price'] * $product['rise']/100, 2); //  溢价
-        $anticipate = round($product['hanging_price'] * $product['deduct']/100, 2); // 扣除
 
-        $data['hanging_price'] = (int)$product['hanging_price'] + ($hanging_price * $bs);
-        $data['anticipate'] = $anticipate;
+        try {
+            Db::startTrans();
+            $details->save();
+            $user->save();
+            AuctionOrder::where('order_id', $details['order'])->save(['is_gs' => 0]);
+            UserBill::income('取消挂售退回预约券', $request->uid(), 'anticipate', 'add_anticipate', $anticipate, 0, $user['anticipate'], '取消挂售退回预约券');
+            AuctionTime::where([['uid', '=', $request->uid()], ['product_id', '=', $data['id']]])->delete(); // 删除上架时间
+            Db::commit();
+
+            return app('json')->successful('取消挂售成功');
+        } catch (\Exception $e) {
+            Db::rollback();
+            return app('json')->fail('取消挂售失败');
+        }
 
 
-        return $data;
     }
 
 
+
+
+
 }

+ 31 - 28
app/models/auction/AuctionOrder.php

@@ -74,7 +74,7 @@ class AuctionOrder extends BaseModel
                 $list = self::where([['uid', '=', $uid], ['status', '=', 3], ['is_gs', '=', 1]])->page($data['page'], $data['limit'])->select(); //完成订单
             }else if($data['type'] == 4) {
 
-                $list = self::where([['uid', '=', $uid], ['is_gs', '=', 0]])->page($data['page'], $data['limit'])->select(); //待挂售订单
+                $list = self::where([['uid', '=', $uid], ['status', '=', 3],['is_gs', '=', 0]])->page($data['page'], $data['limit'])->select(); //待挂售订单
             }else{
                 $list = self::where([['uid', '=', $uid], ['status', '<', 1]])->page($data['page'], $data['limit'])->select(); //过期订单
             }
@@ -102,44 +102,47 @@ class AuctionOrder extends BaseModel
                 ->where('a.order_id', $data['order_id'])->find(); //详细订单
         }else{
             if ($data['type'] == 1){
-                $list = self::alias('a')
-                    ->field('a.*,u.nickname,u.avatar,u.uid as user_id')
-                    ->leftJoin('user u', 'a.uid = u.uid')
-                    ->where([['a.collection_id', '=', $uid], ['a.status', '=', 1]])
-                    ->page($data['page'], $data['limit'])
-                    ->select(); //待上传订单
-
+                $status = 1;
             }else if($data['type'] == 2){
-                $list = self::alias('a')
-                    ->field('a.*,u.nickname,u.avatar,u.uid as user_id')
-                    ->leftJoin('user u', 'a.uid = u.uid')
-                    ->where([['a.collection_id', '=', $uid], ['a.status', '=', 2]])
-                    ->page($data['page'], $data['limit'])
-                    ->select(); //待审核订单
-
+                $status = 2;
             }else if($data['type'] == 3) {
-                $list = self::alias('a')
-                    ->field('a.*,u.nickname,u.avatar,u.uid as user_id')
-                    ->leftJoin('user u', 'a.uid = u.uid')
-                    ->where([['a.collection_id', '=', $uid], ['a.status', '=', 3]])
-                    ->page($data['page'], $data['limit'])
-                    ->select(); //完成订单
+                $status = 3;
+            }else{
+                $status = 0;
+            }
+            if ($data['type'] == 4){
+                $product = AuctionTime::alias('a')
+                    ->field('FROM_UNIXTIME(a.add_time,"%Y-%m-%d") as gs_time,au.nickname,b.*')
+                    ->order('a.id DESC')
+                    ->where([['a.uid', '=', $uid]])
+                    ->leftJoin('auction_product b', 'a.product_id = b.id')
+                    ->leftJoin('auction au', 'au.id = a.auction_id')
+                    ->select();
             }else{
                 $list = self::alias('a')
                     ->field('a.*,u.nickname,u.avatar,u.uid as user_id')
                     ->leftJoin('user u', 'a.uid = u.uid')
-                    ->where([['a.collection_id', '=', $uid], ['a.status', '=', 0]])
+                    ->order('id DESC')
+                    ->where([['a.collection_id', '=', $uid], ['a.status', '=', $status]])
                     ->page($data['page'], $data['limit'])
-                    ->select(); //过期订单
+                    ->select(); //待上传订单
             }
+
         }
-        $list = !empty($list)? $list->toArray(): [];
-        foreach ($list as $k => $v) {
-            $pay = AuctionPay::where('uid', $v['uid'])->find();
-            $list[$k]['phone'] = $pay['phone'];
+
+        if ($data['type'] != 4){
+            $list = !empty($list)? $list->toArray(): [];
+            foreach ($list as $k => $v) {
+                $pay = AuctionPay::where('uid', $v['uid'])->find();
+                $list[$k]['phone'] = $pay['phone'];
+            }
+            return $list;
+        }else{
+            $product = empty($product) ? []: $product->toArray();
+            return $product;
         }
 
-        return $list;
+
     }
 
     /**

+ 45 - 0
app/models/auction/AuctionProduct.php

@@ -116,5 +116,50 @@ class AuctionProduct extends BaseModel
 
     }
 
+    public static function bs($id)
+    {
+        $product = AuctionProduct::where('id',$id)->find();
+        $auction = Auction::where('id', $product['auction_id'])->find();
+        if (!$product) return app('json')->fail('商品不存在');
+
+        $data['time'] = explode(',', $auction['site']);
+
+        $date = date('w', time()); // 今天星期几
+        $data['gs_time'] = '';
+        $bs = 0;
+        if (in_array(1, $data['time'])){
+            if ($date >= 1 and $date <= 2){
+                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Wednesday")); // 星期三
+                $bs = 2;
+            }elseif ($date >= 3 and $date <= 4){
+                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Friday")); // 星期五
+                $bs = 2;
+            }elseif ($date >= 5 or $date == 0){
+                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Monday")); // 下个星期一
+                $bs = 3;
+            }
+
+        }else if (in_array(2, $data['time'])){
+            if ($date >= 2 and $date <= 3){
+                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Thursday")); // 星期四
+                $bs = 2;
+            }elseif ($date >= 4 and $date <= 5){
+                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Saturday")); // 星期六
+                $bs = 2;
+            }elseif ($date >= 6 or $date == 0 or $date == 1){
+                $data['gs_time'] = date('Y-m-d H:i:s', strtotime("Tuesday")); // 下个星期二
+                $bs = 3;
+            }
+        }
+
+        $hanging_price = round($product['hanging_price'] * $product['rise']/100, 2); //  溢价
+        $anticipate = round($product['hanging_price'] * $product['deduct']/100, 2); // 扣除
+
+        $data['hanging_price'] = (int)$product['hanging_price'] + ($hanging_price * $bs);
+        $data['anticipate'] = $anticipate;
+
+
+        return $data;
+    }
 
 }

+ 2 - 0
app/models/auction/AuctionTime.php

@@ -26,4 +26,6 @@ class AuctionTime extends BaseModel
 
     use ModelTrait;
 
+    protected $autoWriteTimestamp = true;
+
 }

Plik diff jest za duży
+ 0 - 0
public/index/static/js/index.db78e876.js


Plik diff jest za duży
+ 0 - 0
public/index/static/js/pages-public-login.3840809b.js


+ 1 - 0
route/api/route.php

@@ -190,6 +190,7 @@ Route::group(function () {
 
     Route::get('auction/gsxq', 'auction.auctionProductController/gsxq')->name('gsxq');// 挂售详情
     Route::post('auction/hanging_sale', 'auction.auctionProductController/hanging_sale')->name('hanging_sale');// 挂售
+    Route::post('auction/cancel', 'auction.auctionProductController/cancel')->name('cancel');// 取消挂售
 
 })->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\http\middleware\AuthTokenMiddleware::class, true);
 //未授权接口

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików