Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
        /// <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();
            }
        }
Esempio n. 3
0
        /// <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();
            }
        }
Esempio n. 4
0
        /// <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();
            }
        }
Esempio n. 5
0
        /// <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());
        }
Esempio n. 6
0
        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());
        }
Esempio n. 7
0
        /// <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();
            }
        }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
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);
        }
Esempio n. 10
0
        /// <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();
        }
Esempio n. 11
0
        /// <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);
        }
Esempio n. 12
0
        /// <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());
        }
Esempio n. 13
0
        /// <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);
        }