/* * @Author: Targaryen * @Date: 2017-06-21 10:15:45 * @Last Modified by: Targaryen */ class BuyNowModel extends global.yoho.BaseModel { constructor(ctx) { super(ctx); } /** * 获取用户可用的优惠券张数 * @param {*} params */ countUsableCoupon(params) { return this.post({ data: { method: 'app.Buynow.countUsableCoupon', uid: params.uid, product_sku: params.product_sku, sku_type: params.sku_type || 'I', buy_number: params.buy_number }, param: { cache: false } }); } /** * 获取用户可用和不可用优惠券列表 * @param {*} params */ listCoupon(params) { return this.post({ data: { method: 'app.Buynow.listCoupon', uid: params.uid, product_sku: params.product_sku, sku_type: params.sku_type || 'I', buy_number: params.buy_number, is_group_frees: params.is_group_frees, delivery_way: params.delivery_way }, param: {cache: false} }); } /** * 结算页面数据渲染 * @param {*} params */ payment(params) { let finalParams = { data: { method: 'app.Buynow.payment', uid: params.uid, product_sku: params.product_sku, sku_type: params.sku_type || 'I', buy_number: params.buy_number, yoho_coin_mode: params.yoho_coin_mode || 0, // 是否使用有货币 yoho_bill_term: 0, // H5 不支持分期 is_support_apple_pay: 'N', // H5 不支持 APPLE PAY activity_id: params.activity_id || 0, enable_red_envelopes: 0 // H5 不支持使用红包 }, param: { cache: false } }; return this.post(finalParams); } /** * 数据改变,重新计算结算数据 * @param {*} params */ compute(params) { let finalParams = { method: 'app.Buynow.compute', uid: params.uid, product_sku: params.product_sku, sku_type: params.sku_type || 'I', buy_number: params.buy_number, payment_type: params.payment_type || 1, delivery_way: params.delivery_way || 1, use_red_envelopes: 0, yoho_bill_term: 0, activity_id: params.activity_id || 0 }; // 有货币 if (params.use_yoho_coin) { finalParams.use_yoho_coin = params.use_yoho_coin; } // 优惠券 if (params.coupon_code) { finalParams.coupon_code = params.coupon_code; } // 优惠码 if (params.promotion_code) { finalParams.promotion_code = params.promotion_code; } // 礼品卡 if (params.gift_card_code) { finalParams.gift_card_code = params.gift_card_code; } if (params.coupon_code) { finalParams.coupon_code = params.coupon_code; } return this.post({ data: finalParams, param: { cache: false } }); } /** * 提交订单 * @param {*} params */ submit(params) { if (!params.address_id) { return Promise.resolve({ code: 401, message: '配送地址不能为空' }); } if (!params.delivery_time) { return Promise.resolve({ code: 402, message: '请选择配送时间' }); } if (!params.delivery_way) { return Promise.resolve({ code: 403, message: '请选择配送方式' }); } let finalParams = { method: 'app.Buynow.submit', uid: params.uid, udid: params.udid, product_sku: params.product_sku, sku_type: params.sku_type || 'I', buy_number: params.buy_number, yoho_bill_term: 0, address_id: params.address_id, delivery_time: params.delivery_time, delivery_way: params.delivery_way, use_red_envelopes: 0, payment_id: params.payment_id, payment_type: params.payment_type || 1, activity_id: params.activity_id || 0, is_print_price: params.is_print_price || 'N' }; // 发票类型:纸质 1,电子 2 if (params.invoices_type) { finalParams.invoices_type = params.invoices_type; } // 发票类型:个人 1, 企业 2 if (params.invoice_payable_type) { finalParams.invoice_payable_type = params.invoice_payable_type; } // 发票抬头 if (params.invoices_title) { finalParams.invoices_title = params.invoices_title; } // 发票种类写死明细 if (params.invoice) { finalParams.invoice_content = 12; } // 收票人手机号码 if (params.receiverMobile) { finalParams.receiverMobile = params.receiverMobile; } // 购买方纳税人识别号,需要开具电子发票且发票抬头为单位信息时为必填项 if (params.buyerTaxNumber) { finalParams.buyerTaxNumber = params.buyerTaxNumber; } // 留言 if (params.remark) { finalParams.remark = params.remark; } // 有货币 if (params.use_yoho_coin) { finalParams.use_yoho_coin = params.use_yoho_coin; } // 优惠券 if (params.coupon_code) { finalParams.coupon_code = params.coupon_code; } // 优惠码 if (params.promotion_code) { finalParams.promotion_code = params.promotion_code; } // 礼品卡 if (params.gift_card_code) { finalParams.gift_card_code = params.gift_card_code; } if (params.qhy_union) { finalParams.qhy_union = params.qhy_union; } return this.post({ data: finalParams, param: { headers: { 'X-Forwarded-For': params.ip || '', 'User-Agent': params.userAgent } } }); } /** * 使用优惠券 * @param {*} params */ useCoupon(params) { let finalParams = { method: 'app.Buynow.useCoupon', uid: params.uid, product_sku: params.product_sku, sku_type: params.sku_type || 'I', buy_number: params.buy_number, }; if (params.coupon_code) { finalParams.coupon_code = params.coupon_code; } return this.post({ data: finalParams, param: {cache: false} }); } /** * 使用优惠码 * @param {*} params */ usePromotionCode(params) { let finalParams = { method: 'app.Buynow.usePromotionCode', uid: params.uid, product_sku: params.product_sku, sku_type: params.sku_type || 'I', buy_number: params.buy_number }; if (params.promotion_code) { finalParams.promotion_code = params.promotion_code; } return this.post({ data: finalParams, param: { cache: false } }); } } module.exports = BuyNowModel;