UNPKG

@xw-tech/egg-xw-taobao

Version:

xw专用淘宝联盟cps接口二次业务封装

191 lines 19.1 kB
"use strict"; 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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