zhaojs
2023-06-29 c6aed7b39a4e95a25e5bcac47a55ac98cb222b49
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<?php
namespace app\api\logic\taoke;
 
use app\common\exception\ApiException;
use app\common\logic\Basic as BasicLogic;
use think\Hook;
use app\api\logic\UserCollect;
use app\api\logic\User as LogicUser;
use app\common\model\UserLevel as ModelUserLevel;
 
class Parser extends BasicLogic
{
    //TODO 检查所有接口是不是有调整的,需要传代理的相应字段
 
    /**
     * 解析的商品url
     * @var
     */
    protected $url;
 
    const provider = ['tb','tm','jd','vip','pdd','suning','dy'];
 
    protected static $userRate = 0; //用户反佣比例
 
    protected static $topFanliRate = 0; //顶级等级自购返利比例
 
    protected static $topLevelName = ""; //顶级等级名称
 
 
    public function __construct(){
        $level = 1;
        if(defined("USERID") && !empty(USERID)){
            $LogicUser = new LogicUser();
            $user = $LogicUser->getUser(USERID);
            if(!empty($user)){
                $level = (config('site.agent_mode') == 1 && $user['level'] == 0) ? 1 : $user['level'];
            } 
        }
        $ModelUserLevel = new ModelUserLevel();
        $leveInfo = $ModelUserLevel->where(['level'=>$level])->find();
        if(empty($leveInfo)) fault('代理配置失败');
        self::$userRate = $leveInfo['own_commission_rate'] * 0.01;
        $topLevelInfo = $ModelUserLevel->where(['level'=>3])->find();
        if(empty($topLevelInfo)) fault('代理配置失败');
        self::$topFanliRate = $topLevelInfo['own_commission_rate'] * 0.01;
        self::$topLevelName = $topLevelInfo['level_name'];
    }
 
 
    /**
     * 统一字段
     *
     * @return void
     */
    public static function goodsField()
    {
        return [
            'id' => '',                 //商品id,若查询结果id=-1,则说明该商品非大淘客平台商品,数据为淘宝直接返回的数据,由于淘宝数据的缓存时间相对较长,会出现商品信息和详情信息不一致的情况
            'goodsId' => '',            //淘宝商品id
            'itemLink' => '',           //商品链接
            'title' => '',              //商品标题
            "dtitle" => '',             //短标题  
            "actualPrice"=> "",         //券后价
            "originalPrice"=> "",       //商品原价
            "shopName"=> "",            //店铺名称
            "couponPrice"=> "",         //优惠券金额
            "monthSales"=> "",          //30天销量
            "mainPic" => "",            //商品主图
            "imgs" => [],               //商品轮播图  
            "detailPics" => [],         //商品详情图   
            "reimgs" => [],             //相关商品图   
            "video"=> '',               //商品视频
            'couponLink' => '',         //优惠券链接
            'couponEndTime' => '',      //优惠券结束时间
            'couponStartTime' =>'',     //优惠券开始时间    
            'shopType' => '',           //店铺类型,
            'couponInfo' => '',         //商品折扣信息
            'sourceType' => '',           //商品来源
            'faction' => 't',            //派系,默认淘系
            'url_type' => "3",          //商品详情,
            'isCollect' => 0,            //是否收藏
            'topLevelName' => self::$topLevelName,  //顶级等级名称
        ];
    }
 
 /***
  * 疯抢榜数据字段
  */
 
    public static function FqgoodsField()
    {
        return [
            'dtitle' => '',                 //商品title
            'goodsSign' => '',
            'goods_sign'=>'',
            'goodsid' => '',
            'goodsId'=>'',
            'huodongType' => '', 
            'id' => '', 
            'jiage' => '', 
            'mallDesc' => '', 
            'pic' => '', 
            'quanId' => '', 
            'quanJine' => '', 
            'quanNum' => '', 
            'quanOver' => '', 
            'reachPrice' => '', 
            'renqi' => '', 
            'salesNum' => '', 
            'xiaoliang' => '',       
            'yongjin' => '',
            'yuanjia' => '',
            'fanli' => '',
            'topFanli' => '',
            'sourceType'=>''
        ];
    }
 
 
    /**
     * 根据来源返回对应的图标
     */
    public static function initSourse($sourceType)
    {
        $img_arr = [
            'tb' => request()->domain().'/assets/img/tbtips.png',
            'tm' => request()->domain().'/assets/img/tmtips.png',
            'tminte' => request()->domain().'/assets/img/tmtips.png',
            'tmshop' => request()->domain().'/assets/img/tmtips.png',
            'pdd' => request()->domain().'/assets/img/pddtips.png',
            'jd' => request()->domain().'/assets/img/jdtips.png',
            'wph' => request()->domain().'/assets/img/vipicon.png',
            'dy' => request()->domain().'/assets/img/dyicon.png'
        ];
        return isset($img_arr[$sourceType]) ? $img_arr[$sourceType] : '';
        
    }
 
 
 
    /**
     * 判断是否收藏
     */
    public static function isCollect($goods)
    {
        return UserCollect::isCollect($goods);
    }
 
 
    /**
     * 转链默认返回值
     *
     * @return void
     */
    public static function unionField()
    {
        return [
            'h5' => '',           //推广短链接
            'we_app_info' => [], //小程序信息
            'act_name' => '', //活动名称
            'long_h5' => '', //推广长链接
            'deeplink' => ''
        ];
    }
 
 
    /**
     * 统一记录浏览记录
     *
     * @return void
     */
    public static function browseLog($goods = [])
    {
        if(USERID == "" || empty($goods)) return true;
 
        $goods['user_id'] = USERID;
 
        Hook::listen('browse',$goods);
    }
 
 
 
    /**
     * 计算商品展示返利金额
     *
     * @param [type] $price
     * @param [type] $commissionRate
     * @return void
     */
    public static function rebate($price,$commissionRate,$otherRate = "")
    {
        if(empty($price) || empty($commissionRate) || self::$userRate == 0) return 0;
        $otherRate = empty($otherRate) ? self::$userRate : $otherRate;
        $commissionRate = $commissionRate >= 1 ? $commissionRate/100 : $commissionRate;
        $money = $price * $commissionRate * $otherRate;
        return intval($money*100)/100;
    }
    
 
}