/// <summary> /// 添加配置 /// </summary> /// <param name="key">配置key</param> /// <param name="value">配置value</param> /// <param name="description">描述</param> /// <returns></returns> public async Task AddInfoAsync(string key, string value, string description) { var config = new ConfigInfo() { Key = key, Value = value, Description = description, Enable = true }; var old = await PikachuDataContext.ConfigInfos.FirstOrDefaultAsync(u => u.Enable && u.Key.Equals(config.Key, StringComparison.CurrentCultureIgnoreCase)); if (old != null) { old.Value = config.Value; old.UpdateTime = DateTime.Now; } else { config.UpdateTime = DateTime.Now; PikachuDataContext.ConfigInfos.Add(config); } await PikachuDataContext.SaveChangesAsync(); }
/// <summary> /// 删除群转载 /// </summary> /// <param name="fromGroup"></param> /// <param name="targetGroup"></param> /// <param name="dealPerson"></param> /// <returns></returns> public async Task RemoveGroupCopyAsync(string fromGroup, string targetGroup, string dealPerson) { var old = await PikachuDataContext.GroupMsgCopys.FirstOrDefaultAsync(u => u.Person.Equals(dealPerson) && u.FromGroup.Equals(fromGroup) && u.TargetGroup.Equals(targetGroup)); if (old != null) { PikachuDataContext.Entry(old).State = EntityState.Deleted; await PikachuDataContext.SaveChangesAsync(); } }
/// <summary> /// 取消群授权 /// </summary> /// <param name="groupNo"></param> public async Task RemoveGroupAuthAsync(string groupNo) { var old = PikachuDataContext.GroupAuths.FirstOrDefault(u => u.GroupNo.Equals(groupNo)); if (old != null) { old.Enable = false; old.UpdateTime = DateTime.Now; await PikachuDataContext.SaveChangesAsync(); } }
/// <summary> /// 移除配置 /// </summary> /// <param name="key"></param> public async Task RemoveKeyAsync(string key) { var search = PikachuDataContext.ConfigInfos.FirstOrDefault(u => u.Enable && u.Key.Equals(key)); if (search != null) { search.Enable = false; await PikachuDataContext.SaveChangesAsync(); } }
/// <summary> /// 添加成功次数 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <int> AddSuccessCountAsync(int id) { var info = await PikachuDataContext.GroupActivities.FirstOrDefaultAsync(u => u.Id == id); if (info == null) { return(0); } info.SuccessCount++; info.UpdateTime = DateTime.Now; return(await PikachuDataContext.SaveChangesAsync()); }
public Task <int> AddBillAsync(string group, string account, decimal amount, decimal actualAmount, BillTypes type, string desc) { PikachuDataContext.BillFlows.Add(new Data.Pikachu.Models.BillFlow() { Account = account, Amount = amount, ActualAmount = actualAmount, BillType = type, Group = group, Description = desc, Enable = true, }); return(PikachuDataContext.SaveChangesAsync()); }
/// <summary> /// 添加群转载 /// </summary> /// <param name="fromGroup"></param> /// <param name="targetGroup"></param> /// <param name="dealPerson"></param> /// <returns></returns> public async Task AddGroupCopyAsync(string fromGroup, string targetGroup, string dealPerson) { var old = await PikachuDataContext.GroupMsgCopys.FirstOrDefaultAsync(u => u.Person.Equals(dealPerson) && u.FromGroup.Equals(fromGroup) && u.TargetGroup.Equals(targetGroup)); if (old == null) { PikachuDataContext.GroupMsgCopys.Add(new GroupMsgCopy() { FromGroup = fromGroup, TargetGroup = targetGroup, Person = dealPerson }); await PikachuDataContext.SaveChangesAsync(); } }
/// <summary> /// 修改成员账户 /// </summary> /// <param name="group"></param> /// <param name="account"></param> /// <param name="amount"></param> /// <returns></returns> public async Task <int> ChangeAmountAsync(string group, string account, decimal amount) { var memberInfo = await PikachuDataContext.MemberInfos.FirstOrDefaultAsync(u => u.Enable && u.Group == group && u.Account == account); if (memberInfo != null) { memberInfo.Amount += amount; memberInfo.UpdateTime = DateTime.Now; return(await PikachuDataContext.SaveChangesAsync()); } return(0); }
/// <summary> /// 开启活动并返回自增id /// </summary> /// <param name="group">群组</param> /// <param name="type">活动类型</param> /// <param name="endTime">结束时间(预计)</param> /// <returns></returns> public async Task <int> OpenActivityAsync(string group, ActivityTypes type, DateTime endTime) { var info = new GroupActivity() { ActivityStateType = ActivityStateTypes.Open, Group = group, ActivityType = type, PredictEndTime = endTime, }; PikachuDataContext.GroupActivities.Add(info); await PikachuDataContext.SaveChangesAsync(); return(info.Id); }
/// <summary> /// 添加群授权 /// </summary> /// <param name="groupNo"></param> public async Task AddGroupAuthAsync(string groupNo) { var old = PikachuDataContext.GroupAuths.FirstOrDefault(u => u.GroupNo.Equals(groupNo)); if (old != null) { old.Enable = true; old.UpdateTime = DateTime.Now; } else { PikachuDataContext.GroupAuths.Add(new GroupAuth() { GroupNo = groupNo, UpdateTime = DateTime.Now, Enable = true }); ; } await PikachuDataContext.SaveChangesAsync(); }
/// <summary> /// 关闭活动 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <GroupActivity> CloseActivityAsync(int id, string description) { var info = await PikachuDataContext.GroupActivities.FirstOrDefaultAsync(u => u.Id == id); if (info == null || info.ActivityStateType == ActivityStateTypes.Close) { return(info); } if (info.ActivityStateType == ActivityStateTypes.Close) { return(info); } info.ActivityStateType = ActivityStateTypes.Close; info.EndTime = DateTime.Now; info.Description = description; await PikachuDataContext.SaveChangesAsync(); return(info); }
/// <summary> /// 添加配置 [单值] /// </summary> /// <param name="group"></param> /// <param name="account"></param> /// <param name="info"></param> /// <param name="type"></param> /// <returns></returns> public async Task <int> AddSingleInfoAsync(string group, string account, string info, GroupConfigTypes type) { var old = await PikachuDataContext.GroupConfigs.FirstOrDefaultAsync(u => u.Enable && u.GetGroupConfigType == type && u.Group.Equals(group) && u.Account.Equals(account)); if (old != null) { old.Value = info; old.UpdateTime = DateTime.Now; } else { PikachuDataContext.GroupConfigs.Add(new Data.Pikachu.Models.GroupConfig() { Account = account, Group = group, Enable = true, Value = info, GetGroupConfigType = type, }); } return(await PikachuDataContext.SaveChangesAsync()); }
/// <summary> /// 自动关闭活动 /// </summary> /// <returns></returns> public async Task <List <GroupActivity> > AutoCloseAsync() { // 直接sql操作 // PikachuDataContext.Database.Connection.Execute(@" //SELECT ActivityType // FROM activitylogs //WHERE EndTime IS NULL AND PredictEndTime <= NOW() //"); var list = await PikachuDataContext.GroupActivities .Where(u => u.ActivityStateType == ActivityStateTypes.Open && u.PredictEndTime < DateTime.Now) .ToListAsync(); foreach (var item in list) { item.EndTime = DateTime.Now; item.ActivityStateType = ActivityStateTypes.Close; item.Description = "job 自动关闭"; } await PikachuDataContext.SaveChangesAsync(); return(list); }