model = new ModelTaobaoOrder(); } /** * 淘宝订单入库和更新 * * @return void */ public function fanliOrder($order) { $trade_id = isset($order['trade_id']) ? $order['trade_id'] : ''; if(empty($trade_id)) return ['status'=>false,'info'=>'订单号为空']; Db::startTrans(); $find_order = $this->model->where(['trade_id'=>$trade_id])->find(); $save_order = [ 'tb_paid_time' => isset($order['tb_paid_time']) ? $order['tb_paid_time'] : '', 'tk_paid_time' => isset($order['tk_paid_time']) ? $order['tk_paid_time'] : '', 'pay_price' => isset($order['pay_price']) ? $order['pay_price'] : '', 'pub_share_fee' => isset($order['pub_share_fee']) ? $order['pub_share_fee'] : 0, 'trade_id' => $trade_id, 'tk_order_role' => isset($order['tk_order_role']) ? $order['tk_order_role'] : '', 'tk_earning_time' => isset($order['tk_earning_time']) ? $order['tk_earning_time'] : '', 'adzone_id' => isset($order['adzone_id']) ? $order['adzone_id'] : '', 'pub_share_rate' => isset($order['pub_share_rate']) ? $order['pub_share_rate'] : '', 'refund_tag' => isset($order['refund_tag']) ? $order['refund_tag'] : '', 'subsidy_rate' => isset($order['subsidy_rate']) ? $order['subsidy_rate'] : '', 'tk_total_rate' => isset($order['tk_total_rate']) ? $order['tk_total_rate'] : '', 'item_category_name' => isset($order['item_category_name']) ? $order['item_category_name'] : '', 'seller_nick' => isset($order['seller_nick']) ? $order['seller_nick'] : '', 'pub_id' => isset($order['pub_id']) ? $order['pub_id'] : '', 'alimama_rate' => isset($order['alimama_rate']) ? $order['alimama_rate'] : '', 'subsidy_type' => isset($order['subsidy_type']) ? $order['subsidy_type'] : '', 'item_img' => isset($order['item_img']) ? $order['item_img'] : '', 'pub_share_pre_fee' => isset($order['pub_share_pre_fee']) ? $order['pub_share_pre_fee'] : '', 'alipay_total_price' => isset($order['alipay_total_price']) ? $order['alipay_total_price'] : '', 'item_title' => isset($order['item_title']) ? $order['item_title'] : '', 'site_name' => isset($order['site_name']) ? $order['site_name'] : '', 'item_num' => isset($order['item_num']) ? $order['item_num'] : '', 'subsidy_fee' => isset($order['subsidy_fee']) ? $order['subsidy_fee'] : '', 'alimama_share_fee' => isset($order['alimama_share_fee']) ? $order['alimama_share_fee'] : '', 'trade_parent_id' => isset($order['trade_parent_id']) ? $order['trade_parent_id'] : '', 'order_type' => isset($order['order_type']) ? $order['order_type'] : '', 'tk_create_time' => isset($order['tk_create_time']) ? $order['tk_create_time'] : '', 'flow_source' => isset($order['flow_source']) ? $order['flow_source'] : '', 'terminal_type' => isset($order['terminal_type']) ? $order['terminal_type'] : '', 'click_time' => isset($order['click_time']) ? $order['click_time'] : '', 'tk_status' => isset($order['tk_status']) ? $order['tk_status'] : '', 'item_price' => isset($order['item_price']) ? $order['item_price'] : '', 'item_id' => isset($order['item_id']) ? $order['item_id'] : '', 'adzone_name' => isset($order['adzone_name']) ? $order['adzone_name'] : '', 'total_commission_rate' => isset($order['total_commission_rate']) ? $order['total_commission_rate'] : '', 'item_link' => isset($order['item_link']) ? $order['item_link'] : '', 'site_id' => isset($order['site_id']) ? $order['site_id'] : '', 'seller_shop_title' => isset($order['seller_shop_title']) ? $order['seller_shop_title'] : '', 'income_rate' => isset($order['income_rate']) ? $order['income_rate'] : '', 'total_commission_fee' => isset($order['total_commission_fee']) ? $order['total_commission_fee'] : '', 'tk_commission_pre_fee_for_media_platform' => isset($order['tk_commission_pre_fee_for_media_platform']) ? $order['tk_commission_pre_fee_for_media_platform'] : '', 'tk_commission_fee_for_media_platform' => isset($order['tk_commission_fee_for_media_platform']) ? $order['tk_commission_fee_for_media_platform'] : '', 'tk_commission_rate_for_media_platform' => isset($order['tk_commission_rate_for_media_platform']) ? $order['tk_commission_rate_for_media_platform'] : '', 'special_id' => isset($order['special_id']) ? $order['special_id'] : '', 'relation_id' => isset($order['relation_id']) ? $order['relation_id'] : '', 'deposit_price' => isset($order['deposit_price']) ? $order['deposit_price'] : '', 'tb_deposit_time' => isset($order['tb_deposit_time']) ? $order['tb_deposit_time'] : '', 'tk_deposit_time' => isset($order['tk_deposit_time']) ? $order['tk_deposit_time'] : '', 'alsc_id' => isset($order['alsc_id']) ? $order['alsc_id'] : '', 'alsc_pid' => isset($order['alsc_pid']) ? $order['alsc_pid'] : '', 'tk_share_role_type' => isset($order['tk_share_role_type']) ? $order['tk_share_role_type'] : '', 'share_relative_rate' => isset($order['share_relative_rate']) ? $order['share_relative_rate'] : '', 'share_fee' => isset($order['share_fee']) ? $order['share_fee'] : '', 'share_pre_fee' => isset($order['share_pre_fee']) ? $order['share_pre_fee'] : '', 'deposit_price' => isset($order['deposit_price']) ? $order['deposit_price'] : '', ]; if(empty($find_order)){ $save_order['is_distribution'] = (empty($save_order['relation_id']) || $save_order['tk_status'] == 13) ? 2 : 0; //如果没有渠道关系ID则该订单无须反佣 $save_order['create_time'] = time(); $save_order['one_sign'] = md5($save_order['alipay_total_price'].$order['tk_status']); $save_order['two_sign'] = $save_order['one_sign']; $res = $this->model->insert($save_order); if(!$res){ Db::rollback(); return ['status'=>false,'info'=>'订单添加失败,订单trade_id:'.$trade_id]; } }else{ $two_sign = md5($save_order['alipay_total_price'].$order['tk_status']); if($find_order['one_sign'] != $two_sign){ //订单发生改变,更新订单 $save_order['two_sign'] = $two_sign; $save_order['update_time'] = time(); $res_update = $this->model->where(['trade_id'=> $trade_id])->update($save_order); if(!$res_update){ Db::rollback(); return ['status'=>false,'info'=>'订单更新失败,订单trade_id:'.$trade_id]; } } } Db::commit(); return ['status'=>true,'info'=>'订单逻辑处理完成']; } /** * 拆分订单 * * @return void */ public function chaifenOrder() { $list = $this->model->where(['is_distribution'=>0,'relation_id'=>['neq',''],'tk_paid_time'=>['neq','']])->whereOr("is_distribution = 1 And one_sign != two_sign And relation_id !='' And tk_paid_time !=''")->limit(50)->order('id desc')->select(); if(!empty($list)){ $LogicTbCommission = new LogicTbCommission(); foreach($list as $order){ // $result = $LogicTbCommission->fanliCommission($order); //新加首单返利 $result = $LogicTbCommission->fanliCommissionNew($order); if(!$result){ mylog('订单拆分错误',$result['info'],"errorInfo"); } dump($result); } } return ['status'=>true,'info'=>'拆分逻辑执行完成']; } }