public MatchCreateResponse Fight(Guid managerId, Guid awayId) { var lastTime = MemcachedFactory.FriendMutexClient.Get <DateTime>(managerId); if (lastTime > DateTime.Now) { return(ResponseHelper.Create <MatchCreateResponse>(MessageCode.FriendMatchWait)); } //好友比赛每天每个好友只能挑战3次, 只有第一次有奖励 var friend = FriendManagerMgr.GetOne(managerId, awayId); if (friend.DayMatchCount >= 3)//每日三次比赛 { return(ResponseHelper.Create <MatchCreateResponse>(MessageCode.FriendMatchOver)); } var matchId = ShareUtil.GenerateComb(); var code = MatchCore.CreateMatchFriendAsyn(matchId, managerId, awayId, friend, MatchCallback); if (code != MessageCode.Success) { return(ResponseHelper.Create <MatchCreateResponse>(code)); } MemcachedFactory.FriendMutexClient.Set(managerId, DateTime.Now.AddSeconds(_friendMatchWaitTime)); return(ResponseHelper.MatchCreateResponse(matchId)); }