Example #1
0
        public GroupRes GetListGroupByIDRP(int id)
        {
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@Id", id);
            GroupRes getListGroupByIDRP = SqlMapper.Query <GroupRes>(con, "GetListGroupByID", parameters, commandType: CommandType.StoredProcedure).FirstOrDefault();

            return(getListGroupByIDRP);
        }
Example #2
0
        public async Task <GroupRes> Run(string msg, string account, string groupNo, Lazy <string> getLoginAccount)
        {
            var key = CacheConst.GetMemberOptKey(account, groupNo, CacheConst.AddPet);

            var cache = await _database.StringGetAsync(key);

            if (int.TryParse(cache, out var petId))
            {
                await _database.KeyDeleteAsync(key);

                var arr = msg.Split('@');

                // 格式错误直接跳过
                if (arr.Length != 2 || arr[1].Length != 1 || string.IsNullOrWhiteSpace(arr[0]))
                {
                    return(null);
                }

                var pet = await PetService.GetAsync(petId);

                Gender sex;

                if ("男".Equals(arr[1]))
                {
                    sex = Gender.MALE;
                }
                else if ("女".Equals(arr[1]))
                {
                    sex = Gender.FAMALE;
                }
                else
                {
                    return("性别错误!");
                }

                if (pet == null)
                {
                    return("宠物已下架!");
                }

                // 记录流水
                await BillFlowService.AddBillAsync(groupNo, account, pet.Price, pet.Price, BillTypes.Consume, "领养宠物");

                // 修正账户
                await MemberInfoService.ChangeAmountAsync(groupNo, account, -pet.Price);

                // 添加宠物
                var userPet = await UserPetService.AddPetAsync(pet, groupNo, account, sex, arr[0]);

                return(GroupRes.GetSuccess(new GroupItemRes()
                {
                    AtTa = true, Msg = $"恭喜您获得一只{userPet.Quality}品质的{pet.Name}"
                }));
            }

            return(null);
        }
Example #3
0
        public GroupRes GetGroups()
        {
            GroupRes groupRes = new GroupRes();

            groupRes.Data = new List <GroupData>()
            {
                new GroupData()
                {
                    Description = "NO Des",
                    Id          = 777
                },
            };
            return(groupRes);
        }
Example #4
0
        public ActionResult UpdateGroup(IFormCollection form)
        {
            int    id   = Int32.Parse(form["id"].ToString());
            string name = form["name"].ToString();
            string note = WebUtility.HtmlDecode(form["note"].ToString());
            //Group g = new Group(id, name, note);
            string email = HttpContext.User.Claims.Where(c => c.Type == System.Security.Claims.ClaimsIdentity.DefaultNameClaimType).FirstOrDefault().Value;

            object[] value        = { id, name, note, email };
            var      errorCode    = 0;
            var      errorMessage = "";

            string[] output = { };
            var      result = GroupRes.Group_Save(value, ref output, ref errorCode, ref errorMessage);

            return(Json(result));
        }
Example #5
0
        public async Task <GroupRes> Run(string msg, string account, string groupNo, Lazy <string> getLoginAccount)
        {
            var activityKey = CacheConst.GetGroupActivityKey(groupNo);

            var groupActivity = _database.StringGet(activityKey);

            if (CacheConst.IdiomsSolitaire.Equals(groupActivity))
            {
                var idiomsKey         = CacheConst.GetIdiomsKey(groupNo);
                var idiomsTryCountKey = CacheConst.GetIdiomsTryCountKey(groupNo);

                var logId = int.Parse(await _database.StringGetAsync(CacheConst.GetActivityLogKey(groupNo)));

                var activityLog = ActivityLogService.GetActivity(logId);

                if (activityLog.ActivityStateType == Data.Pikachu.Menu.ActivityStateTypes.Close)
                {
                    // 移除活动缓存
                    await _database.KeyDeleteAsync(activityKey);

                    return("成语接龙活动已关闭!");
                }


                if ("关闭活动".Equals(msg) && await ManageService.IsManageAsync(account))// 管理员主动结束活动.
                {
                    // 移除活动缓存
                    await _database.KeyDeleteAsync(activityKey);

                    var log = await ActivityLogService.CloseActivityAsync(logId, "活动结束,管理员主动结束活动!");

                    return($@"
>>>>>>>>>本次活动已结束,欢迎下次再来挑战!<<<<<<<<<<<<
本次挑战成果:
    成功次数:{log.SuccessCount.ToString()}
    失败次数:{log.FailureCount.ToString()}
希望大家再接再厉!
");
                }

                // 增加尝试次数
                var tryCount = await _database.StringIncrementAsync(idiomsTryCountKey);

                var idiomId = await _database.StringGetAsync(idiomsKey);

                var spell = await IdiomsService.GetInfoAsync(int.Parse(idiomId));

                var confrimStr = $@"
>>>>>>>>>成语接龙火热进行中<<<<<<<<<<<<
    当前成语:{spell.Word}
    尾拼:{spell.LastSpell}
    成语解析:{spell.Explanation}
";

                if (msg.Length != 4)
                {
                    return(GroupRes.GetSuccess(new GroupItemRes()
                    {
                        AtTa = true, Msg = "输入格式有误!"
                    },
                                               await GetTryCountRes(tryCount, activityKey, logId), confrimStr));
                }

                var info = await IdiomsService.GetByWordAsync(msg);

                if (info == null)
                {
                    return(GroupRes.GetSuccess(new GroupItemRes()
                    {
                        AtTa = true, Msg = "词语输入有误!"
                    },
                                               await GetTryCountRes(tryCount, activityKey, logId), confrimStr));
                }

                if (!spell.LastSpell.Equals(info.FirstSpell))
                {
                    return(GroupRes.GetSuccess(new GroupItemRes()
                    {
                        AtTa = true, Msg = "你输入的词语并不能接上呢!"
                    },
                                               await GetTryCountRes(tryCount, activityKey, logId), confrimStr));
                }

                // 积分奖励
                var amount = _random.Next(100) + 5;

                await ActivityLogService.AddSuccessCountAsync(logId);

                await BillFlowService.AddBillAsync(groupNo, account, amount, amount, Data.Pikachu.Menu.BillTypes.Reward,
                                                   "成语接龙奖励");

                await MemberInfoService.ChangeAmountAsync(groupNo, account, amount);

                // 重新缓存
                await _database.StringSetAsync(idiomsKey, info.Id, RuleConst.GroupActivityExpiry);

                // 重新缓存
                await _database.StringSetAsync(idiomsTryCountKey, 0,
                                               RuleConst.GroupActivityExpiry);


                return(GroupRes.GetSuccess(new GroupItemRes()
                {
                    AtTa = true, Msg = $"   恭喜你获得{amount.ToString()}钻石奖励!"
                },
                                           $@"
>>>>>>>>>【成语接龙】下一回合<<<<<<<<<<<<
    当前成语:{info.Word}
    尾拼:{info.LastSpell}
    成语解析:{info.Explanation}
"
                                           ));
            }

            return(null);
        }
Example #6
0
        public async Task <GroupRes> Run(string msg, string account, string groupNo, Lazy <string> getLoginAccount)
        {
            if ("宠物系统".Equals(msg))
            {
                return(@"当前宠物系统支持:
    [宠物商店] [宠物道具商店] [查看宠物] [放养宠物]
");
            }

            if ("宠物商店".Equals(msg))
            {
                var list = await PetService.GetAll().OrderByDescending(u => u.Id).ToListAsync();

                if (list.Count == 0)
                {
                    return("宠物商店还没有入驻的宠物呢,请联系管理员添加吧!");
                }

                StringBuilder builder = new StringBuilder();

                builder.AppendLine(" [宠物介绍图] [宠物名称] [宠物描述] [宠物价格]");

                for (int i = 0; i < list.Count; i++)
                {
                    builder.AppendLine(
                        $"{(i + 1).ToString()}. {list[i].Face}  {list[i].Name}  [{list[i].Description}] {list[i].Price}$");
                }

                builder.AppendLine();
                builder.AppendLine(" 试试对我说 [领养宠物] [宠物名称] 吧~");
                builder.AppendLine(" 示例: 领养宠物 小白");

                return(builder.ToString());
            }

            Match match;

            if ((match = Regex.Match(msg, @"^领养宠物([\s|\S]*)")).Success)
            {
                if (UserPetService.IsExists(groupNo, account))
                {
                    return(GroupRes.GetSingleSuccess(new GroupItemRes()
                    {
                        AtTa = true, Msg = "你已经拥有宠物了,请勿重复领养!"
                    }));
                }

                var petName = match.Groups[1].Value.Trim();

                if (string.IsNullOrWhiteSpace(petName))
                {
                    return("宠物名称不能为空!");
                }

                var pet = await PetService.GetInfoByNameAsync(petName);

                if (pet == null)
                {
                    return($"宠物-{petName} 不存在!");
                }

                var memberInfo = await MemberInfoService.GetInfoAsync(groupNo, account);

                if (pet.Price > memberInfo.Amount)
                {
                    return($"宠物-{petName}的价格为{pet.Price} , 而您的余额为{memberInfo.Amount} , 不足以支付!");
                }

                // 添加添加宠物标识
                await _database.StringSetAsync(CacheConst.GetMemberOptKey(account, groupNo, CacheConst.AddPet),
                                               pet.Id, TimeSpan.FromSeconds(30));

                return(GroupRes.GetSingleSuccess(new GroupItemRes()
                {
                    AtTa = true,
                    Msg = @"请输入[宠物姓名]@[宠物性别{男/女}]
示例: 小白@女"
                }));
            }

            return(null);
        }