Procházet zdrojové kódy

wesmiler 抢表商城

APPLE před 3 roky
rodič
revize
ebc899799a

+ 10 - 2
app/Services/Common/GoodsService.php

@@ -112,6 +112,12 @@ class GoodsService extends BaseService
         ];
     }
 
+    /**
+     * 上架审核商品
+     * @param $params
+     * @param int $pageSize
+     * @return array
+     */
     public function getTradeGoods($params, $pageSize = 15)
     {
         $where = ['a.mark' => 1];
@@ -140,7 +146,7 @@ class GoodsService extends BaseService
                     $query->orWhere('b.nickname','like',"%{$keyword}%")->orWhere('b.mobile','like',"%{$keyword}%");
                 }
             })
-            ->select(['a.*','b.nickname','b.mobile as mobile','c.nickname as sell_nickname', 'c.mobile as sell_mobile','d.name as shop_name','g.goods_name','g.thumb','g.code'])
+            ->select(['a.*','b.nickname','b.mobile as mobile','c.nickname as sell_nickname', 'c.mobile as sell_mobile','d.name as shop_name','g.goods_name','g.thumb','g.code','g.split_stop','g.status as goods_status'])
             ->orderBy('a.confirm_time','desc')
             ->orderBy('a.id','desc')
             ->paginate($pageSize > 0 ? $pageSize : 9999999);
@@ -150,6 +156,7 @@ class GoodsService extends BaseService
                 $item['create_time'] = $item['create_time']? datetime($item['create_time'],'Y-m-d H:i:s') : '';
                 $item['confirm_time'] = $item['confirm_time']? datetime($item['confirm_time'],'Y-m-d H:i:s') : '';
                 $item['thumb'] = isset($item['thumb']) && $item['thumb']? get_image_url($item['thumb']) : '';
+
             }
         }
 
@@ -238,7 +245,7 @@ class GoodsService extends BaseService
      * @param $goods
      * @return bool
      */
-    public function split($goodsId)
+    public function split($goodsId, $info=[])
     {
         $goods = $this->model->where(['id'=> $goodsId,'mark'=>1])->first();
         $splitNum = isset($goods['split_num'])? $goods['split_num'] : 0;
@@ -266,6 +273,7 @@ class GoodsService extends BaseService
                 'price'=> $price,
                 'fee'=> 0,
                 'thumb'=> $goods['thumb'],
+                'albums'=> $goods['albums'],
                 'content'=> $goods['content'],
                 'split_num'=> $goods['split_num'],
                 'split_price'=> $goods['split_price'],

+ 17 - 11
app/Services/Common/TradeService.php

@@ -115,7 +115,7 @@ class TradeService extends BaseService
                     $query->where('a.sell_uid', '=', $sellUid);
                 }
             })
-            ->select(['a.*', 'b.nickname', 'b.mobile as buy_mobile', 'c.nickname as sell_nickname', 'c.mobile as sell_mobile', 'g.goods_name', 'g.code', 'g.thumb'])
+            ->select(['a.*', 'b.nickname', 'b.mobile as buy_mobile', 'c.nickname as sell_nickname', 'c.mobile as sell_mobile', 'g.goods_name', 'g.code','g.price', 'g.thumb'])
             ->orderBy('a.pay_time', 'desc')
             ->orderBy('a.id', 'desc')
             ->paginate($pageSize > 0 ? $pageSize : 9999999);
@@ -692,7 +692,11 @@ class TradeService extends BaseService
     public function sellConfirm($params)
     {
         $id = isset($params['id']) ? $params['id'] : 0;
-        $info = $this->model->where(['id' => $id, 'mark' => 1])->first();
+        $info = $this->model->from('trade as a')
+            ->leftJoin('goods as b','b.id','=','a.goods_id')
+            ->where(['a.id' => $id, 'a.mark' => 1])
+            ->select(['a.*','b.split_price','b.split_num'])
+            ->first();
         if (empty($id) || empty($info)) {
             $this->error = 2042;
             return false;
@@ -712,18 +716,20 @@ class TradeService extends BaseService
 
         // 判断是否可以上架或拆分
         $realPrice = $info['real_price'];
-        $price = $info['price']; // 特价
-        $addPrice = $realPrice*$priceRate/100;
+        $sellPrice = $info['sell_price']; // 特价
+        $price = $info['price']; // 买入价格
+        $price1 = $info['new_price']; // 买入价格
+        $addPrice = intval($realPrice*$priceRate/100,0);
 
         // 满足涨价上架
-        if($price+$addPrice < $info['split_price']){
-            if (!$this->model->where(['id' => $id])->update(['status' => 4,'new_price'=> $price+$addPrice,'real_price'=> $realPrice + $addPrice, 'is_sell' => 2, 'update_time' => time()])) {
+        if($price1+$addPrice < $info['split_price']){
+            if (!$this->model->where(['id' => $id])->update(['status' => 4,'new_price'=> $price1+$addPrice,'real_price'=> $realPrice + $addPrice, 'is_sell' => 1, 'update_time' => time()])) {
                 $this->error = 2056;
                 DB::rollBack();
                 return false;
             }
 
-            if (!GoodsModel::where(['id' => $info['goods_id']])->update(['last_sell_time'=>time(),'real_price' => $realPrice + $addPrice, 'price' => $price+$addPrice,'is_trade'=> 2, 'update_time' => time()])) {
+            if (!GoodsModel::where(['id' => $info['goods_id']])->update(['last_sell_time'=>time(), 'price' => $price1+$addPrice,'is_trade'=> 2, 'update_time' => time()])) {
                 $this->error = 2056;
                 DB::rollBack();
                 return false;
@@ -735,7 +741,7 @@ class TradeService extends BaseService
         }
         // 停止拆分
         else if($info['sell_price'] == $stopSplitPrice){
-            if (!GoodsModel::where(['id' => $id])->update(['status' => 2,'stop_split'=>1, 'update_time' => time()])) {
+            if (!GoodsModel::where(['id' => $info['goods_id']])->update(['status' => 2,'split_stop'=>1, 'update_time' => time()])) {
                 $this->error = 2054;
                 DB::rollBack();
                 return false;
@@ -743,12 +749,12 @@ class TradeService extends BaseService
 
             $this->error = 2064;
             DB::commit();
-            return false;
+            return true;
         }
 
         // 满足拆分
-        else {
-            if(!GoodsService::make()->split($info['goods_id'])){
+        else if($info['split_price']) {
+            if(!GoodsService::make()->split($info['goods_id'], $info)){
                 $this->error = 2058;
                 DB::rollBack();
                 return false;