import {JDHelloWorld, User} from "./TS_JDHelloWorld";

class Jd_queryRedpacket extends JDHelloWorld {
  constructor() {
    super();
  }

  async init() {
    await this.run(new Jd_queryRedpacket())
  }

  async main(user: User) {
    let res: any = await this.get(`https://m.jingxi.com/user/info/QueryUserRedEnvelopesV2?type=1&orgFlag=JD_PinGou_New&page=1&cashRedType=1&redBalanceFlag=1&channel=1&_=${Date.now()}&sceneval=2&g_login_type=1&g_ty=ls`, {
      'Host': 'm.jingxi.com',
      'Referer': 'https://st.jingxi.com/my/redpacket.shtml',
      "Cookie": user.cookie,
      'User-Agent': user.UserAgent
    })
    let day: number = new Date().getDay(), jdRed: number = 0, jdRedExp: number = 0
    for (let j of res.data.useRedInfo?.redList || []) {
      if (j.orgLimitStr.includes('京喜')) {
      } else if (j.activityName.includes('极速版')) {
      } else if (j.orgLimitStr.includes('京东健康')) {
      } else {
        jdRed = add(jdRed, j.balance)
        if (new Date(j.endTime * 1000).getDay() === day)
          jdRedExp = add(jdRedExp, j.balance)
      }
    }
    console.log(jdRed, '  今日过期:', jdRedExp)
    let msg = `【账号】  ${user.UserName}\n京东红包  ${jdRed}\n今日过期  ${jdRedExp}\n\n`
    return {
      msg: msg
    }
  }
}

new Jd_queryRedpacket().init().then().catch()

function add(arg1: number, arg2: number) {
  let r1, r2, m
  try {
    r1 = arg1.toString().split('.')[1].length
  } catch (e) {
    r1 = 0
  }
  try {
    r2 = arg2.toString().split('.')[1].length
  } catch (e) {
    r2 = 0
  }
  m = Math.pow(10, Math.max(r1, r2))
  return parseFloat(((arg1 * m + arg2 * m) / m).toFixed(2))
}