From 9df5e4341a95c35b00e651d49ff789576f28e897 Mon Sep 17 00:00:00 2001
From: zhaojs <349234519@qq.com>
Date: 星期五, 09 六月 2023 21:21:59 +0800
Subject: [PATCH] Merge branch 'feature/v1.1.2api' into develop

---
 application/api/logic/commission/Tb.php |  158 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 157 insertions(+), 1 deletions(-)

diff --git a/application/api/logic/commission/Tb.php b/application/api/logic/commission/Tb.php
index d386a78..471c6e5 100644
--- a/application/api/logic/commission/Tb.php
+++ b/application/api/logic/commission/Tb.php
@@ -27,7 +27,7 @@
      */
     public function getEstimateCommission($user_id,$time_type,$is_own)
     {
-        $info = Db::name('taobao_order_commission')->field("COUNT(id) as order_num,COALESCE(SUM(pub_share_pre_fee),0) as money,COALESCE(SUM(alipay_total_price),0) as sales_volume,'娣樺疂' as name")->where(['member_id'=>$user_id,'is_own'=>$is_own])->whereTime('tb_paid_time', $time_type)->find();
+        $info = Db::name('taobao_order_commission')->field("COUNT(id) as order_num,COALESCE(SUM(pub_share_pre_fee),0) as money,COALESCE(SUM(alipay_total_price),0) as sales_volume,'娣樺疂' as name")->where(['member_id'=>$user_id,'is_own'=>$is_own])->whereTime('tb_paid_time', $time_type)->whereIn('tk_status',[3,12,14])->find();
         return $info;
     }
 
@@ -61,6 +61,61 @@
         return empty($list) ? [] : $list;
     }
 
+     /**
+     * 杩斿埄鍏ュ簱鍜屾洿鏂帮紙鏂帮級锛屽姞涓婇鍗曢�昏緫
+     *
+     * @return void
+     */
+    public function fanliCommissionNew($order)
+    {
+        $trade_id = isset($order['trade_id']) ? $order['trade_id'] : '';
+        if(empty($trade_id)) return ['status'=>false,'info'=>'璁㈠崟鍙蜂负绌�'];
+        //鏍规嵁娣樺疂缁戝畾娓犻亾id鏌ヨ鐢ㄦ埛淇℃伅
+        $ModelUser = new ModelUser();
+        $user = $ModelUser->where(['t_relation_id'=>$order['relation_id']])->find();
+        if(!empty($user))
+        {
+            $browse=DB::name('user_first_free_browse')->where(['user_id'=>$user['id'],'is_order'=>1])->find();
+            if(!empty($browse)){
+                //鏌ヨ鏄惁鏄鍗曞晢鍝�
+            $first_browse=DB::name('user_first_free_browse')->where(['user_id'=>$user['id'],'tid'=>$order['trade_id']])->find();
+            if(!empty('first_browse')){
+                //璁$畻棣栧崟杩斿埄
+                $res=self::fanliCommissionForFree($order);
+                return $res;
+            }
+            else{
+                $res=self::fanliCommission($order);
+                return $res;
+            }
+
+            }
+            else{
+                $itemid=explode("-",$order['item_id']);
+                $first_good=DB::name('user_first_free_browse')->where(['user_id'=>$user['id'],'is_order'=>0])->where('new_goodsId','like','%' . $itemid[1] . '')->find();
+                if(empty($first_good)){
+                    $res=self::fanliCommission($order);
+                    return $res;
+                }
+                else{
+                    //璁$畻棣栧崟杩斿埄
+                    $res=self::fanliCommissionForFree($order);
+                    return $res;
+
+                }
+            }
+        
+        }
+        else{
+            //鏍囪璁㈠崟涓烘棤闇�鍒嗛攢
+            $ModelOrder = new ModelTaobaoOrder();
+            $ModelOrder->where(['id'=>$order['id']])->update(['is_distribution'=>2,'update_time'=>time()]);
+            Db::commit();
+            return ['status'=>true,'info'=>'鏃犻渶鍒嗛攢'];
+        }
+        
+    }
+
 
     /**
      * 杩斿埄鍏ュ簱鍜屾洿鏂�
@@ -69,6 +124,7 @@
      */
     public function fanliCommission($order)
     {
+        
         $trade_id = isset($order['trade_id']) ? $order['trade_id'] : '';
         if(empty($trade_id)) return ['status'=>false,'info'=>'璁㈠崟鍙蜂负绌�'];
         Db::startTrans();
@@ -247,5 +303,105 @@
         return ['status'=>true,'info'=>'鎷嗗垎鎴愬姛'];
     }
 
+    /**
+     * 棣栧崟杩斿埄鍏ュ簱鍜屾洿鏂�
+     *
+     * @return void
+     */
+    public function fanliCommissionForFree($order)
+    {
+        
+        $trade_id = isset($order['trade_id']) ? $order['trade_id'] : '';
+        if(empty($trade_id)) return ['status'=>false,'info'=>'璁㈠崟鍙蜂负绌�'];
+        $itemid=explode("-",$order['item_id']);
+        Db::startTrans();
+        $ModelUser = new ModelUser();
+        $user = $ModelUser->where(['t_relation_id'=>$order['relation_id']])->find();
+        $ModelOrder = new ModelTaobaoOrder();
+        if(empty($user)){
+            //鏍囪璁㈠崟涓烘棤闇�鍒嗛攢
+            $ModelOrder->where(['id'=>$order['id']])->update(['is_distribution'=>2,'update_time'=>time()]);
+            Db::commit();
+            return ['status'=>true,'info'=>'鏃犻渶鍒嗛攢1'];
+        }
+        $userLevelInfo = $this->getLevelInfo($user['level']); //鐢ㄦ埛绛夌骇淇℃伅
+        $find_commission = $this->model->where(['trade_id'=>$trade_id])->select();
+        $push_data = [];
+        if(empty($find_commission)){ //寮�濮嬪弽浣e叆搴�
+            if($order['tk_status'] == 13){ //璁㈠崟澶辨晥锛屾洿鏂拌鍗曚负鏃犻渶鍒嗛攢
+                $ModelOrder->where(['id'=>$order['id']])->update(['is_distribution'=>2,'update_time'=>time()]);
+                //鏇存柊棣栧崟鏍囪璁板綍
+                Db::name('user_first_free_browse')->where(['user_id'=>$user['id']])->where('new_goodsId','like','%' . $itemid[1] . '')->update(['tid'=>$trade_id,'is_order'=>0]);
+                Db::commit();
+                return ['status'=>true,'info'=>'璁㈠崟澶辨晥锛屾棤闇�鍒嗛攢'];
+            }
+            //鑷喘鍙嶄剑
+            $tmp_1 = [
+                'trade_parent_id' => $order['trade_parent_id'],
+                'trade_id' => $trade_id,
+                'member_id' => $user['id'],
+                'buy_member_id' => $user['id'],
+                'is_own' => 1,
+                'alipay_total_price' => $order['alipay_total_price'],
+                'pub_share_pre_fee' => !empty($order['pub_share_pre_fee']) ? $order['alipay_total_price'] : "",
+                'pub_share_fee' => !empty($order['pay_price']) ? $order['alipay_total_price'] : "",
+                'refund_tag' => $order['refund_tag'],
+                'item_img' => $order['item_img'],
+                'item_title' => $order['item_title'],
+                'tk_status' => $order['tk_status'],
+                'item_id' => $order['item_id'],
+                'member_commission_rate' => $userLevelInfo['own_commission_rate'],
+                'is_settle' => 0,
+                'tb_paid_time' => $order['tb_paid_time'],
+                'pay_price' => $order['pay_price'],
+                'tk_earning_time' => !empty($order['tk_earning_time']) ? strtotime($order['tk_earning_time']) : 0,
+                'create_time' => time()
+            ]; 
+            $save_data[] = $tmp_1;
+            $result = $this->model->saveAll($save_data);
+            if(!$result){
+                Db::rollback();
+                return ['status'=>false,'info'=>'鍙嶄剑鍏ュ簱澶辫触'];
+            }
+            if($order['is_distribution'] == 0){
+                $res_order = $ModelOrder->where(['id'=>$order['id']])->update(['is_distribution'=>1,'update_time'=>time()]);
+                if(!$res_order){
+                    Db::rollback();
+                    return ['status'=>false,'info'=>'璁㈠崟鐘舵�佷慨鏀瑰け璐�'];
+                }
+            }
+            // if(!empty($push_data)){
+            //     $this->userPush($push_data);
+            // }
+        }else{ //宸茬粡鎷嗗垎璁㈠崟锛岃繘琛屾洿鏂�
+            foreach($find_commission as $item){
+                $item_data = [
+                    'alipay_total_price' => $order['alipay_total_price'],
+                    'pub_share_pre_fee' => !empty($order['pub_share_pre_fee']) ? $order['alipay_total_price'] : "",
+                'pub_share_fee' => !empty($order['pay_price']) ? $order['alipay_total_price'] : "",
+                    'refund_tag' => $order['refund_tag'],
+                    'tk_status' => $order['tk_status'],
+                    'pay_price' => $order['pay_price'],
+                    'tk_earning_time' => !empty($order['tk_earning_time']) ? strtotime($order['tk_earning_time']) : 0,
+                    'update_time' => time()
+                ];
+                $update_commission = $this->model->where(['id'=>$item['id']])->update($item_data);
+                if(!$update_commission){
+                    Db::rollback();
+                    return ['status'=>false,'info'=>'鏇存柊鎷嗗垎璁板綍閿欒,ID涓�:'.$item['id']];
+                }
+            }
+            //鏇存柊璁㈠崟sign
+            $update_order = $ModelOrder->where(['id'=>$order['id']])->update(['one_sign'=>$order['two_sign'],'update_time'=>time()]);
+            if(!$update_order){
+                Db::rollback();
+                return ['status'=>false,'info'=>'鏇存柊璁㈠崟sign閿欒,璁㈠崟ID涓�:'.$order['id']];
+            }
+        }
+        Db::name('user_first_free_browse')->where(['user_id'=>$user['id']])->where('new_goodsId','like','%' . $itemid[1] . '')->update(['tid'=>$trade_id,'is_order'=>1]);
+        Db::commit();
+        return ['status'=>true,'info'=>'棣栧崟鎷嗗垎鎴愬姛'];
+    }
+
 
 } 
\ No newline at end of file

--
Gitblit v1.9.3