@xw-tech/egg-xw-taobao
Version:
xw专用淘宝联盟cps接口二次业务封装
213 lines • 19.7 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,
final_promotion_price: Number(res.price_promotion_info.final_promotion_price || 0),
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 = _item.final_promotion_price
? _item.final_promotion_price
: 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: {
...link_info_dto,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBRTFCLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsRUFBRTtRQUNaLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2hDO0lBQ0QsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUM7QUFDSyxNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBZSxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsRUFBRTtJQUNuRSxJQUFJLFlBQVksR0FBb0IsQ0FBQyxDQUFDO0lBQ3RDLElBQUksaUJBQWlCLEdBQWtCLElBQUksQ0FBQztJQUM1QyxJQUFJLGVBQWUsR0FBa0IsSUFBSSxDQUFDO0lBQzFDLElBQUksU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDcEMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDekIsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLElBQ0UsR0FBRztRQUNILEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUI7UUFDbEQsR0FBRyxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDbkYsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSyxDQUNuRSxFQUNEO1FBQ0EsTUFBTSxNQUFNLEdBQ1YsR0FBRyxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QjthQUMvQyw2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