Skip to content

Commit

Permalink
feature: update vip type to enum and check status when tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
RayWangQvQ committed Aug 25, 2022
1 parent f1ab2b0 commit 3764f80
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 20 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,5 @@
- 合并PR(#256),重构docker运行是cron构建方式,并优化读取环境变量的方式(@syrinka
- Feature(#65):新增TG推送配置并使用代理功能
- Feature(#240):新增gotify推送
- Feature(#259):大会员状态改为枚举类型,当非会员时自动跳过大积分任务
- Feature:更新、优化docker部署文档
10 changes: 5 additions & 5 deletions src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/UserInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ public class UserInfo
/// 会员状态
/// <para>只有VipStatus为1的时候获取到VipType才是有效的</para>
/// </summary>
public int VipStatus { get; set; }
public VipStatus VipStatus { get; set; }

public int VipType { get; set; }//todo:是否可以改为枚举
public VipType VipType { get; set; }

/// <summary>
/// 获取隐私处理后的用户名
Expand Down Expand Up @@ -62,16 +62,16 @@ public string GetFuzzyUname()
/// <para>1:月会员</para>
/// <para>2:年会员</para>
/// </returns>
public int GetVipType()
public VipType GetVipType()
{
if (VipStatus == 1)
if (VipStatus == VipStatus.Enable)
{
//只有VipStatus为1的时候获取到VipType才是有效的。
return VipType;
}
else
{
return 0;
return VipType.None;
}
}
}
Expand Down
13 changes: 13 additions & 0 deletions src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/VipStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System.ComponentModel;

namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos
{
public enum VipStatus
{
[Description("无/过期")]
Disable = 0,

[Description("正常")]
Enable = 1,
}
}
21 changes: 21 additions & 0 deletions src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/VipType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos
{
public enum VipType
{
[Description("无")]
None = 0,

[Description("月度大会员")]
Mensual = 1,

[Description("年度大会员")]
Annual = 2
}
}
16 changes: 10 additions & 6 deletions src/Ray.BiliBiliTool.Application/VipBigPointAppService.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
using System;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Ray.BiliBiliTool.Agent;
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos;
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos.VipTask;
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Interfaces;
using Ray.BiliBiliTool.Application.Attributes;
using Ray.BiliBiliTool.Application.Contracts;
using Ray.BiliBiliTool.Config.Options;
using Ray.BiliBiliTool.DomainService.Interfaces;

namespace Ray.BiliBiliTool.Application
Expand Down Expand Up @@ -39,7 +35,13 @@ IAccountDomainService loginDomainService
[TaskInterceptor("大会员大积分", TaskLevel.One)]
public override void DoTask()
{
GetUserInfo();
var ui = GetUserInfo();

if (ui.GetVipType() == VipType.None)
{
_logger.LogInformation("当前不是大会员或已过期,跳过任务");
return;
}

var re = _vipApi.GetTaskList().Result;

Expand Down Expand Up @@ -80,10 +82,12 @@ public override void DoTask()
}

[TaskInterceptor("测试Cookie")]
private void GetUserInfo()
private UserInfo GetUserInfo()
{
UserInfo userInfo = _loginDomainService.LoginByCookie();
if (userInfo == null) throw new Exception("登录失败,请检查Cookie");//终止流程

return userInfo;
}

[TaskInterceptor("签到", TaskLevel.Two, false)]
Expand Down
8 changes: 5 additions & 3 deletions src/Ray.BiliBiliTool.DomainService/AccountDomainService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,14 @@ public UserInfo LoginByCookie()
//获取到UserId
_cookie.UserId = useInfo.Mid.ToString();

_logger.LogInformation("【用户名】 {0}", useInfo.GetFuzzyUname());
_logger.LogInformation("【硬币余额】 {0}", useInfo.Money ?? 0);
_logger.LogInformation("【用户名】{0}", useInfo.GetFuzzyUname());
_logger.LogInformation("【会员类型】{0}", useInfo.VipType.Description());
_logger.LogInformation("【会员状态】{0}", useInfo.VipStatus.Description());
_logger.LogInformation("【硬币余额】{0}", useInfo.Money ?? 0);

if (useInfo.Level_info.Current_level < 6)
{
_logger.LogInformation("【距升级 Lv{0}】 {1}天(如每日做满65点经验)",
_logger.LogInformation("【距升级Lv{0}】{1}天(如每日做满65点经验)",
useInfo.Level_info.Current_level + 1,
(useInfo.Level_info.GetNext_expLong() - useInfo.Level_info.Current_exp) / Constants.EveryDayExp);
}
Expand Down
4 changes: 2 additions & 2 deletions src/Ray.BiliBiliTool.DomainService/ChargeDomainService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ public void Charge(UserInfo userInfo)
}

//大会员类型
int vipType = userInfo.GetVipType();
if (vipType != 2)
VipType vipType = userInfo.GetVipType();
if (vipType != VipType.Annual)
{
_logger.LogInformation("不是年度大会员,跳过");
return;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Ray.BiliBiliTool.Agent;
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos;
Expand Down Expand Up @@ -47,8 +46,8 @@ public bool ReceiveVipPrivilege(UserInfo userInfo)
}

//大会员类型
int vipType = userInfo.GetVipType();
if (vipType != 2)
VipType vipType = userInfo.GetVipType();
if (vipType != VipType.Annual)
{
_logger.LogInformation("普通会员和月度大会员每月不赠送B币券,不需要领取权益喽");
return false;
Expand Down

0 comments on commit 3764f80

Please sign in to comment.