()
| 389 | } |
| 390 | |
| 391 | async run() { |
| 392 | const result = { |
| 393 | appName: this.app.name, |
| 394 | shopName: this.shop.shopName, |
| 395 | loginShopName: "", |
| 396 | member: false, |
| 397 | memberText: "", |
| 398 | assets: { coin: 0, integral: 0, ticket: 0, coupon: 0 }, |
| 399 | sign: "未执行", |
| 400 | }; |
| 401 | |
| 402 | const cached = this.getCachedToken(); |
| 403 | if (cached) { |
| 404 | this.token = cached.token || ""; |
| 405 | this.isMember = !!cached.isMember; |
| 406 | this.member = cached.member || null; |
| 407 | this.loginShopName = cached.shopName || ""; |
| 408 | $.log(`${this.prefix()} 使用缓存token ${shortToken(this.token)}`); |
| 409 | if (!(await this.checkToken())) { |
| 410 | this.clearToken(); |
| 411 | $.log(`${this.prefix()} 缓存token失效,重新登录`); |
| 412 | } |
| 413 | } |
| 414 | |
| 415 | if (!this.token) await this.login(); |
| 416 | if (!this.token) { |
| 417 | result.sign = "登录失败"; |
| 418 | $.log(`${this.prefix()} 结果=${result.sign}`); |
| 419 | return result; |
| 420 | } |
| 421 | |
| 422 | const memberText = this.member |
| 423 | ? `${this.member.nickName || this.member.name || this.member.memberName || "member"}${this.member.phone ? ` ${maskPhone(this.member.phone)}` : ""}` |
| 424 | : "非会员"; |
| 425 | const assets = this.isMember ? await this.getAssets() : result.assets; |
| 426 | result.loginShopName = this.loginShopName || this.shop.shopName; |
| 427 | result.member = this.isMember; |
| 428 | result.memberText = memberText; |
| 429 | result.assets = assets; |
| 430 | |
| 431 | $.log( |
| 432 | `${this.prefix()} 查询: 登录门店=${result.loginShopName} member=${this.isMember} ${memberText} 代币=${assets.coin} 积分=${assets.integral} 彩票=${assets.ticket} 优惠券=${assets.coupon}` |
| 433 | ); |
| 434 | |
| 435 | if (!this.isMember) { |
| 436 | result.sign = "非会员跳过"; |
| 437 | $.log(`${this.prefix()} 签到: ${result.sign}`); |
| 438 | return result; |
| 439 | } |
| 440 | |
| 441 | result.sign = await this.sign(); |
| 442 | $.log(`${this.prefix()} 签到: ${result.sign}`); |
| 443 | return result; |
| 444 | } |
| 445 | |
| 446 | async checkToken() { |
| 447 | try { |
no test coverage detected