public void SetWaiver(EntityBase mapObj) { var map = (GameLoopMap)mapObj; var order = GameHelper.GetGameOrderByLoop(map.LoopId); //取胜局(乒超团队模式每场胜局不一样) var winGame = map.WinGame > 0 ? map.WinGame : order.WinGame; if (map.WaiverOption == WaiverOption.A) { map.Game1 = 0; map.Game2 = winGame; map.Fen1 = 0; map.Fen2 = winGame * Globals.TT_ONE_GAME_FEN; } else if (map.WaiverOption == WaiverOption.B) { map.Game1 = winGame; map.Game2 = 0; map.Fen1 = winGame * Globals.TT_ONE_GAME_FEN; map.Fen2 = 0; } else { map.Game1 = 0; map.Game2 = 0; map.Fen1 = 0; map.Fen2 = 0; } }
/// <summary> /// 获取团体比赛时候,某一场比赛,每个队伍每个出场队员对阵列表 /// </summary> /// <param name="currentUser">忽略</param> /// <param name="request">Request.GameLoop.Filter</param> /// <returns>Response.GameLoopMap</returns> public Response Execute(string request) { var req = JsonConvert.DeserializeObject <Request <GameLoop> >(request); var cmd = CommandHelper.CreateProcedure <GameLoopMap>(text: "sp_GetGameLoopMapList"); cmd.Params.Add(CommandHelper.CreateParam("@loopId", req.Filter.Id)); var result = DbContext.GetInstance().Execute(cmd); result.SetRowCount(); var order = GameHelper.GetGameOrderByLoop(req.Filter.Id); result.Tag = JsonConvert.SerializeObject(order); SetGameLoopMapDetailList(result); return(result); }
/// <summary> /// 团体比赛设置一次对阵比赛结果 /// </summary> /// <param name="request">Request.GameLoopMap.Entities</param> /// <returns>Response.EmptyEntity</returns> public Response Execute(string request) { var req = JsonConvert.DeserializeObject <Request <GameLoopMap> >(request); var map = req.FirstEntity(); if (map == null) { return(ResultHelper.Fail("没有传递数据对象。")); } map.Team1Id = map.Team1Id.GetId(); map.Team2Id = map.Team2Id.GetId(); map.WinSign = map.WinSign; map.JudgeSign = map.JudgeSign; map.SetRowModified(); var entities = new List <EntityBase> { map }; IWaiver waiver = new MapWaiver(); if (map.WaiverOption.IsNotNullOrEmpty()) { waiver.SetWaiver(map); } else { waiver.SetScore(map); var order = GameHelper.GetGameOrderByLoop(map.LoopId.GetId()); int max = map.Game1 > map.Game2 ? map.Game1 : map.Game2; //取胜局(乒超团队模式每场胜局不一样) var winGame = map.WinGame > 0 ? map.WinGame : order.WinGame; //南充比赛临时要求更改 //if (!map.User1Id.Contains(",") && !map.User2Id.Contains(",")) //南充比赛临时要求更改,双打不检查胜局 //{ if (max != winGame) { //个人比赛胜局检查 return(ResultHelper.Fail(string.Format("胜方需要赢{0}局。", winGame))); } //} foreach (var item in map.DetailList) { //item.SetNewEntity(); item.LoopId = map.LoopId.GetId(); item.MapId = map.Id.GetId(); int maxFen = item.Fen1 > item.Fen2 ? item.Fen1 : item.Fen2; if (maxFen >= 11) //大致判小局分数是否有效 { item.RowState = RowState.Modified; //获取小局对阵列表时,已经生成空对阵,故此处只需要保存相应小局的得分,状态更改为修改状态 entities.Add(item); } } } var cmdSave = CommandHelper.CreateSave(entities); //cmdSave.PreCommands = new List<Command> { GameHelper.GetDeleteLoopDetailCmd(map.LoopId, map.Id) };//此处不需要再删除原有的对阵 return(DbContext.GetInstance().Execute(cmdSave)); }