@xw-tech/egg-xw-taobao
Version:
xw专用淘宝联盟cps接口二次业务封装
191 lines • 19.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleItemId = exports.handlePage = exports.handlePwd = exports.wrapIosPwd = exports.parseTbResult = exports.mapNewSearchToOld = void 0;
const dayjs_1 = __importDefault(require("dayjs"));
const findStartFee = (str) => {
const startFee = str.match(/满(\d+\.?\d*)减/);
if (startFee) {
return parseFloat(startFee[1]);
}
return 0;
};
const mapNewSearchToOld = (res, suffix = false) => {
let couponAmount = 0;
let coupon_start_time = null;
let coupon_end_time = null;
let coupon_id = null;
let coupon_start_fee = 0;
let promotion_desc = '';
let coupon_remain_count = 0;
let coupon_total_count = 0;
if (res &&
res.price_promotion_info.final_promotion_path_list &&
res.price_promotion_info.final_promotion_path_list.final_promotion_path_map_data.find(item => item.promotion_title === '商品券' || item.promotion_title === '店铺券')) {
const coupon = res.price_promotion_info.final_promotion_path_list.final_promotion_path_map_data[0];
couponAmount = coupon.promotion_fee;
coupon_start_time = (0, dayjs_1.default)(Number(coupon.promotion_start_time)).format('YYYY-MM-DD HH:mm:ss');
coupon_end_time = (0, dayjs_1.default)(Number(coupon.promotion_end_time)).format('YYYY-MM-DD HH:mm:ss');
coupon_id = coupon.promotion_id;
promotion_desc = coupon.promotion_desc;
coupon_start_fee = findStartFee(coupon.promotion_desc);
coupon_remain_count = 1000;
coupon_total_count = 1000;
}
const itemInfo = res.item_basic_info;
const item = {
commission_rate: Number(res.publish_info.income_info.commission_rate),
coupon_amount: Number(couponAmount),
coupon_end_time,
coupon_start_time,
coupon_id,
coupon_info: promotion_desc,
coupon_remain_count,
coupon_share_url: '',
coupon_start_fee,
coupon_total_count,
item_description: itemInfo.sub_title,
item_id: res.item_id,
item_url: `https://uland.taobao.com/item/edetail?id=${res.item_id}`,
nick: itemInfo.shop_title,
num_iid: res.item_id,
pict_url: itemInfo.pict_url,
seller_id: itemInfo.seller_id,
shop_title: itemInfo.shop_title,
short_title: itemInfo.short_title,
small_images: itemInfo.small_images,
title: itemInfo.title,
url: res.publish_info.coupon_share_url || res.publish_info.click_url,
user_type: itemInfo.user_type,
volume: itemInfo.volume,
white_image: itemInfo.white_image,
zk_final_price: Number(res.price_promotion_info.zk_final_price),
};
if (suffix) {
item.item_id = `${item.item_id}_2`;
item.num_iid = `${item.num_iid}_2`;
}
return item;
};
exports.mapNewSearchToOld = mapNewSearchToOld;
const parseTbResult = (item, rate = 1) => {
const _item = (0, exports.mapNewSearchToOld)(item);
const isMj = _item.coupon_start_fee * 1 > _item.zk_final_price * 1;
const coupon = isMj ? 0 : _item.coupon_amount || 0;
const promotionPrice = Number((Number(_item.zk_final_price - coupon).toFixed(2))) * 1;
const commissionRate = Number(_item.commission_rate);
const couponList = [];
if (_item.coupon_amount) {
couponList.push({
couponUrl: _item.coupon_share_url,
amount: Number(_item.coupon_amount),
quota: Number(_item.coupon_start_fee),
start: _item.coupon_start_time,
end: _item.coupon_end_time,
couponType: 'PROD',
});
}
const res = {
platform: 'TB',
link: _item.item_url,
itemId: _item.item_id,
title: _item.title,
price: Number(_item.zk_final_price),
promotionPrice,
img: 'https:' + _item.pict_url,
shopName: _item.shop_title,
coupon: couponList,
commissionRate,
user_type: _item.user_type,
commission: Number((((promotionPrice * commissionRate) / 100 / 100) * rate).toFixed(2)),
sales: _item.volume,
};
return res;
};
exports.parseTbResult = parseTbResult;
const wrapIosPwd = (pwd, suffix = 'AC01') => {
const pwdNew = pwd.replace(/¥/, '').replace('¥', '');
return `1 (${pwdNew} ${suffix})/`;
};
exports.wrapIosPwd = wrapIosPwd;
const handlePwd = (response) => {
const isValidInfo = response.data.material_url_list && response.data.material_url_list.material_url_list && response.data.material_url_list.material_url_list.length && Object.keys(response.data.material_url_list.material_url_list[0].link_info_dto).length;
if (isValidInfo) {
const parseInfo = response.data.material_url_list.material_url_list[0];
const bestPwd = parseInfo.coupon_info_dto && Object.keys(parseInfo.coupon_info_dto).length ? parseInfo.link_info_dto.coupon_short_tpwd : parseInfo.link_info_dto.cps_short_tpwd;
const bestUrl = parseInfo.coupon_info_dto && Object.keys(parseInfo.coupon_info_dto).length ? parseInfo.link_info_dto.coupon_long_url : parseInfo.link_info_dto.cps_long_url;
const res = {
coupon: parseInfo.coupon_info_dto,
commission: parseInfo.promotion_info_dto,
info: {
pwd: (0, exports.wrapIosPwd)(bestPwd),
url: bestUrl,
tk_biz_type: parseInfo.link_info_dto.tk_biz_type,
material_id: parseInfo.link_info_dto.material_id,
material_type: parseInfo.link_info_dto.material_type,
originUrl: parseInfo.link_info_dto.tpwd_origin_url,
model: parseInfo.link_info_dto.coupon_short_tpwd || parseInfo.link_info_dto.cps_short_tpwd,
password: parseInfo.link_info_dto.coupon_full_tpwd || parseInfo.link_info_dto.cps_full_tpwd,
short_url: parseInfo.link_info_dto.coupon_short_url || parseInfo.link_info_dto.cps_short_url,
click_url: parseInfo.link_info_dto.cps_long_url,
},
};
if (parseInfo.link_info_dto.material_type === 1 && res.info.originUrl) {
const match = res.info.originUrl.match(/activityId=([\w\d]+?)(?:$|\b|\s|&)/);
if (match) {
res.info.activity_id = match[1];
}
}
return res;
}
throw new Error(response.data.material_url_list.material_url_list[0].msg);
};
exports.handlePwd = handlePwd;
const handlePage = (response) => {
const isValidInfo = response.data.event_url_list && response.data.event_url_list.event_url_list && response.data.event_url_list.event_url_list.length && Object.keys(response.data.event_url_list.event_url_list[0].link_info_dto).length;
if (isValidInfo) {
const parseInfo = response.data.event_url_list.event_url_list[0];
const res = {
info: {
pwd: (0, exports.wrapIosPwd)(parseInfo.link_info_dto.cps_short_tpwd),
url: parseInfo.link_info_dto.cps_short_url,
cps_long_url: parseInfo.link_info_dto.cps_long_url,
material_type: parseInfo.link_info_dto.material_type,
},
};
return res;
}
throw new Error(response.data.event_url_list.event_url_list[0].msg);
};
exports.handlePage = handlePage;
const handleItemId = (response) => {
const isValidInfo = response.data.item_url_list &&
response.data.item_url_list.item_url_list &&
response.data.item_url_list.item_url_list.length &&
Object.keys(response.data.item_url_list.item_url_list[0].link_info_dto).length;
if (isValidInfo) {
const parseInfo = response.data.item_url_list.item_url_list[0];
const link_info_dto = parseInfo.link_info_dto;
const rate = parseInfo.promotion_info_dto ? parseInfo.promotion_info_dto.commission_rate : '0';
const res = {
coupon: parseInfo.coupon_info_dto,
commission: parseInfo.promotion_info_dto,
info: {
coupon_click_url: link_info_dto.coupon_long_url,
item_id: link_info_dto.item_id,
item_url: link_info_dto.cps_long_url,
max_commission_rate: rate,
min_commission_rate: rate,
coupon_short_tpwd: (0, exports.wrapIosPwd)(link_info_dto.coupon_short_tpwd),
cps_short_tpwd: (0, exports.wrapIosPwd)(link_info_dto.cps_short_tpwd),
material_type: link_info_dto.material_type,
},
};
return res;
}
throw new Error(response.data.item_url_list.item_url_list[0].msg);
};
exports.handleItemId = handleItemId;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBRTFCLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsRUFBRTtRQUNaLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2hDO0lBQ0QsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUM7QUFDSyxNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBZSxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsRUFBRTtJQUNuRSxJQUFJLFlBQVksR0FBb0IsQ0FBQyxDQUFDO0lBQ3RDLElBQUksaUJBQWlCLEdBQWtCLElBQUksQ0FBQztJQUM1QyxJQUFJLGVBQWUsR0FBa0IsSUFBSSxDQUFDO0lBQzFDLElBQUksU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDcEMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDekIsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLElBQ0UsR0FBRztRQUNILEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUI7UUFDbEQsR0FBRyxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSyxDQUFDLEVBQy9KO1FBQ0EsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLDZCQUE2QixD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