| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- const axios = require("axios");
- const qs = require("qs");
- const encryptUtil = require("./encryptUtil");
- const fs = require("fs");
- const queue = require("queue");
- const config = require("./config.json");
- axios.defaults.baseURL = config.baseUrl;
- axios.interceptors.request.use(
- function (config) {
- config.metadata = { startTime: new Date() };
- return config;
- },
- function (error) {
- return Promise.reject(error);
- }
- );
- axios.interceptors.response.use(
- function (response) {
- response.config.metadata.endTime = new Date();
- response.duration =
- response.config.metadata.endTime -
- response.config.metadata.startTime;
- return response;
- },
- function (error) {
- error.config.metadata.endTime = new Date();
- error.duration =
- error.config.metadata.endTime - error.config.metadata.startTime;
- return Promise.reject(error);
- }
- );
- axios
- .post("/auth/phonePwdLogin", qs.stringify(config.user))
- .then((res) => {
- axios.defaults.headers["Authorization"] = "Bearer " + res.data;
- start();
- })
- .catch((e) => {
- console.log(e.response);
- });
- let orders = [];
- const queryResult = (id, i, cb) => {
- if (i > 30) {
- cb();
- } else {
- axios
- .get("/order/createResult?id=" + id)
- .then((res) => {
- if (res.data) {
- cb(null, res.data.data.id);
- console.log(res.data.data.id);
- } else {
- setTimeout(() => {
- queryResult(id, ++i, cb);
- }, 1000);
- }
- })
- .catch((e) => {
- setTimeout(() => {
- queryResult(id, ++i, cb);
- }, 1000);
- });
- }
- };
- function start() {
- const q = queue({ results: [], concurrency: 3000 });
- for (let i = 0; i < 3000; i++) {
- q.push((cb) => {
- let params = {
- collectionId: config.collectionId,
- qty: 1,
- couponId: "",
- invitor: "",
- };
- params.sign = encryptUtil.encrypt(
- qs.stringify({ ...params, ts: new Date().getTime() })
- );
- axios
- .post("/order/mqCreate", qs.stringify(params))
- .then((res) => {
- queryResult(res.data.id, 0, cb);
- })
- .catch((e) => {
- cb();
- });
- });
- }
-
- q.start((err) => {
- console.log("all done", q.results);
- console.log(
- "count: " + q.results.map((i) => i[0]).filter((i) => !!i).length
- );
- fs.writeFileSync(
- "orders.json",
- JSON.stringify(
- q.results.map((i) => i[0]).filter((i) => !!i),
- null,
- 4
- )
- );
- });
- }
|