Untitled
unknown
plain_text
2 years ago
5.5 kB
17
Indexable
var fullCost = 0;
var totalOrders = 0;
var listItem = [];
var offset = 0;
var getDonHang = async ({ offset }) => {
console.log("Đang lấy thêm danh sách đơn hàng .....");
var res = await fetchData({ offset });
var { details_list } = res.data;
var isContinue = details_list.length >= 20;
details_list.forEach((item) => {
var { info_card, shipping } = item;
var { final_total, order_list_cards } = info_card;
fullCost = fullCost + final_total / 100000;
totalOrders += 1;
// console.log("Current cost: ", formatNumber(fullCost));
// console.log("items cost: ", formatNumber(final_total / 100000));
const { tracking_info } = shipping;
order_list_cards.forEach((card) => {
card.product_info.item_groups.forEach((item) => {
item.items.forEach((real) => {
// totalItem += 1;
// if (!Object.keys(max_item).length) max_item = real;
// if (max_item.item_price < real.item_price) max_item = real;
listItem.push({
name: real.name,
amount: real.amount,
item_price: real.item_price / 100000,
model_name: real.model_name,
time: new Date(tracking_info.ctime * 1000),
});
// console.log(
// real.name,
// "->",
// real.model_name,
// ": ",
// formatNumber(real.item_price / 100000),
// " VND"
// );
});
});
});
// console.log("---------------");
});
if (isContinue) {
offset = offset + 20;
getDonHang({ offset });
} else {
console.log(
"%cĐã lấy tất cả đơn hàng, đang tính toán thống kê ...",
"color:green"
);
thongKe({ listItem, fullCost, totalOrders });
}
// } else {
// console.log("Bạn đã tiêu ", formatNumber(fullCost));
// console.log(
// "Bạn đã mua ",
// offset + details_list.length,
// " đơn hàng với ",
// totalItem,
// " vật phẩm"
// );
// console.log(
// "%cĐơn hàng nhiều nhất là ",
// "color:green",
// max_item.name,
// ": ",
// formatNumber(max_item.item_price / 100000),
// " VND"
// );
// }
// return { fullCost, totalOrders: offset + details_list.length, totalItem };
};
var fetchData = async ({ offset = 0 }) => {
var res = await fetch(
`https://shopee.vn/api/v4/order/get_order_list?list_type=3&offset=${offset}`
).then((rs) => rs.json()); // Parse the JSON response
return res;
};
function formatNumber(number) {
number = number.toString(); // Ensure it's a string
const formattedNumber = number.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
return formattedNumber;
}
function top10HighestItems(data) {
// Sort the data by item price in descending order using the spread operator and sort method
const sortedData = [...data].sort((a, b) => b.item_price - a.item_price);
// Return the top 10 items using slice
return sortedData.slice(0, 10);
}
var tongDonHang = (data) => {
var sum = 0;
data.forEach((item) => (sum = sum + item.item_price));
return sum;
};
await getDonHang({ offset });
var thongKe = (stats) => {
const { listItem, fullCost, totalOrders } = stats;
console.log(
`%cBạn đã tiêu tổng cộng: ${formatNumber(fullCost)} VND`,
"color:yellow;font-size:20px"
);
console.log(
`%cBạn đã chốt: ${totalOrders} đơn với ${listItem.length} món`,
"color:green;;font-size:16px"
);
console.log(
`Món hàng gần nhất bạn đã mua là: ${listItem[0].name}: ${formatNumber(
listItem[0].item_price
)} VND`
);
console.log(
`Món hàng đầu tiên bạn đã mua là: ${
listItem[listItem.length - 1].name
}: ${formatNumber(listItem[listItem.length - 1].item_price)} VND`
);
const thisYear = listItem.filter((item) => item.time.getFullYear() === 2024);
console.log(
`%cNăm 2024, bạn đã mua ${thisYear.length} món, tổng cộng: ${formatNumber(
tongDonHang(thisYear)
)} vnd (chi phí thực trả)`,
"color:green;font-size:20px"
);
console.log(
"%c10 món hàng cao tiền nhất là: (chưa gồm voucher, phí vận chuyển)",
"color:#ee4d2d;font-size:16px"
);
top10HighestItems(thisYear).forEach((item) =>
console.log(`- ${item.name}: ${formatNumber(item.item_price)} vnd`)
);
const year2023 = listItem.filter((item) => item.time.getFullYear() === 2023);
console.log(
`%cNăm 2023, bạn đã mua ${year2023.length} món, tổng cộng: ${formatNumber(
tongDonHang(year2023)
)} vnd`,
"color:green;font-size:20px"
);
console.log(
"%c10 món hàng cao tiền nhất là: (chưa gồm voucher, phí vận chuyển)",
"color:#ee4d2d;font-size:16px"
);
top10HighestItems(year2023).forEach((item) =>
console.log(`- ${item.name}: ${formatNumber(item.item_price)} vnd`)
);
const year2022 = listItem.filter((item) => item.time.getFullYear() === 2022);
console.log(
`%cNăm 2022, bạn đã mua ${year2022.length} món, tổng cộng: ${formatNumber(
tongDonHang(year2022)
)} vnd`,
"color:green;font-size:20px"
);
console.log(
"%c10 món hàng cao tiền nhất là: (chưa gồm voucher, phí vận chuyển)",
"color:#ee4d2d;font-size:16px"
);
top10HighestItems(year2022).forEach((item) =>
console.log(`- ${item.name}: ${formatNumber(item.item_price)} vnd`)
);
};
// thongKe();
Editor is loading...
Leave a Comment