zhaojs
2023-07-12 87940848162256b5adaa125408b297dba3e8691b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?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'=>'拆分逻辑执行完成'];
    }