Untitled
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();
Leave a Comment