2026-07-27 11:28:33 +08:00

114 lines
3.3 KiB
JavaScript

const dayjs = require("dayjs");
const bignumber = require('bignumber.js');
exports.formatFengniaoOrderData = function (order, pickupCode) {
const goods_count = order.drugs.reduce((count, item) => {
return count + item.quantity;
}, 0)
const goods_total_amount_cent = order.drugs.reduce((total, item) => {
return total.plus(item.totalPrice * 100);
}, new bignumber(0))
return {
partner_order_code: order.orderNo,
receiver_primary_phone: order.receivePhone,
goods_count,
out_shop_code: process.env.CONFIG_FENGNIAO_OUT_SHOP_CODE,
receiver_latitude: order.receiveLatitude,
goods_total_amount_cent: goods_total_amount_cent,
receiver_name: order.receiveName,
goods_weight: 1,
goods_item_list: order.drugs.map((med) => ({
item_actual_amount_cent: med.totalPrice * 100,
item_amount_cent: med.totalPrice * 100,
item_name: med.drugName,
item_quantity: med.quantity,
})),
serial_number: pickupCode,
goods_actual_amount_cent: goods_total_amount_cent,
receiver_longitude: order.receiveLongitude,
receiver_address: `${order.receiveRegion.join('')}${order.receiveAddress}`,
}
}
exports.formatEMSOrderData = function (order) {
return [
{
createdTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
ecommerceUserId: "ZYTZYY",
senderNo: process.env.CONFIG_EMS_SENDER_NO,
logisticsOrderNo: order.orderNo,
batchNo: "1",
waybillNo: "",
oneBillFlag: "0",
oneBillNum: "1",
submailNo: "",
oneBillFeeType: "1",
contentsAttribute: "3",
productType: "1",
bizProductNo: "1",
weight: "",//500
volume: "",//200
length: "",//
width: "",//
height: "",
postageTotal: "",//
pickupNotes: "",
insuranceFlag: "1",
insuranceAmount: "",
paymentMode: "1",
codFlag: "9",
codAmount: "",
sender: {
name: "震元堂中医院",
postCode: "",
phone: "",
mobile: "15957525904",
prov: "浙江省",
city: "绍兴市",
county: "越城区",
address: "胜利西路657号主楼3层"
},
receiver: {
name: order.receiveName,
postCode: "",
phone: order.receivePhone,
mobile: order.receivePhone,
prov: order.receiveRegion[0],
city: order.receiveRegion[1],
county: order.receiveRegion[2],
address: order.receiveAddress
},
cargos: order.drugs.map((med) => ({
cargoName: med.drugName,
cargoCategory: "",
cargoQuantity: med.quantity,
cargoValue: med.price,
cargoWeight: "",
})),
}
]
}
exports.formatEMSOrderData1 = function (order) {
const paymentAmount = order.drugs.reduce((total, item) => {
return total.plus(item.totalPrice);
}, new bignumber(0))
return {
uleShareUserId: process.env.CONFIG_EMS_SHARE_USER_ID,
merchatOrderNo: order.orderNo,
paymentAmount,
orderCreateTime: dayjs().format('YYYYMMDDHHmmss'),
paymentTime: dayjs().format('YYYYMMDDHHmmss'),
logisticsOrder: `${order.receiveRegion.join('')}${order.receiveAddress}`,
customerName: order.receiveName,
customerMobile: order.receivePhone,
items: [
...order.drugs.map(i => ({
itemId: i.chargeCode,
itemName: i.drugName,
itemPrice: i.price,
buyNum: i.quantity
}))
]
}
}