<?php
|
namespace app\api\logic\order;
|
|
use think\Db;
|
use app\common\logic\Basic as BasicLogic;
|
use app\common\model\order\TaobaoOrder as ModelTaobaoOrder;
|
use app\api\logic\commission\Tb as LogicTbCommission;
|
|
class TbOrder extends BasicLogic
|
{
|
protected $model;
|
|
protected static $userRate = 0; //用户反佣比例
|
|
|
public function __construct(){
|
$this->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'=>'拆分逻辑执行完成'];
|
}
|
|
}
|