//进去签到 public static async Task <bool> UserTodaySingIn(this SingInActivityComponent singInActivityComponent, long userId) { List <UserSingInState> userSingInStates = await singInActivityComponent.dbProxyComponent.Query <UserSingInState>(userSingInState => userSingInState.UserId == userId); if (userSingInStates.Count > 0) { if (userSingInStates[0].SingInTime != 0 && TimeTool.TimeStampIsToday(userSingInStates[0].SingInTime)) { return(false); } } UserSingInState sueSingInState = ComponentFactory.CreateWithId <UserSingInState>(userId); sueSingInState.SingInTime = TimeTool.GetCurrenTimeStamp(); sueSingInState.UserId = userId; sueSingInState.SingInDays = 1; if (userSingInStates.Count > 0) { sueSingInState.SingInDays = userSingInStates[0].SingInDays + 1; } await singInActivityComponent.SendUserGetGoods(userId, sueSingInState.SingInDays); await singInActivityComponent.dbProxyComponent.Save(sueSingInState); return(true); }
//获取玩家签到信息 public static async Task <UserSingInState> GetUserSingInState(this SingInActivityComponent singInActivityComponent, long userId) { List <UserSingInState> userSingInStates = await singInActivityComponent.dbProxyComponent.Query <UserSingInState>(userSingInState => userSingInState.UserId == userId); if (userSingInStates.Count > 0) { return(userSingInStates[0]); } return(null); }
//每周刷新一次 public static async void WeekRefreshSingState(this SingInActivityComponent singInActivityComponent) { List <UserSingInState> userSingInStates = await singInActivityComponent.dbProxyComponent.Query <UserSingInState>(state => true); for (int i = 0; i < userSingInStates.Count; i++) { userSingInStates[i].SingInDays = 0;//所有人签到的天 都被置为0 } await singInActivityComponent.dbProxyComponent.Save(userSingInStates); }
//获得签到奖励列表 public static List <SignInAward> GetSignInAwardList(this SingInActivityComponent singInActivityComponent) { return(singInActivityComponent.mSignInAwardList); }
//发送玩家获得物品的信息 public static async Task SendUserGetGoods(this SingInActivityComponent singInActivityComponent, long userId, int singInDays) { SignInAward signInAward = singInActivityComponent.mSignInAwardList[singInDays - 1]; await UserHelp.GoodsChange(userId, signInAward.GoodsId, signInAward.Amount, GoodsChangeType.SignIn, true); }