<?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;
|
}
|
|
|
}
|