| | |
| | | */ |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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'=>'无需分销']; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 返利入库和更新 |
| | |
| | | */ |
| | | public function fanliCommission($order) |
| | | { |
| | | |
| | | $trade_id = isset($order['trade_id']) ? $order['trade_id'] : ''; |
| | | if(empty($trade_id)) return ['status'=>false,'info'=>'订单号为空']; |
| | | Db::startTrans(); |
| | |
| | | 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)){ //开始反佣入库 |
| | | 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'=>'首单拆分成功']; |
| | | } |
| | | |
| | | |
| | | } |