Exemplo n.º 1
0
        /// <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 }
                });
        }
Exemplo n.º 2
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));
 }
Exemplo n.º 4
0
 private void AddMemberPackage(User user, IEnumerable<CommissionGroup> groups)
 {
     foreach (var group in groups)
     {
         CommManager.AddMemberPackage(user, group);
     }
 }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
 /// <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);
     });
 }
Exemplo n.º 8
0
 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);
 }
Exemplo n.º 9
0
 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));
 }
Exemplo n.º 12
0
        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));
 }
Exemplo n.º 18
0
        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));
 }
Exemplo n.º 20
0
 /// <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));
 }
Exemplo n.º 21
0
 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));
 }
Exemplo n.º 22
0
 /// <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));
 }
Exemplo n.º 23
0
 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
     };
 }
Exemplo n.º 24
0
 /// <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;
 }
Exemplo n.º 25
0
 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);
 }
Exemplo n.º 26
0
 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
     };
 }
Exemplo n.º 27
0
 /// <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));
 }
Exemplo n.º 28
0
 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));
 }
Exemplo n.º 29
0
 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));
 }