zhaojs
2023-07-20 ff42a171ae5ef8e3143b42d6af33ffdf606a3a80
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
<?php
namespace app\api\logic\order;
 
use think\Db;
use app\common\logic\Basic as BasicLogic;
use app\common\model\order\JdOrder as ModelJdOrder;
use app\api\logic\commission\Jd as LogicJdCommission;
 
class JdOrder extends BasicLogic
{
    protected $model;
 
    protected static $userRate = 0; //用户反佣比例
 
 
    public function __construct(){
        $this->model = new ModelJdOrder();
    }
 
 
 
    /**
     * 订单入库和更新
     *
     * @return void
     */
    public function fanliOrder($order)
    {
        $order_row_id = isset($order['id']) ? $order['id'] : '';
        if(empty($order_row_id)) return ['status'=>false,'info'=>'订单号为空'];
        Db::startTrans();
        $find_order = $this->model->where(['order_row_id'=>$order_row_id])->find();
        $save_order = [
            'order_id' => isset($order['orderId']) ? $order['orderId'] : '',
            'union_id' => isset($order['unionId']) ? $order['unionId'] : '',
            'valid_code' => isset($order['validCode']) ? $order['validCode'] : '',
            'pop_id' => isset($order['vid']) ? $order['vid'] : '',
            'position_id' => isset($order['positionId']) ? $order['positionId'] : '',
            'finish_time' => isset($order['finishTime']) ? $order['finishTime'] : '',
            'order_emt' => isset($order['orderEmt']) ? $order['orderEmt'] : '',
            'order_time' => isset($order['orderTime']) ? $order['orderTime'] : '',
            'pay_month' => isset($order['payMonth']) ? $order['payMonth'] : '',
            'plus' => isset($order['plus']) ? $order['plus'] : '',
            'sku_list' => isset($order['sku_list']) ? ( is_array($order['sku_list']) ? implode(',', $order['sku_list']) : $order['sku_list']) : '',
            'actual_cos_price' => isset($order['actualCosPrice']) ? $order['actualCosPrice'] : '',
            'actual_fee' => isset($order['actualFee']) ? $order['actualFee'] : '',
            'commission_rate' => isset($order['commissionShare']) ? $order['commissionShare'] : '',
            'estimate_cos_price' => isset($order['estimateCosPrice']) ? $order['estimateCosPrice'] : '',
            'estimate_fee' => isset($order['estimateFee']) ? $order['estimateFee'] : '',
            'final_rate' => isset($order['finalRate']) ? $order['finalRate'] : '',
            'sub_side_rate' => isset($order['subSideRate']) ? $order['subSideRate'] : '',
            'sku_id' => isset($order['goods_id']) ? $order['goods_id'] : '',
            'sku_num' => isset($order['skuNum']) ? $order['skuNum'] : '',
            'sku_return_num' => isset($order['skuReturnNum']) ? $order['skuReturnNum'] : '',
            'price' => isset($order['goods_price']) ? $order['goods_price'] : '',
            'sku_name' => isset($order['goods_name']) ? $order['goods_name'] : '',
            'cid1' => isset($order['cid1']) ? $order['cid1'] : '',
            'frozen_sku_num' => isset($order['skuFrozenNum']) ? $order['skuFrozenNum'] : '',
            'pid' => isset($order['pid']) ? $order['pid'] : '',
            'cid2' => isset($order['cid2']) ? $order['cid2'] : '',
            'site_id' => isset($order['siteId']) ? $order['siteId'] : '',
            'subsidy_rate' => isset($order['subsidyRate']) ? $order['subsidyRate'] : '',
            'cid3' => isset($order['cid3']) ? $order['cid3'] : '',
            'union_alias' => isset($order['unionAlias']) ? $order['unionAlias'] : '',
            'union_traffic_group' => isset($order['unionTrafficGroup']) ? $order['unionTrafficGroup'] : '',
            'sub_union_id' => isset($order['subUnionId']) ? $order['subUnionId'] : '',
            'trace_type' => isset($order['traceType']) ? $order['traceType'] : '',
            'ext1' => isset($order['ext1']) ? $order['ext1'] : '',   
            'cp_act_id' => isset($order['cpActId']) ? $order['cpActId'] : '',
            'union_role' => isset($order['unionRole']) ? $order['unionRole'] : '',
            'gift_coupon_key' => isset($order['giftCouponKey']) ? $order['giftCouponKey'] : '',
            'gift_coupon_ocs_amount' => isset($order['giftCouponOcsAmount']) ? $order['giftCouponOcsAmount'] : '',
            'pro_price_amount' => isset($order['proPriceAmount']) ? $order['proPriceAmount'] : '',
            'order_row_id' => $order_row_id,
            'image_url' => isset($order['goodsInfo']['imageUrl']) ? $order['goodsInfo']['imageUrl'] : '',
            'main_sku_id' => isset($order['goodsInfo']['mainSkuId']) ? $order['goodsInfo']['mainSkuId'] : '',
            'owner' => isset($order['goodsInfo']['owner']) ? $order['goodsInfo']['owner'] : '',
            'product_id' => isset($order['goodsInfo']['productId']) ? $order['goodsInfo']['productId'] : '',
            'shop_id' => isset($order['goodsInfo']['shop_id']) ? $order['goodsInfo']['shop_id'] : ''
        ];
        if(empty($find_order)){
            $save_order['tk_z_status'] = 1;
            $save_order['is_distribution'] = (empty($save_order['position_id']) || $save_order['position_id'] == 0) ? 2 : 0; //如果没有渠道关系ID则该订单无须反佣
            $save_order['create_time'] = time();
            $res = $this->model->insert($save_order);
            if(!$res){
                Db::rollback();
                return ['status'=>false,'info'=>'订单添加失败,订单order_row_id:'.$order_row_id];
            }
        }else{
            if($find_order['valid_code'] != $save_order['valid_code']){ //订单发生改变,更新订单
                $save_order['update_time'] = time();
                $save_order['tk_z_status'] = 2;
                $res_update = $this->model->where(['order_row_id'=> $order_row_id])->update($save_order);
                if(!$res_update){
                    Db::rollback();
                    return ['status'=>false,'info'=>'订单更新失败,订单order_row_id:'.$order_row_id];
                }
            }   
        }
        Db::commit();
        return ['status'=>true,'info'=>'订单逻辑处理完成'];
    }
 
 
    /**
     * 拆分订单
     *
     * @return void
     */
    public function chaifenOrder()
    {
        $list = $this->model->where(['is_distribution'=>0,'position_id'=>['neq',''],'position_id'=>['neq',0]])->whereOr("is_distribution = 1 And tk_z_status = 2 And position_id !=''")->limit(20)->order('id desc')->select();
        if(!empty($list)){
            $LogicJdCommission = new LogicJdCommission();
            foreach($list as $order){
               // $result = $LogicJdCommission->fanliCommission($order); 
               $result = $LogicJdCommission->fanliCommissionNew($order); 
                if(!$result){
                    mylog('订单拆分错误',$result['info'],"errorInfo");
                }
            }
        }
        return ['status'=>true,'info'=>'拆分逻辑执行完成'];
    }