/// <summary> /// 获取成员信息 /// </summary> /// <param name="group">群号</param> /// <param name="account">成员账号</param> /// <returns></returns> public MemberInfo GetInfo(string group, string account) { var memberInfo = PikachuDataContext.MemberInfos.FirstOrDefault(u => u.Enable && u.Group == group && u.Account == account); if (memberInfo == null) { var list = PikachuDataContext.BillFlows.Where(u => u.Enable && u.Group == group && u.Account == account); decimal amount = list.Where(u => u.Enable && u.BillType == Data.Pikachu.Menu.BillTypes.Sign) .Sum(u => u.ActualAmount) - list.Where(u => u.BillType == Data.Pikachu.Menu.BillTypes.Consume) .Sum(u => u.ActualAmount); memberInfo = new MemberInfo() { Account = account, Group = group, Amount = amount, }; PikachuDataContext.MemberInfos.Add(memberInfo); PikachuDataContext.SaveChanges(); } return(memberInfo); }
public static void TestDb() { PikachuDataContext context = new PikachuDataContext(); context.Database.CreateIfNotExists(); var dbCommand = context.Database.Connection.CreateCommand(); context.SaveChanges(); }
public void RemoveGroupCopy(string fromGroup, string targetGroup, string dealPerson, out string msg) { var old = PikachuDataContext.GroupMsgCopys.FirstOrDefault(u => u.Person.Equals(dealPerson) && u.FromGroup.Equals(fromGroup) && u.TargetGroup.Equals(targetGroup)); PikachuDataContext.Entry(old).State = System.Data.Entity.EntityState.Deleted; PikachuDataContext.SaveChanges(); msg = "删除转载成功!"; }
public void RemoveGroupAuth(string groupNo, out string msg) { var old = PikachuDataContext.GroupAuths.FirstOrDefault(u => u.GroupNo.Equals(groupNo)); if (old != null) { old.Enable = false; old.UpdateTime = DateTime.Now; PikachuDataContext.SaveChanges(); } msg = "取消授权成功!"; }
/// <summary> /// 移除配置 /// </summary> /// <param name="key"></param> /// <param name="msg"></param> public void RemoveKey(string key, out string msg) { var search = PikachuDataContext.ConfigInfos.FirstOrDefault(u => u.Enable && u.Key.Equals(key)); if (search != null) { search.Enable = false; PikachuDataContext.SaveChanges(); } msg = "删除成功"; }
public int ChangeAmount(string group, string account, decimal amount) { var memberInfo = PikachuDataContext.MemberInfos.FirstOrDefault(u => u.Enable && u.Group == group && u.Account == account); if (memberInfo != null) { memberInfo.Amount += amount; return(PikachuDataContext.SaveChanges()); } return(0); }
/// <summary> /// 添加失败次数 /// </summary> /// <param name="id"></param> /// <returns></returns> public int AddFailureCount(int id) { var info = PikachuDataContext.GroupActivities.FirstOrDefault(u => u.Id == id); if (info == null) { return(0); } info.FailureCount++; info.UpdateTime = DateTime.Now; return(PikachuDataContext.SaveChanges()); }
public int AddBill(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.SaveChanges()); }
/// <summary> /// 开启活动并返回自增id /// </summary> /// <param name="group">群组</param> /// <param name="type">活动类型</param> /// <param name="endTime">结束时间(预计)</param> /// <returns></returns> public int OpenActivity(string group, ActivityTypes type, DateTime endTime) { var info = new Data.Pikachu.Models.GroupActivity() { ActivityStateType = ActivityStateTypes.Open, Group = group, ActivityType = type, PredictEndTime = endTime, }; PikachuDataContext.GroupActivities.Add(info); PikachuDataContext.SaveChanges(); return(info.Id); }
/// <summary> /// 添加配置 /// </summary> /// <param name="input"></param> /// <param name="msg"></param> public void AddInfo(string input, out string msg) { var info = input.Split('|'); if (info.Length == 3) { if (!string.IsNullOrWhiteSpace(info[0])) { var config = new ConfigInfo() { Key = info[0].Trim(), Value = info[1], Description = info[2], Enable = true }; var old = PikachuDataContext.ConfigInfos.FirstOrDefault(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); } PikachuDataContext.SaveChanges(); msg = " 添加成功!"; } else { msg = " 配置key不能为空!"; } } else { msg = " 输入格式有误!"; } }
/// <summary> /// 关闭活动 /// </summary> /// <param name="id"></param> /// <returns></returns> public int CloseActivity(int id, string description, out GroupActivity info) { info = PikachuDataContext.GroupActivities.FirstOrDefault(u => u.Id == id); if (info == null || info.ActivityStateType == ActivityStateTypes.Close) { return(0); } if (info.ActivityStateType == ActivityStateTypes.Close) { return(0); } info.ActivityStateType = ActivityStateTypes.Close; info.EndTime = DateTime.Now; info.Description = description; return(PikachuDataContext.SaveChanges()); }
/// <summary> /// 获取成员信息 /// </summary> /// <param name="group">群号</param> /// <param name="account">成员账号</param> /// <returns></returns> public async Task <MemberInfo> GetInfoAsync(string group, string account) { var memberInfo = await PikachuDataContext.MemberInfos.FirstOrDefaultAsync(u => u.Enable && u.Group == group && u.Account == account); if (memberInfo == null) { var list = PikachuDataContext.BillFlows.Where(u => u.Enable && u.Group == group && u.Account == account); decimal amount = 0; if (await list.AnyAsync(u => u.Enable && u.BillType == BillTypes.Sign)) { amount += await list.Where(u => u.BillType == BillTypes.Sign) .SumAsync(u => u.ActualAmount); } if (await list.AnyAsync(u => u.BillType == BillTypes.Consume)) { amount -= await list.Where(u => u.BillType == BillTypes.Consume) .SumAsync(u => u.ActualAmount); } memberInfo = new MemberInfo() { Account = account, Group = group, Amount = amount, }; memberInfo.Enable = true; PikachuDataContext.MemberInfos.Add(memberInfo); PikachuDataContext.SaveChanges(); } return(memberInfo); }
public void AddGroupCopy(string fromGroup, string targetGroup, string dealPerson, out string msg) { var old = PikachuDataContext.GroupMsgCopys.FirstOrDefault(u => u.Person.Equals(dealPerson) && u.FromGroup.Equals(fromGroup) && u.TargetGroup.Equals(targetGroup)); if (old != null) { msg = "已存在转载设置"; } else { PikachuDataContext.GroupMsgCopys.Add(new GroupMsgCopy() { FromGroup = fromGroup, TargetGroup = targetGroup, Person = dealPerson }); ; } PikachuDataContext.SaveChanges(); msg = "添加转载设置成功!"; }
/// <summary> /// 添加配置 [单值] /// </summary> /// <param name="group"></param> /// <param name="account"></param> /// <param name="type"></param> /// <returns></returns> public int AddSingleInfo(string group, string account, string info, GroupConfigTypes type) { var old = PikachuDataContext.GroupConfigs.FirstOrDefault(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(PikachuDataContext.SaveChanges()); }
public void AddGroupAuth(string groupNo, out string msg) { 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 }); ; } PikachuDataContext.SaveChanges(); msg = "添加授权成功!"; }