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