public Response Execute(string request) { var req = JsonConvert.DeserializeObject <Request <GameTeamLoopTempletFilter> >(request); Response res = ResultHelper.Success(); res.Tag = GameLoopTempletHelper.IsExistTemplet(req.Filter.Name, req.Filter.ModifyFlag); //bool类型 ,TRUE为名称重复 res.Tag1 = GameLoopTempletHelper.GetRuleCodes(req.Filter.PersonCount, true, true); //队伍1(主队)对阵编码字符数组 if (req.Filter.IsGuest) { res.Tag2 = GameLoopTempletHelper.GetRuleCodes(req.Filter.PersonCount, false, true);//队伍2(客队)对阵编码字符数组 } else { res.Tag2 = GameLoopTempletHelper.GetRuleCodes(req.Filter.PersonCount, true, true);//队伍2(客队)对阵编码字符数组 } return(res); }
/// <summary> /// 获取某个团体对阵模板及规则详情 /// </summary> /// <param name="filter"></param> /// <returns></returns> public static Response GetTempletDetail(GameTeamLoopTempletFilter filter) { string sqlStr = @"SELECT a.*,CASE WHEN ISNULL(b.PetName, '')='' THEN b.CardName ELSE b.PetName END AS SharePerson, CAST(CASE WHEN a.UseCount >=5 THEN 1 ELSE 0 END AS BIT) AS IsEnableShare FROM GameTeamLoopTemplet AS a LEFT JOIN UserAccount AS b ON a.SharePersonId=b.Id WHERE a.Id=@templetId"; Command cmd = CommandHelper.CreateText <GameTeamLoopTemplet>(FetchType.Fetch, sqlStr); cmd.Params.Add("@templetId", filter.TempletId); Response res = DbContext.GetInstance().Execute(cmd); if (res.Entities.Count > 0) { var temp = res.Entities[0] as GameTeamLoopTemplet; if (temp.UseCount > 0) { temp.UseDes = "已被" + temp.UseCount + "场比赛使用"; } else { temp.UseDes = "还未正式被比赛使用过"; } temp.IsUse = GameLoopTempletHelper.IsUseTemplet(filter.TempletId); //模板是否使用 sqlStr = @"SELECT * FROM GameTeamLoopTempletDetail WHERE TempletId=@templetId ORDER BY OrderNo "; if (!string.IsNullOrEmpty(filter.GameId) && !string.IsNullOrEmpty(filter.LoopId)) //进入团体对阵页面时,获取规则对员对阵详情 { sqlStr = @"SELECT a.*,b.User1Name,b.User1Id,b.User2Name,b.User2Id FROM GameTeamLoopTempletDetail AS a LEFT JOIN GameLoopMap AS b ON a.OrderNo=b.OrderNo AND b.LoopId=@loopId WHERE a.TempletId=@templetId ORDER BY a.OrderNo"; } cmd = CommandHelper.CreateText <GameTeamLoopTempletDetail>(FetchType.Fetch, sqlStr); cmd.Params.Add("@templetId", filter.TempletId); if (!string.IsNullOrEmpty(filter.GameId) && !string.IsNullOrEmpty(filter.LoopId)) { cmd.Params.Add("@loopId", filter.LoopId); } Response res1 = DbContext.GetInstance().Execute(cmd); temp.Detail = res1.Entities.ToList <EntityBase, GameTeamLoopTempletDetail>(); if (!string.IsNullOrEmpty(filter.GameId) && !string.IsNullOrEmpty(filter.LoopId))//进入团体对阵页面时,获取规则编码与队员映射关系 { sqlStr = @"SELECT a.Id,a.TempletId,a.GameId,a.LoopId,a.TeamId,a.Code,a.CodeUserId,a.CodeUserName,a.CreateDate,b.TeamName FROM GameTeamLoopTempletMap as a LEFT JOIN GameTeam as b ON a.TeamId=b.Id WHERE a.TempletId=@templetId AND a.GameId=@gameId AND a.LoopId=@loopId ORDER BY TeamId,a.Code"; cmd = CommandHelper.CreateText <GameTeamLoopTempletMap>(FetchType.Fetch, sqlStr); cmd.Params.Add("@templetId", filter.TempletId); cmd.Params.Add("@gameId", filter.GameId); cmd.Params.Add("@loopId", filter.LoopId); res1 = DbContext.GetInstance().Execute(cmd); temp.Map = res1.Entities.ToList <EntityBase, GameTeamLoopTempletMap>();//规则编码与队员映射关系 temp.Team1Codes = GameLoopTempletHelper.GetRuleCodes(temp.PersonCount, true, false); if (temp.IsGuest) { temp.Team2Codes = GameLoopTempletHelper.GetRuleCodes(temp.PersonCount, false, false); } else { temp.Team2Codes = GameLoopTempletHelper.GetRuleCodes(temp.PersonCount, true, false); } } } return(res); }