/// <summary> /// 创建自动选码注单. /// </summary> /// <param name="user">The user.</param> /// <param name="specie">The specie.</param> /// <param name="companys">The companys.</param> /// <param name="wagers">The wagers.</param> /// <param name="nums">The nums.</param> /// <returns></returns> private IDictionary<BetSheet, IList<BetOrder>> BuildAutoElectionCodeOrder(User user, LotterySpecies specie, int[] companys, IList<KeyValuePair<PlayWay, decimal>> wagers, int[] nums) { PlayWay[] allowBetPlayWay = new[] { PlayWay.Head, PlayWay.Last, PlayWay.HeadAndLast, PlayWay.Roll }; List<BetItem> betList = new List<BetItem>(); var wagerItems = new List<WagerItem>(); foreach (var wager in wagers) { if (!allowBetPlayWay.Contains(wager.Key)) continue; var gpw = LotterySystem.Current.FindGamePlayWay(GameType.TwoDigital, wager.Key); wagerItems.Add(new WagerItem { GamePlayTypeId = gpw.Id, IsFullPermutation = false, Wager = wager.Value }); } nums.ForEach(num => { betList.Add(new BetItem { Num = num.ToString("D2"), CompanyList = companys, WargerList = wagerItems }); }); return base.BuildOrder(user, specie, betList, new Dictionary<string, object> { { "ISCON", LotterySystem.Current.AutoElectionCodeCommission > 0 } }); }
public ShadowModel(User user) { this.UserName = user.UserName; this.Name = user.UserInfo.Name; this.State = user.UserInfo.State; this.Email = user.UserInfo.Email; }
/// <summary> /// 根据用户获取他授权的操作 /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public IEnumerable<AgentAuthorizeAction> GetAuthByUser(User user) { string sql = string.Format(@"select aaa.* from tb_ShadowAuthorizeAction saa join tb_AgentAuthorizeAction aaa on aaa.AuthorizeId=saa.AuthorizeId where saa.{0}=@{0}", ShadowAuthorizeAction.USERID); return base.ExecuteList<AgentAuthorizeAction>(sql, new SqlParameter(ShadowAuthorizeAction.USERID, user.UserId)); }
private void AddMemberPackage(User user, IEnumerable<CommissionGroup> groups) { foreach (var group in groups) { CommManager.AddMemberPackage(user, group); } }
public int CountActionLog(User target, DateTime fromDate, DateTime toDate) { string condition = target == null ? string.Empty : string.Format(" And {0}={1}", ActionLog.TARGETUSERID, target.UserId); string sql = string.Format(@"SELECT COUNT(0) FROM {0} WHERE CAST({2} as DATE) between CAST(@FromDate AS DATE) and CAST(@ToDate AS DATE) {1}", ActionLog.TABLENAME, condition, ActionLog.CREATETIME); object count = base.ExecuteScalar(sql, new SqlParameter("FromDate", fromDate), new SqlParameter("ToDate", toDate)); return Convert.ToInt32(count); }
public void AddMaster(User user, IEnumerable<LotterySpecies> species) { var userStrategy = UserStrategyFactory.GetFactory().GetUserStrategy(Role.Master, this); userStrategy.AddParam(UserStrategy.ROLE, Role.Master); userStrategy.AddParam(UserStrategy.SPECIES, species); userStrategy.AddUser(user); }
/// <summary> /// 更新用户下注限制(先删除,再插入) /// </summary> /// <param name="user">The user.</param> /// <param name="limits">The limits.</param> public void UpdateBetLimit(User user, IEnumerable<BetLimit> limits) { if (user.Role > Role.Company) { var parentLimits = DaBetLimit.ListLimitByUser(user.ParentId); foreach (var plimit in parentLimits) { var limit = limits.Find(it => it.GameId == plimit.GameId); if (limit == null) throw new InvalidDataException("limit", string.Format("不存在GameType:{0}的限制,UserId:{1}", plimit.GameType, user.UserId)); if (limit.LeastLimit < plimit.LeastLimit || limit.LargestLimit > plimit.LargestLimit) { var desc = EnumHelper.GetEnumDescript(plimit.GameType).Description; string message = string.Format(Resources.Models.ModelResource.OverOutRange, desc, plimit.LeastLimit, plimit.LargestLimit); throw new BusinessException(message); } } } limits = limits.ForEach(it => { it.UserId = user.UserId; return it; }); DaBetLimit.ExecuteWithTransaction(() => { DaBetLimit.DeleteLimit(user); DaBetLimit.InsertLimits(limits); }); }
public int CountBetSheet(User user, DateTime date, params BetStatus[] status) { string sql = string.Format(@"SELECT COUNT(0) FROM {0} WHERE {1}=@{1} AND CONVERT(char(10),{2},120)=CONVERT(char(10),@{2},120) AND Status in {3}", BetSheet.TABLENAME, BetSheet.USERID, BetSheet.CREATETIME, getStatusInStatement(status)); object count = base.ExecuteScalar(sql, new SqlParameter(BetSheet.USERID, user.UserId), new SqlParameter(BetSheet.CREATETIME, date)); return Convert.ToInt32(count); }
public int CountShadow(User user) { string sql = string.Format(@"SELECT COUNT(0) FROM {0} WHERE {1}=@{1} AND {2}=@{2}", User.TABLENAME, User.PARENTID, User.ROLEID); object count = base.ExecuteScalar(sql, new SqlParameter(User.PARENTID, user.UserId), new SqlParameter(User.ROLEID, (int)Role.Shadow)); return Convert.ToInt32(count); }
public MemberPackage GetMemberPackageBySpecie(User user, LotterySpecies specie) { string sql = string.Format(@"SELECT * FROM {0} WHERE {1}=@{1} AND {2}=@{2}", MemberPackage.TABLENAME, MemberPackage.USERID, MemberPackage.SPECIEID); return base.ExecuteModel<MemberPackage>(sql, new SqlParameter(MemberPackage.USERID, user.UserId), new SqlParameter(MemberPackage.SPECIEID, (int)specie)); }
public void Insert(User user) { string sql = string.Format(@"INSERT INTO {0} ({1},{2}) VALUES (@{1},@{2}) SELECT SCOPE_IDENTITY()", LoginFailedLog.TABLENAME, LoginFailedLog.USERID, LoginFailedLog.IPField); base.ExecuteScalar(sql, new SqlParameter(LoginFailedLog.USERID, user.UserId), new SqlParameter(LoginFailedLog.IPField, IPHelper.IPAddress)); }
public string GetNextUserName(User currentUser, bool isBuildShadow = false) { _current = string.Empty; if (isBuildShadow) { int childCount = UserManager.DaUser.CountShadow(currentUser) + 1; _current = string.Format("{0}@{1}", childCount, currentUser.UserName); if (UserManager.DaUser.GetUserByUserName(_current) != null) _current = string.Format("{0}a@{1}", childCount, currentUser.UserName); } else { int childCount = UserManager.DaUser.CountChild(currentUser); if (currentUser.Role < Role.Agent) { if (childCount > 0) Parse(childCount); else _current = "AA"; if (_current.Length == 1) _current = "A" + _current; if (currentUser.Role == Role.Company) _current = "VD" + _current; else _current = currentUser.UserName + _current; } else _current = currentUser.UserName + childCount.ToString("D3"); if (UserManager.DaUser.GetUserByUserName(_current) != null) _current+=1; } return _current; }
/// <summary> /// 根据用户和市场删除特定的佣金差 /// </summary> /// <param name="user">The user.</param> /// <param name="specie">The specie.</param> public void DeleteCommValues(User user, LotterySpecies specie) { string sql = string.Format(@"delete {0} where {1}=(select {3} from {2} where {4}=@{4} and {5}=@{5})", CommissionValue.TABLENAME, CommissionValue.COMMISSIONID, UserCommission.TABLENAME, UserCommission.COMMISSIONID, UserCommission.USERID, UserCommission.SPECIEID); base.ExecuteNonQuery(sql, new SqlParameter(UserCommission.USERID, user.UserId), new SqlParameter(UserCommission.SPECIEID, (int)specie)); }
public int GetFailedCount(User user, DateTime date) { string sql = string.Format(@"SELECT COUNT(0) FROM {0} WHERE {1}=@{1} AND CONVERT(char(10),{2},120)=CONVERT(char(10),@{2},120)", LoginFailedLog.TABLENAME, LoginFailedLog.USERID, LoginFailedLog.CREATEDATE); object count = base.ExecuteScalar(sql, new SqlParameter(LoginFailedLog.USERID, user.UserId), new SqlParameter(LoginFailedLog.CREATEDATE, date)); return Convert.ToInt32(count); }
public void InsertMemberPackage(User user, CommissionGroup group) { string sql = string.Format(@"INSERT INTO {0} ({1},{2},{3}) VALUES (@{1},@{2},@{3})", MemberPackage.TABLENAME, MemberPackage.USERID, MemberPackage.GROUPID, MemberPackage.SPECIEID); base.ExecuteNonQuery(sql, new SqlParameter(MemberPackage.USERID, user.UserId), new SqlParameter(MemberPackage.GROUPID, group.GroupId), new SqlParameter(MemberPackage.SPECIEID, group.SpecieId)); }
public CommissionGroup GetMemebersCommGroup(User member, LotterySpecies specie) { string sql = string.Format(@"select cg.* from tb_CommissionGroup cg join tb_MemberPackage mpa on mpa.GroupId=cg.GroupId where mpa.{0}=@{0} and mpa.{1}=@{1}", MemberPackage.USERID, MemberPackage.SPECIEID); return base.ExecuteModel<CommissionGroup>(sql, new SqlParameter(MemberPackage.USERID, member.UserId), new SqlParameter(MemberPackage.SPECIEID, (int)specie)); }
/// <summary> /// 获取用户特定市场的佣金差 /// </summary> /// <param name="user">The user.</param> /// <param name="specie">The specie.</param> /// <returns></returns> public IEnumerable<CommissionValue> GetCommissionValue(User user, LotterySpecies specie) { string sql = string.Format(@"SELECT CV.* FROM {0} CV JOIN {1} UC on UC.{3}=cv.{2} where UC.{4}=@{4} and UC.{5}=@{5}", CommissionValue.TABLENAME, UserCommission.TABLENAME, CommissionValue.COMMISSIONID, UserCommission.COMMISSIONID, UserCommission.USERID, UserCommission.SPECIEID); return base.ExecuteList<CommissionValue>(sql, new SqlParameter(UserCommission.USERID, user.UserId), new SqlParameter(UserCommission.SPECIEID, (int)specie)); }
public IDictionary<BetSheet, IList<BetOrder>> BuildOrder(User user, LotterySpecies specie, IEnumerable<AutoBetItem> betList, IDictionary<string, object> parameters) { this._betResult = new BetResult(); BetResult returnResult = new Models.BetResult(); var todayLotteryCompany = TodayLotteryCompany.Instance.GetTodayCompany(); //获取今日开奖公司 var memberComm = CommManager.GetMemberCommissionInSession(user, specie); //获取会员的佣金 IDictionary<BetSheet, IList<BetOrder>> betSheetDic = new Dictionary<BetSheet, IList<BetOrder>>(); IDictionary<BetSheet, IList<BetOrder>> resultDic = new Dictionary<BetSheet, IList<BetOrder>>(); foreach (var betOrder in betList) { int[] nums; switch (betOrder.BetType) { case AutoBetType.TwelveZodiac: nums = LotterySystem.Current.TwelveZodiac; break; case AutoBetType.EvenEven: nums = LotterySystem.Current.EvenEven; break; case AutoBetType.EvenOdd: nums = LotterySystem.Current.EvenOdd; break; case AutoBetType.OddEven: nums = LotterySystem.Current.OddEven; break; case AutoBetType.OddOdd: nums = LotterySystem.Current.OddOdd; break; case AutoBetType.Small: nums = LotterySystem.Current.Small; break; case AutoBetType.Big: nums = LotterySystem.Current.Big; break; default: throw new InvalidDataException("不可到达,数据异常!"); } var sheet = BuildAutoElectionCodeOrder(user, specie, betOrder.CompanyList, betOrder.WagerList, nums); betSheetDic.AddRange(sheet); returnResult.Append(this.BetResult); List<BetOrder> orderList = new List<BetOrder>(); foreach (var item in betSheetDic) orderList.AddRange(item.Value); StringBuilder companySb = new StringBuilder(); foreach (var companyId in betOrder.CompanyList) { var company = todayLotteryCompany.Find(it => it.CompanyId == companyId); if (company == null) throw new InvalidDataException("CompanyId:" + companyId); companySb.AppendFormat("{0} ", company.Abbreviation); } BetSheet orderSheet = new BetSheet { Num = betOrder.BetType.ToString(), Turnover = orderList.Sum(it => it.Turnover), NetAmount = orderList.Sum(it => it.NetAmount), Commission = orderList.Sum(it => it.Commission), UserId = user.UserId, Status = BetStatus.Valid, IPAddress = IPHelper.IPAddress, BetCompany = companySb.ToString(), BetAmount = JoinSheetBetAmount(sheet.Keys) }; resultDic.Add(orderSheet, orderList); betSheetDic.Clear(); } this._betResult = returnResult; return resultDic; }
public IEnumerable<LoginFailedLog> GetLog(User user, int start, int end) { string sql = string.Format(@"SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY LogId desc) AS RowNumber,* FROM {0} WHERE {1}=@{1} ) T WHERE RowNumber BETWEEN {2} AND {3}", LoginFailedLog.TABLENAME, LoginFailedLog.USERID, start, end); return base.ExecuteList<LoginFailedLog>(sql, new SqlParameter(LoginFailedLog.USERID, user.UserId)); }
/// <summary> /// 修改家族状态(以传入用户为根节点) /// </summary> /// <param name="user">The user.</param> /// <param name="state">The state.</param> public void UpdateFamilyState(User user, UserState state) { string sql = string.Format(@";WITH CTE AS( SELECT * FROM tb_User WHERE {0}=@{0} UNION ALL SELECT B.* FROM tb_User AS B,CTE AS C WHERE B.parentId=C.UserId and B.UserId>C.UserId) update tb_UserInfo set {1}=@{1} where UserId in (select UserId from CTE)", User.USERID, UserInfo.STATE); base.ExecuteNonQuery(sql, new SqlParameter(User.USERID, user.UserId), new SqlParameter(UserInfo.STATE, (int)state)); }
public IEnumerable<LoginLog> GetLog(User user, int startRow, int endRow) { string sql = string.Format(@"SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY LoginId desc) AS RowNumber,* FROM tb_LoginLog where {0}=@{0} ) T WHERE RowNumber BETWEEN {1} AND {2}", LoginLog.USERID, startRow, endRow); return base.ExecuteList<LoginLog>(sql, new SqlParameter(LoginLog.USERID, user.UserId)); }
/// <summary> /// 自身结算记录 /// </summary> /// <param name="user">The user.</param> /// <param name="fromDate">From date.</param> /// <param name="toDate">To date.</param> /// <returns></returns> public IEnumerable<SettleResult> GetSettleResult(User user, DateTime fromDate, DateTime toDate) { string sql = string.Format(@"SELECT UR.*,SR.*,ui.Name FROM {0} SR JOIN {1} UR ON UR.{2}=SR.{3} JOIN tb_UserInfo ui on ui.UserId=UR.userId WHERE UR.{4}=@{4} AND (CONVERT(char(10),SR.{5},120) BETWEEN CONVERT(char(10),@FromDate,120) AND CONVERT(char(10),@ToDate,120)) ORDER BY UR.USERID", SettleResult.TABLENAME, User.TABLENAME, User.USERID, SettleResult.USERID, User.USERID, SettleResult.CREATETIME); return base.ExecuteList<SettleResult>(sql, new SqlParameter(User.USERID, user.UserId), new SqlParameter("FromDate", fromDate), new SqlParameter("ToDate", toDate)); }
internal static BuildResult BuildUnionPL2(User user, LotterySpecies specie, IEnumerable<BetItem> betList, LimitChecker checker = null) { var builder = new UnionPL2OrderBuilder(); if (checker != null) builder.Checker = checker; return new BuildResult { Sheet = builder.BuildOrder(user, specie, betList, null), Result = builder.BetResult }; }
/// <summary> ///返回今日错误密码次数 /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public int AddLoginFailedLog(User user) { DaLoginFailedLog.Insert(user); int count = DaLoginFailedLog.GetFailedCount(user, DateTime.Today); if (count >= LotterySystem.Current.LockUserOfFailedPWDCount && user.UserInfo.State == UserState.Active) { UserManager.DaUserInfo.UpdateState(user, UserState.Suspended); ActionLogger.Log(user, user, LogResources.StopUser, LogResources.GetStopUser(user.UserName)); } return count; }
public void AddShadowAuth(User user, int[] auths) { List<ShadowAuthorizeAction> shadowAuths = new List<ShadowAuthorizeAction>(); foreach (int auth in auths) shadowAuths.Add(new ShadowAuthorizeAction { UserId = user.UserId, AuthorizeId = auth }); DaShadowAuth.Insert(shadowAuths); }
internal static BuildResult Build(User user, LotterySpecies specie, IEnumerable<BetItem> betList, bool isCon = false, LimitChecker checker = null) { var builder = new CommOrderBuilder(); if (checker != null) builder.Checker = checker; return new BuildResult { Sheet = builder.BuildOrder(user, specie, betList, new Dictionary<string, object> { { "ISCON", isCon } }), Result = builder.BetResult }; }
/// <summary> /// 更新家族树的分成(以传入User为根) /// </summary> /// <param name="user">The user.</param> /// <param name="shareRate">The share rate.</param> public void UpdateFamilyShareRate(User user, double shareRate) { string sql = string.Format(@";WITH CTE AS ( SELECT * FROM tb_User WHERE {0}=@{0} UNION ALL SELECT B.* FROM tb_User AS B,CTE AS C WHERE B.parentId=C.UserId and B.UserId>C.UserId ) update tb_UserInfo set {1}=@{1} where UserId in ( SELECT UserId FROM CTE)", User.USERID, UserInfo.SHARERATE); base.ExecuteNonQuery(sql, new SqlParameter(User.USERID, user.UserId), new SqlParameter(UserInfo.SHARERATE, shareRate)); }
public IEnumerable<ActionLog> GetActionLog(User user, int startRow, int endRow) { string sql = string.Format(@"SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY LogId desc) AS RowNumber,al.*,u.ParentId,u.UserName,u.RoleId FROM tb_ActionLog al JOIN tb_User u on u.UserId=al.TargetUserId where al.{0}=@{0} ) T WHERE RowNumber BETWEEN {1} AND {2}", ActionLog.USERID, startRow, endRow); return base.ExecuteList<ActionLog>(sql, new SqlParameter(ActionLog.USERID, user.UserId)); }
internal static BuildResult Build(User user, LotterySpecies specie, FastBetItem fastBetItem, GameType gameType, LimitChecker checker = null) { var builder = new FastBetOrderBuilder(); if (checker != null) builder.Checker = checker; return new BuildResult { Sheet = builder.BuildOrder(user, specie, new[] { fastBetItem }, new Dictionary<string, object> { { "GameType", gameType } }), Result = builder.BetResult }; }
public IEnumerable<OrderAncestorCommInfo> GetAncestorComms(User user, int companyId, BetStatus status, DateTime date) { string sql = string.Format(@"select oac.* from tb_BetOrder bo WITH (NOLOCK) join tb_BetSheet bs WITH (NOLOCK) on bs.SheetId=bo.SheetId join tb_OrderAncestorCommInfo oac WITH (NOLOCK) on oac.OrderId=bo.OrderId where bs.{0}=@{0} and bo.{1}=@{1} and bo.{2}=@{2} and CAST(bo.{3} as DATE)=CAST(@{3} as DATE)", BetSheet.USERID, BetOrder.COMPANYID, BetOrder.STATUS, BetOrder.CREATETIME); return base.ExecuteList<OrderAncestorCommInfo>(sql, new SqlParameter(BetSheet.USERID, user.UserId), new SqlParameter(BetOrder.COMPANYID, companyId), new SqlParameter(BetOrder.STATUS, (int)status), new SqlParameter(BetOrder.CREATETIME, date)); }