using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Xml.Serialization; using GameData; using GameMessage; using MrWu.Time; using Server; using Debug = MrWu.Debug.Debug; using GameData.Club; namespace ObjectModel.Club { /// /// 俱乐部比赛 表实体 /// public class ClubMatch { /// /// 联赛的俱乐部比赛数据 /// public ClubMatch LeagueClubMatch; /// /// 开启中 /// public bool IsOpening; /// /// 自增ID 主键 0是新增 其他是修改 /// public int ClubMatchId; /// /// 俱乐部Id 索引 /// public int ClubId; /// /// 比赛名称 /// public string ClubMatchName; private DateTime _MatchStartTime; /// /// 比赛开始时间 /// public DateTime MatchStartTime { get { if (LeagueClubMatch != null) { return LeagueClubMatch.MatchStartTime; } return _MatchStartTime; } set { if (LeagueClubMatch != null) { Debug.Error("MatchStartTime 当前比赛数据属于联赛,不能修改!"); } _MatchStartTime = value; } } private DateTime _MatchEndTime; /// /// 比赛结束时间 /// public DateTime MatchEndTime { get { if (LeagueClubMatch != null) { return LeagueClubMatch.MatchEndTime; } return _MatchEndTime; } set { if (LeagueClubMatch != null) { Debug.Error("MatchEndTime 当前比赛数据属于联赛,不能修改!"); } _MatchEndTime = value; } } private int _DieOutNum; /// /// 比赛淘汰分值 /// public int DieOutNum { get { if (LeagueClubMatch != null) { return LeagueClubMatch.DieOutNum; } return _DieOutNum; } set { if (LeagueClubMatch != null) { Debug.Error("DieOutNum 当前比赛的数据属于联赛,不能修改!"); } _DieOutNum = value; } } private DateTime _CreateTime; /// /// 创建时间 /// public DateTime CreateTime { get { if (LeagueClubMatch != null) { return LeagueClubMatch.CreateTime; } return _CreateTime; } set { if (LeagueClubMatch != null) { Debug.Error("CreateTime 当前比赛的数据属于联赛,不能修改!"); } _CreateTime = value; } } private int _StatusFlag; /// /// 比赛状态 1比赛中 2结束 /// public int StatusFlag { get { if (LeagueClubMatch != null) { return LeagueClubMatch.StatusFlag; } return _StatusFlag; } set { if (LeagueClubMatch != null) { Debug.Error("StatusFlag 当前比赛数据属于联赛,不能修改!"); } _StatusFlag = value; } } private bool _AutoOpen; /// /// 是否自动开启下一场比赛 /// public bool AutoOpen { get { if (LeagueClubMatch != null) { return LeagueClubMatch.AutoOpen; } return _AutoOpen; } set { if (LeagueClubMatch != null) { Debug.Error("AutoOpen 当前比赛数据属于联赛,不能修改!"); } _AutoOpen = value; } } private int _HowTopUser; /// /// --前多少名正数玩家自动进入下一轮比赛 /// 该值表示是否是联赛,小于0是联赛,该值存储了联赛的ClubId /// public int HowTopUser { get { if (LeagueClubMatch != null) { return LeagueClubMatch.HowTopUser; } return _HowTopUser; } set { if (LeagueClubMatch != null) { Debug.Error("HowTopUser 当前比赛数据属于联赛,不能修改!"); } _HowTopUser = value; } } /// /// 第几场比赛 /// public int Round; private int _MatchRate; /// /// 比赛频率 单位为天 /// public int MatchRate { get { if (LeagueClubMatch != null) { return LeagueClubMatch.MatchRate; } return _MatchRate; } set { if (LeagueClubMatch != null) { Debug.Error("MatchRate 当前比赛数据属于联赛,不能修改!"); } _MatchRate = value; } } private int _VisibleDesk; /// /// 普通成员显示的桌子数量 /// public int VisibleDesk { get { if (LeagueClubMatch != null) { return LeagueClubMatch._VisibleDesk; } return _VisibleDesk; } set { if (LeagueClubMatch != null) { Debug.Error("VisibleDesk 当前比赛数据属于联赛,不能修改!"); } _VisibleDesk = value; } } private byte _isOnlyVisibleMyClub; /// /// 是否只显示自己俱乐部的桌子--只有联赛才会能体现出这个设置 /// 1不是 0是显示自己俱乐部的桌子 /// public byte isOnlyVisibleMyClub { get { if (LeagueClubMatch != null) { return LeagueClubMatch._isOnlyVisibleMyClub; } return _isOnlyVisibleMyClub; } set { _isOnlyVisibleMyClub = value; } } private byte _isVisibleScoreBak; /// /// 是否显示淘汰分 1显示 0不显示(默认) /// public byte isVisibleScoreBak { get { if (LeagueClubMatch != null) { return LeagueClubMatch._isVisibleScoreBak; } return _isVisibleScoreBak; } set { if (LeagueClubMatch != null) { Debug.Error("isVisibleScoreBak 当前比赛数据属于联赛,不能修改!"); } _isVisibleScoreBak = value; } } private byte _isScoreReset; /// /// 每轮比赛开始积分是否清零 1清零 0不清零(默认) /// public byte isScoreReset { get { if (LeagueClubMatch != null) { return LeagueClubMatch._isScoreReset; } return _isScoreReset; } set { if (LeagueClubMatch != null) { Debug.Error("isScoreReset 当前比赛数据属于联赛,不能修改!"); } _isScoreReset = value; } } private List _MatchPlayWays = new List(); /// /// 比赛关联的玩法 数据库这个字段用string存储 MatchPlayWayId,用逗号分隔。 /// public List MatchPlayWays { get { if (LeagueClubMatch != null) { return LeagueClubMatch.MatchPlayWays; } return _MatchPlayWays; } set { if (LeagueClubMatch != null) { Debug.Error("MatchPlayWays 当前比赛数据属于联赛,不能修改!"); } _MatchPlayWays = value; } } public List _BakMatchPlayWays = new List(); /// /// 备份的玩法,目的是用户删除玩法然后有的玩法该玩法已经开战了,用户开战玩家计算分。 /// 不存数据库,只在内存中。 /// public List BakMatchPlayWays { get { if (LeagueClubMatch != null) { return LeagueClubMatch._BakMatchPlayWays; } return _BakMatchPlayWays; } set { if (LeagueClubMatch != null) { Debug.Error("BakMatchPlayWays 当前比赛数据属于联赛,不能修改!"); } _BakMatchPlayWays = value; } } /// /// 存储比赛其他设置的Json数据 /// public string JsonData; /// /// 比赛账号转换联赛账号的基数 /// const int ConstNum = 10000; private MatchOtherSetting _matchOtherSetting = new MatchOtherSetting(); /// /// 比赛其他设置 /// public MatchOtherSetting matchOtherSetting { get { if (LeagueClubMatch != null) { return LeagueClubMatch._matchOtherSetting; } return _matchOtherSetting; } set { if (LeagueClubMatch != null) { Debug.Error("matchOtherSetting 当前比赛数据属于联赛,不能修改!"); } _matchOtherSetting = value; } } public void InitOtherSetting() { if (!string.IsNullOrEmpty(JsonData)) { matchOtherSetting = JsonPack.GetData(JsonData); } } public MatchOtherSetting CopyMatchOtherSetting() { string jsondata = GetJsonData(); return JsonPack.GetData(jsondata); } public string GetJsonData() { if (matchOtherSetting == null) { matchOtherSetting = new MatchOtherSetting(); } return JsonPack.GetJsonNoIgnore(matchOtherSetting); } /// /// 获取联赛账号 5位数数字 /// /// public static int GetLeagueUserName(int clubMatchId) { return clubMatchId + ConstNum; } /// /// 根据联赛账号返回比赛ID /// /// public static int GetClubMatchId(int leagueUserNameNumber) { return leagueUserNameNumber - ConstNum; } /// /// 返回对象 /// /// public static ClubMatch GetInstance(CreateClubMatchPack request, ClubMatch oldClubMatch, bool IsLeague = false) { DateTime endTime = DateTime.Now.Date.AddDays(request.MatchRate).AddHours(request.MatchStartTime.Hour).AddMinutes(request.MatchStartTime.Minute); return new ClubMatch() { ClubMatchId = 0, ClubId = request.ClubId, ClubMatchName = request.ClubMatchName ?? $"{(IsLeague ? "竞技联赛" : "竞技赛")}第{GetFromRound(oldClubMatch == null ? 1 : oldClubMatch.Round + 1)}轮", MatchStartTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, request.MatchStartTime.Hour, request.MatchStartTime.Minute, 0), MatchEndTime = endTime, DieOutNum = request.DieOutNum, CreateTime = DateTime.Now, StatusFlag = 1, AutoOpen = request.AutoOpen, HowTopUser = request.HowTopUser, Round = oldClubMatch == null ? 1 : oldClubMatch.Round + 1, MatchRate = request.MatchRate, MatchPlayWays = MatchPlayWay.GetInstances(request), VisibleDesk = request.VisibleDesk, isOnlyVisibleMyClub = request.isOnlyVisibleMyClub, isScoreReset = request.isScoreReset, isVisibleScoreBak = request.isVisibleScoreBak }; } /// /// 获取界面上显示的比赛轮次 /// /// /// public static int GetFromRound(int round) { return (round % 5) + 1; } private static string GetClubMatchName(bool isLeague,int round) { return $"{(isLeague ? "竞技联赛" : "竞技赛")}第{GetFromRound(round + 1)}轮"; } /// /// 返回下一轮新比赛的对象 /// /// /// public static ClubMatch GetNexMatchObject(ClubMatch oldClubMatch, bool isLeague = false) { if (oldClubMatch == null) return null; DateTime endTime = DateTime.Now.Date.AddDays(oldClubMatch.MatchRate).AddHours(oldClubMatch.MatchEndTime.Hour).AddMinutes(oldClubMatch.MatchEndTime.Minute); var result = new ClubMatch(); result.ClubMatchId = 0; result.ClubId = oldClubMatch.ClubId; result.ClubMatchName = GetClubMatchName(isLeague, oldClubMatch.Round); result.MatchStartTime = DateTime.Now; result.MatchEndTime = endTime; result.DieOutNum = oldClubMatch.DieOutNum; result.CreateTime = DateTime.Now; result.StatusFlag = 1; result.AutoOpen = oldClubMatch.AutoOpen; result.HowTopUser = oldClubMatch.HowTopUser; result.Round = oldClubMatch.Round + 1; result.MatchRate = oldClubMatch.MatchRate; result.MatchPlayWays = oldClubMatch.MatchPlayWays; result.VisibleDesk = oldClubMatch.VisibleDesk; result.isOnlyVisibleMyClub = oldClubMatch.isOnlyVisibleMyClub; result.isVisibleScoreBak = oldClubMatch.isVisibleScoreBak; result.isScoreReset = oldClubMatch.isScoreReset; result.matchOtherSetting = oldClubMatch.CopyMatchOtherSetting(); if (result.MatchPlayWays != null) { foreach (var item in result.MatchPlayWays) { item.ClubMatchId = 0; item.MatchPlayWayId = 0; if (item.MaxWinnerScoreRanges != null) { foreach (var itemChid in item.MaxWinnerScoreRanges) { itemChid.MatchPlayWayId = 0; itemChid.MaxWinnerScoreRangeId = 0; } } } } return result; } /// /// 根据联赛返回 比赛对象 /// /// public static ClubMatch GetClubMatchByLeagueMatch(ClubMatch leagueMatch,ClubMatch originMatch,int clubId, int round) { if (leagueMatch == null) return null; var result = new ClubMatch(); result.ClubMatchName = leagueMatch.ClubMatchName; //比赛名称不能乱改,必须与联赛一致,使用了名字做逻辑 result.LeagueClubMatch = leagueMatch; result.ClubMatchId = 0; result.ClubId = clubId; result.Round = round + 1; return result; } public static ClubMatchInfoResponse GetClubMatchInfoResponse(ClubMatch clubMatch) { ClubMatchInfoResponse response = new ClubMatchInfoResponse(); response.ClubId = clubMatch.ClubId; response.MatchStartTime = DateTimeHelper.DateTime2TimeStamp(clubMatch.MatchStartTime); response.MatchInfoName = clubMatch.ClubMatchName; response.MatchEndTime = DateTimeHelper.DateTime2TimeStamp(clubMatch.MatchEndTime); response.MatchRate = clubMatch.MatchRate; response.DieOutNum = clubMatch.DieOutNum; response.AutoOpen = clubMatch.AutoOpen; response.LeagueClubId = clubMatch.HowTopUser; response.VisibleDesk = clubMatch.VisibleDesk; response.IsOnlyVisibleMyClub = clubMatch.isOnlyVisibleMyClub; response.IsScoreReset = clubMatch.isScoreReset; response.IsVisibleScoreBak = clubMatch.isVisibleScoreBak; response.LeagueUserNameNumber = ClubMatch.GetLeagueUserName(clubMatch.ClubMatchId); response.MatchPlayWayInfos = MatchPlayWay.GetMatchPlayWayInfos(clubMatch.MatchPlayWays); return response; } /// /// 返回输出对象 /// /// /// public static CreateClubMatchPack GetCreateClubMatchResponse(ClubMatch oldClubMatch) { return new CreateClubMatchPack { ClubId = oldClubMatch.ClubId, MatchStartTime = oldClubMatch.MatchStartTime, ClubMatchName = oldClubMatch.ClubMatchName, MatchEndTime = oldClubMatch.MatchEndTime, MatchRate = oldClubMatch.MatchRate, DieOutNum = oldClubMatch.DieOutNum, AutoOpen = oldClubMatch.AutoOpen, HowTopUser = oldClubMatch.HowTopUser, VisibleDesk = oldClubMatch.VisibleDesk, isOnlyVisibleMyClub = oldClubMatch.isOnlyVisibleMyClub, isScoreReset = oldClubMatch.isScoreReset, isVisibleScoreBak = oldClubMatch.isVisibleScoreBak, LeagueUserNameNumber = ClubMatch.GetLeagueUserName(oldClubMatch.ClubMatchId), MatchPlayWays = MatchPlayWay.GetMatchPlayWayPacks(oldClubMatch.MatchPlayWays) }; } /// /// 返回对象 /// /// /// public static ClubMatchInfo GetMatchInfoInstance(ClubMatch obj) { return new ClubMatchInfo { ClubMatchId = obj.ClubMatchId, ClubMatchName = obj.ClubMatchName, ClubId = obj.ClubId, StatusFlag = obj.StatusFlag, MatchStartTime = obj.MatchStartTime, MatchEndTime = obj.MatchEndTime }; } public static ClubMatchData GetMatchDataInstance(ClubMatch obj) { ClubMatchData data = new ClubMatchData(); data.ClubMatchId = obj.ClubMatchId; data.ClubId = obj.ClubId; data.ClubMatchName = obj.ClubMatchName; data.MatchStartTime = DateTimeHelper.DateTime2TimeStamp(obj.MatchStartTime); data.MatchEndTime = DateTimeHelper.DateTime2TimeStamp(obj.MatchEndTime); data.StatusFlag = obj.StatusFlag; return data; } public void Copy2LeagueMatch() { ClubMatch leagueClubMatch = this.LeagueClubMatch; this.LeagueClubMatch = null; this._MatchStartTime = leagueClubMatch._MatchStartTime; this._MatchEndTime = leagueClubMatch._MatchEndTime; this._DieOutNum = leagueClubMatch._DieOutNum; this._CreateTime = leagueClubMatch._CreateTime; this._StatusFlag = leagueClubMatch._StatusFlag; this._AutoOpen = leagueClubMatch._AutoOpen; this._HowTopUser = leagueClubMatch._HowTopUser; this._MatchRate = leagueClubMatch._MatchRate; this._VisibleDesk = leagueClubMatch._VisibleDesk; this._isOnlyVisibleMyClub = leagueClubMatch._isOnlyVisibleMyClub; this._isVisibleScoreBak = leagueClubMatch._isVisibleScoreBak; this._isScoreReset = leagueClubMatch._isScoreReset; this._MatchPlayWays = leagueClubMatch._MatchPlayWays; this._BakMatchPlayWays = leagueClubMatch._BakMatchPlayWays; this._matchOtherSetting = leagueClubMatch._matchOtherSetting; } } /// /// 比赛其他设置 /// public class MatchOtherSetting { /// /// 重赛限制 --重赛审核中的用户无法在本联赛任何俱乐部参与比赛 false不限制 true限制 默认不限制 /// public bool ReplayRestrictions; /// /// 生存任务限制 --下一轮比赛开始时生存任务调整为默认值 /// public bool LiveTaskRestrictions; } /// /// 比赛玩法 表实体对象 /// public class MatchPlayWay { /// /// 自增Id 主键 /// public int MatchPlayWayId; /// /// 所属竞技比赛 组合索引I_MatchPlayWay_ClubIdClubMatchId 1 /// public int ClubId; /// /// 比赛Id 外键 组合索引I_MatchPlayWay_ClubIdClubMatchId 2 /// public int ClubMatchId; /// /// 玩法的唯一码 /// public string weiyima; /// /// 最低分数限制,玩家低于此分不能进入桌子 /// public int MinScore; /// /// 桌费数值 AA /// public int DeskCost; /// /// 消耗方式 1AA 2大赢家 /// public int TypeMode; /// /// 最低分值免收桌费 AA /// public int MinFreeDeskCostNum; /// /// 是否第一局结束前解散不计房费 true是不计 false 否计算 /// public bool IsFirstCalcDeskCost; /// /// 小局低于多少分解散桌子 /// public int BuresMinScore; /// /// 是否开启小局低于多少分解散房间 /// public bool IsBuresMin; /// /// 是否开启 解散房间按实际局数计算比赛消耗 /// public bool IsRealCalcScore; /// /// 大赢家消耗规则 /// public List MaxWinnerScoreRanges; /// /// 每次比赛联赛活跃积分 /// public decimal LeagueDeskScore; /// /// 深复制对象 /// /// /// /// public static T DeepCopy(T obj) { object retval; using (MemoryStream ms = new MemoryStream()) { XmlSerializer xml = new XmlSerializer(typeof(T)); xml.Serialize(ms, obj); ms.Seek(0, SeekOrigin.Begin); retval = xml.Deserialize(ms); ms.Close(); } return (T)retval; } /// /// /// /// /// public static List GetInstances(CreateClubMatchPack request) { var result = new List(); if (request.MatchPlayWays == null || request.MatchPlayWays.Count < 1) { return result; } foreach (var item in request.MatchPlayWays) { result.Add(new MatchPlayWay { MatchPlayWayId = 0, ClubId = request.ClubId, ClubMatchId = 0,//新增的时候要赋值 weiyima = item.weiyima, MinScore = item.MinScore, DeskCost = item.DeskCost, TypeMode = item.TypeMode, MinFreeDeskCostNum = item.MinFreeDeskCostNum, IsBuresMin = item.IsBuresMin, IsFirstCalcDeskCost = item.IsFirstCalcDeskCost, IsRealCalcScore = item.IsRealCalcScore, BuresMinScore = item.BuresMinScore, MaxWinnerScoreRanges = item.MaxWinnerScoreRanges, LeagueDeskScore = item.LeagueDeskScore }); } return result; } /// /// 生成一个默认的玩法 /// /// /// /// public static MatchPlayWay GetInstanceByPlayWay(PlayWay playWay, ClubMatch clubMatch) { return new MatchPlayWay() { MatchPlayWayId = 0, ClubId = playWay.Clubid, ClubMatchId = clubMatch.ClubMatchId, weiyima = playWay.weiyima, MinScore = clubMatch.DieOutNum, DeskCost = 5, TypeMode = 2, MinFreeDeskCostNum = 10, IsBuresMin = true, IsFirstCalcDeskCost = true, IsRealCalcScore = true, BuresMinScore = clubMatch.DieOutNum, MaxWinnerScoreRanges = new List() { new MaxWinnerScoreRange{ MatchPlayWayId=0, MaxWinnerScoreRangeId=0, DeskScore=5, MaxWinnerMinScore=0} } }; } /// /// 获取玩法 /// /// /// public static List GetMatchPlayWayInfos(List matchPlayWays) { List result = new List(); if (matchPlayWays == null || matchPlayWays.Count < 1) { return result; } foreach (var item in matchPlayWays) { result.Add(new MatchPlayWayInfo { WeiYiMa = item.weiyima, MinScore = item.MinScore, DeskCost = item.DeskCost, TypeMode = item.TypeMode, MinFreeDeskCostNum = item.MinFreeDeskCostNum, IsBuresMin = item.IsBuresMin, IsFirstCalcDeskCost = item.IsFirstCalcDeskCost, IsRealCalcScore = item.IsRealCalcScore, BuresMinScore = item.BuresMinScore, MaxWinnerScoreRanges = Convert2MatchMaxWinnerScoreRanges(item.MaxWinnerScoreRanges), LeagueDeskScore = (double)item.LeagueDeskScore }); } return result; } private static List Convert2MatchMaxWinnerScoreRanges(List maxWinnerScoreRanges) { List result = new List(); foreach (var item in maxWinnerScoreRanges) { result.Add(MaxWinnerScoreRange2MatchMaxWinnerScoreRange(item)); } return result; } //todo 优化使用引用池 private static MatchMaxWinnerScoreRange MaxWinnerScoreRange2MatchMaxWinnerScoreRange(MaxWinnerScoreRange maxWinnerScoreRange) { MatchMaxWinnerScoreRange range = new MatchMaxWinnerScoreRange(); range.DeskScore = maxWinnerScoreRange.DeskScore; range.MaxWinnerMinScore = maxWinnerScoreRange.MaxWinnerMinScore; return range; } /// /// 获取玩法 /// /// /// public static List GetMatchPlayWayPacks(List matchPlayWays) { var result = new List(); if (matchPlayWays == null || matchPlayWays.Count < 1) { return result; } foreach (var item in matchPlayWays) { result.Add(new MatchPlayWayPack { weiyima = item.weiyima, MinScore = item.MinScore, DeskCost = item.DeskCost, TypeMode = item.TypeMode, MinFreeDeskCostNum = item.MinFreeDeskCostNum, IsBuresMin = item.IsBuresMin, IsFirstCalcDeskCost = item.IsFirstCalcDeskCost, IsRealCalcScore = item.IsRealCalcScore, BuresMinScore = item.BuresMinScore, MaxWinnerScoreRanges = item.MaxWinnerScoreRanges, LeagueDeskScore = item.LeagueDeskScore }); } return result; } } /// /// 积分记录 /// public class ClubMatchScoreNotes { /// /// 自增Id 主键 /// public int ScoreNotesId; /// /// 俱乐部ID 组合索引I_ScoreNotes_ClubIdClubMatchId 1 /// public int ClubId; /// /// 比赛ID 组合索引I_ScoreNotes_ClubIdClubMatchId 2 /// public int ClubMatchId; /// /// 玩家Id 组合索引I_ScoreNotes_ClubIdClubMatchIdUserId 3 /// public int UserId; /// /// 创建时间 /// public DateTime CreateTime; /// /// 类型 1游戏结算 2群主调整比赛积分 3比赛重置 4比赛结束 5调整淘汰分 /// public int TypeId; /// /// 操作的分值 /// public double Score; /// /// 这把玩家扣除的桌费--这个字段只有群主自己展示 /// public double DeskScore; /// /// 操作以后的分值 /// public double NewScore; /// /// 获取输出对象 /// /// /// public static List GetUserScoreLogs(List lists) { var result = new List(); if (lists == null || lists.Count < 1) { return result; } for (int i = lists.Count - 1; i >= 0; i--) { var item = lists[i]; result.Add(new UserScoreLog { CreateTime = item.CreateTime, TypeId = item.TypeId, Score = item.Score, DeskScore = item.DeskScore, ScoreUI = item.TypeId == 1 ? item.Score - item.DeskScore : item.NewScore }); } return result; } } /// /// 俱乐部退赛对象 /// public class ExitMatchObj { public int ClubId; public List Datas; } /// /// 比赛玩家积分表 /// public class ClubMatchUserScore { /// /// 自增Id 主键 /// public int UserScoreId; /// /// 俱乐部ID 组合索引I_UserScore_ClubIdClubMatchId /// public int ClubId; /// /// 比赛ID 组合索引I_UserScore_ClubIdClubMatchId /// public int ClubMatchId; /// /// 玩家Id /// public int UserId; /// /// 比赛分 /// public decimal Score; /// /// 玩家提供的桌费 竞技赛活跃积分 房费/人数 /// public decimal DeskScore; /// /// 如果显示淘汰分那么就是淘汰分,如果不显示就是积分备注 /// public decimal ScoreBak; /// /// 数据更新时间 /// public DateTime UpdateTime; /// /// 获取玩家总积分 /// /// 是否显示淘汰分 /// public decimal GetPlayScore(bool isHaveScoreBak) { if (isHaveScoreBak) { return this.Score + this.ScoreBak; } else { return this.Score; } } public ClubMatchUserScore Clone() { return new ClubMatchUserScore { UserScoreId = this.UserScoreId, ClubId = this.ClubId, ClubMatchId = this.ClubMatchId, UserId = this.UserId, Score = this.Score, DeskScore = this.DeskScore, ScoreBak = this.ScoreBak }; } } /// /// 比赛记录 /// public class ClubMatchNotes { /// /// 自增Id 主键 /// public long ClubMatchNotesId; /// /// 日志类型 /// public MatchNotesEnum TypeId; /// /// 俱乐部ID 组合索引I_ClubMatchNotes_ClubIdClubMatchId /// public int ClubId; /// /// 比赛ID 组合索引I_ClubMatchNotes_ClubIdClubMatchId /// public int ClubMatchId; /// /// 产生时间 /// public DateTime CreateTime; /// /// 内容 /// public string Content; /// /// 获取输出对象 /// /// /// public static List GetClubMatchNotes(List lists) { var result = new List(); if (lists == null || lists.Count < 1) { return result; } for (int i=lists.Count - 1; i >= 0; i--) { var item = lists[i]; result.Add(new ClubMatchNotesLog { TypeId = item.TypeId, CreateTime = item.CreateTime, Content = item.Content }); //Debug.Info($"发给客户端的日志:{item.Content}"); } return result; } } }