예제 #1
0
        public void AutoBuyChaseTicket(string gameName, string issueNumber)
        {
            TicketManager       ticketManager = new TicketManager(DbAccess);
            UserManager         userManager   = new UserManager(DbAccess);
            IList <ChaseEntity> chaseList     = ticketManager.GetChaseListByIssue(gameName, issueNumber, (int)ChaseStatus.Chasing);

            foreach (ChaseEntity chase in chaseList)
            {
                try
                {
                    UserFacade userFacade = new UserFacade();
                    UserInfo   user       = userFacade.GetUserInfo(chase.UserId);
                    if (user == null)
                    {
                        throw new Exception("用户不存在 - " + chase.UserId);
                    }
                    UserBalanceEntity balance = userManager.GetBalance(chase.UserId);
                    if (balance == null)
                    {
                        throw new Exception("用户帐户不存在 - " + chase.UserId);
                    }
                    TicketEntity ticket = ticketManager.GetTicket(chase.TicketId);
                    if (ticket == null)
                    {
                        throw new Exception("追号的票不存在 - " + chase.TicketId);
                    }
                    IList <TicketAnteCodeEntity> anteCodeList = ticketManager.GetAnteCodeListByTicket(chase.TicketId);
                    List <string> codes = new List <string>();
                    foreach (TicketAnteCodeEntity anteCodeEntity in anteCodeList)
                    {
                        codes.Add(anteCodeEntity.AnteCode);
                    }
                    balance.Freeze -= chase.Money;
                    userManager.ModifyBalance(balance);
                    HPResponseInfo response = DoBuy(user, gameName, issueNumber, (BuyType)ticket.BuyType, codes, chase.Money, chase.Amount);
                    if (response.Code == "0000")
                    {
                        chase.Status = (int)ChaseStatus.Finished;
                    }
                    else
                    {
                        chase.Status = (int)ChaseStatus.Error;
                    }
                    chase.ResponseCode    = response.Code;
                    chase.ResponseMessage = response.Message;
                    ticketManager.ModifyChaseStatus(chase);
                }
                catch (Exception ex)
                {
                    chase.Status          = (int)ChaseStatus.Error;
                    chase.ResponseCode    = "9999";
                    chase.ResponseMessage = "未知异常 - " + ex.Message;
                    ticketManager.ModifyChaseStatus(chase);

                    HandleException(LogCategory.Ticket, "自动认购追号失败!", ex, chase);
                }
            }
        }
예제 #2
0
        public void RequestGetMoney(string userId, int bankType, string bankName, string cardNumber, decimal money)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager  userManager  = new UserManager(tran);
                    MoneyManager moneyManager = new MoneyManager(tran);

                    UserBalanceEntity balance = userManager.GetBalance(userId);
                    if (money > balance.EnableMoney)
                    {
                        throw new FacadeException("余额不足");
                    }
                    MoneyGetDetailEntity moneyGetRequest = new MoneyGetDetailEntity();
                    moneyGetRequest.UserId         = userId;
                    moneyGetRequest.BankType       = bankType;
                    moneyGetRequest.BankName       = bankName;
                    moneyGetRequest.BankCardNumber = cardNumber;
                    moneyGetRequest.RequestMoney   = money;
                    moneyGetRequest.Status         = (int)MoneyGetStatus.Requesting;
                    moneyManager.AddMoneyGetRequest(moneyGetRequest);

                    if (balance.Freeze.HasValue)
                    {
                        balance.Freeze = balance.Freeze.Value + money;
                    }
                    else
                    {
                        balance.Freeze = money;
                    }
                    userManager.ModifyBalance(balance);

                    tran.Commit();
                }
            }
            catch (FacadeException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                HandleException(LogCategory.Money, "申请提款失败!", ex);
                throw new FacadeException("申请提款失败!");
            }
        }
예제 #3
0
        public void ChaseTicket(IList <ChaseAddInfo> chaseList)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager   userManager   = new UserManager(tran);
                    TicketManager ticketManager = new TicketManager(tran);

                    foreach (ChaseAddInfo chase in chaseList)
                    {
                        ChaseEntity chaseEntity = new ChaseEntity();
                        chaseEntity.TicketId     = chase.TicketId;
                        chaseEntity.GameName     = chase.GameName;
                        chaseEntity.IssuseNumber = chase.IssuseNumber;
                        chaseEntity.Amount       = chase.Amount;
                        chaseEntity.Money        = chase.Money;
                        chaseEntity.UserId       = chase.UserId;
                        chaseEntity.Status       = (int)ChaseStatus.Chasing;
                        ticketManager.AddTicketChase(chaseEntity);

                        UserBalanceEntity balance = userManager.GetBalance(chase.UserId);
                        if (balance == null)
                        {
                            throw new FacadeException("帐户不存在,请先充值!");
                        }
                        decimal balanceMoney = balance.Balance.HasValue ? balance.Balance.Value : 0;
                        decimal freezeMoney  = balance.Freeze.HasValue ? balance.Freeze.Value : 0;
                        decimal enableMoney  = balanceMoney - freezeMoney;
                        if (enableMoney < chase.Money)
                        {
                            throw new FacadeException("帐户余额不足,请先充值!");
                        }
                        // 更新用户余额 - 冻结金额
                        balance.Freeze += chase.Money;
                        userManager.ModifyBalance(balance);
                    }
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                throw HandleException(LogCategory.Ticket, "添加追号失败!", ex);
            }
        }
예제 #4
0
        public void AcceptRequestGetMoney(long id, string operateUserId, string message)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager  userManager  = new UserManager(tran);
                    MoneyManager moneyManager = new MoneyManager(tran);

                    MoneyGetDetailEntity moneyGetDetail = moneyManager.GetMoneyGetDetailEntity(id);
                    if (moneyGetDetail.Status != (int)MoneyGetStatus.Requesting)
                    {
                        throw new FacadeException("此请求已经被处理!");
                    }
                    UserBalanceEntity balance = userManager.GetBalance(moneyGetDetail.UserId);
                    if (balance.Freeze.Value < moneyGetDetail.RequestMoney)
                    {
                        throw new FacadeException("用户账户发生异常,冻结金额不足!");
                    }

                    moneyGetDetail.Status          = (int)MoneyGetStatus.Accepted;
                    moneyGetDetail.ResponseUserId  = operateUserId;
                    moneyGetDetail.ResponseMoney   = moneyGetDetail.RequestMoney;
                    moneyGetDetail.ResponseMessage = message;
                    moneyManager.ModifyMoneyGetResponseStatus(moneyGetDetail);

                    balance.Freeze  -= moneyGetDetail.RequestMoney;
                    balance.Balance -= moneyGetDetail.RequestMoney;
                    userManager.ModifyBalance(balance);

                    tran.Commit();
                }
            }
            catch (FacadeException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                HandleException(LogCategory.Money, "处理接受提款申请失败!", ex);
                throw new FacadeException("处理接受提款申请失败!");
            }
        }
예제 #5
0
        public void Register(UserInfo user, string password)
        {
            LoginEntity loginEntity = new LoginEntity();

            loginEntity.UserId     = user.UserId;
            loginEntity.UserName   = user.UserName;
            loginEntity.IsCanLogin = true;

            UserBaseEntity userBaseEntity = new UserBaseEntity();

            userBaseEntity.UserId     = user.UserId;
            userBaseEntity.RealName   = user.RealName;
            userBaseEntity.Email      = user.Email;
            userBaseEntity.CardType   = user.IdCardType;
            userBaseEntity.CardNumber = user.IdCardNumber;
            userBaseEntity.Mobile     = user.Mobile;

            UserBalanceEntity balanceEntity = new UserBalanceEntity();

            balanceEntity.UserId  = user.UserId;
            balanceEntity.Balance = 0;
            balanceEntity.Freeze  = 0;

            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager manager = new UserManager(tran);
                    password = EncryptTool.MD5(password);
                    manager.AddLogin(loginEntity, password);
                    manager.AddUserBase(userBaseEntity);
                    manager.AddBalance(balanceEntity);
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                string errMsg = "注册新用户失败 - 系统异常,请联系系统管理员!";
                throw HandleException(LogCategory.Register, errMsg, ex);
            }
        }
예제 #6
0
        /// <summary>
        /// 是否满足升级条件
        /// </summary>
        /// <param name="UserId"></param>
        /// <param name="LvId"></param>
        /// <returns></returns>
        public int judgeUpagentUser(int UserId, int LvId)
        {
            UpConditionBll    Upbll        = new UpConditionBll();
            AgentuserBll      userbll      = new AgentuserBll();
            AgentuserEntity   userentity   = userbll.selectById(UserId);
            AgentuserEntity   upuserentity = new AgentuserEntity();
            AgentuserUptagBll uptagbll     = new AgentuserUptagBll();
            UserlvBll         lvbll        = new UserlvBll();
            UpAgentsEntity    TableEntity  = new UpAgentsEntity();
            int YeworNo = 0;

            if (LvId > 3)
            {
                UserBalanceBll    balbll        = new UserBalanceBll();
                UserBalanceEntity blentity      = balbll.selectById(UserId);
                UpConditionEntity upthreeEntity = new UpConditionEntity();
                int Uthreepid = 3;
                upthreeEntity = Upbll.selectById(Uthreepid);
                double PayMoney = upthreeEntity.PayMoney;
                if (blentity != null)
                {
                    int    UserPid      = Query(UserId, Uthreepid);
                    double BalancePrice = blentity.BalancePrice;
                    int    ReNum        = blentity.ReNum;
                    if (BalancePrice >= PayMoney)
                    {
                        YeworNo = 1;
                    }
                }
            }
            if (LvId == 3)
            {
                UpConditionEntity upEntity = new UpConditionEntity();
                int Upid = LvId - 1;
                upEntity = Upbll.selectById(Upid);
                int    Upthree                  = upEntity.Upthree;
                string lvthreewhere             = "Inviter=" + UserId + " and LvId=3 and State=1";
                List <AgentuserEntity> listUser = userbll.selectByWhere(lvthreewhere); //直接邀请的人数

                List <AgentuserEntity> JlistUser = AlllvThree(UserId);                 //间接人数和直接总合

                string otherwhere = "StarInviter=" + UserId + " and LvId<3 and State=1";
                List <AgentuserEntity> listotherUser = userbll.selectByWhere(otherwhere);
                if (listUser != null)
                {
                    int UsrtNum = 0;
                    foreach (var item in listUser)
                    {
                        UsrtNum++;
                    }
                    int UserotherNum = 0;
                    if (listotherUser != null)
                    {
                        foreach (var itemother in listotherUser)
                        {
                            UserotherNum++;
                        }
                    }
                    int UsrtNumTotal = UsrtNum + UserotherNum;
                    if (UsrtNumTotal >= Upthree)
                    {
                        YeworNo = 1;
                    }
                }
            }

            if (LvId == 2)
            {
                UpConditionEntity upEntity = new UpConditionEntity();
                int Upid = LvId - 1;
                upEntity = Upbll.selectById(Upid);
                int    Upthree      = upEntity.Upthree; //总代个数 条件
                int    Uptwo        = upEntity.Uptwo;   //大总个数 条件
                string lvthreewhere = "Inviter=" + UserId + " and LvId=3 and State=1";
                string twowhere     = "Inviter=" + UserId + " and LvId=2 and State=1";
                string otherwhere   = "StarInviter=" + UserId + " and LvId=1 and State=1";
                List <AgentuserEntity> listthreeUser = userbll.selectByWhere(lvthreewhere); //直线总代个数
                List <AgentuserEntity> listtwoUser   = userbll.selectByWhere(twowhere);     //直线大总个数

                List <AgentuserEntity> listotherUser = userbll.selectByWhere(otherwhere);   //直线邀请人  已经升级到大牌

                List <AgentuserEntity> Listtwoall = AlllvTwo(UserId);
                int AllListtwoal = AllUserTwoandOne(UserId);

                if (listthreeUser != null && listtwoUser != null)
                {
                    int UserthreeNum = 0; //直线总代个数
                    foreach (var itemtree in listthreeUser)
                    {
                        UserthreeNum++;
                    }

                    int UsertwoNum = 0;//已经升级到大总个数
                    foreach (var itemtwo in listtwoUser)
                    {
                        UsertwoNum++;
                    }
                    int UserotherNum = 0;//已经升级到大牌个数
                    if (listotherUser != null)
                    {
                        foreach (var itemother in listotherUser)
                        {
                            UserotherNum++;
                        }
                    }
                    int AllUptwo = UserotherNum + UsertwoNum; //自己升级到大总和大牌总和

                    //满足升条件  1、总代+大总 +大牌个数>=10  也就是说
                    //1、大总和大牌  必须大于0
                    // 满足升级大牌得条件
                    //总代 直线 9 +1大总或者大牌
                    if (AllUptwo > 0 && UserthreeNum + UserotherNum + UsertwoNum >= Upthree + Uptwo)
                    {
                        YeworNo = 1;
                    }
                    if (AllListtwoal >= Uptwo && UserthreeNum + UserotherNum + UsertwoNum >= Upthree)
                    {
                        YeworNo = 1;
                    }
                }
            }
            return(YeworNo);
        }
예제 #7
0
        /// <summary>
        /// 把升级信息写入数据库
        /// </summary>
        /// <param name="UserId"></param>
        /// <param name="LvId"></param>
        /// <returns></returns>
        public UpAgentsEntity UpagentUserEntity(int UserId, int LvId)
        {
            UpConditionBll  Upbll      = new UpConditionBll();
            AgentuserBll    userbll    = new AgentuserBll();
            AgentuserEntity userentity = userbll.selectById(UserId);
            UserBalanceBll  balbll     = new UserBalanceBll();

            AgentuserUptagBll uptagbll    = new AgentuserUptagBll();
            UserlvBll         lvbll       = new UserlvBll();
            UpAgentsEntity    TableEntity = new UpAgentsEntity();

            if (LvId > 3)
            {
                int Uppid = 3;
                UserBalanceEntity blentity      = balbll.selectById(UserId);
                UpConditionEntity upthreeEntity = new UpConditionEntity();
                upthreeEntity = Upbll.selectById(Uppid);
                double PayMoney = upthreeEntity.PayMoney;
                if (blentity != null)
                {
                    double BalancePrice = blentity.BalancePrice;
                    int    ReNum        = blentity.ReNum;
                    if (BalancePrice >= PayMoney)
                    {
                        int          UserPid     = Query(UserId, Uppid);
                        UserlvEntity nowlvEntity = lvbll.selectById(LvId);
                        UserlvEntity pulvEntity  = lvbll.selectById(Uppid);
                        TableEntity.LvName    = nowlvEntity.Name;
                        TableEntity.UpingName = pulvEntity.Name;
                        TableEntity.Name      = userentity.Name;
                        TableEntity.Mobile    = userentity.Mobile;
                        TableEntity.UserId    = UserId;
                        TableEntity.UpingLvid = Uppid;

                        AgentReupEntityUserId(UserId, userentity.Inviter, UserPid);
                    }
                }
            }

            if (LvId == 3)
            {
                int          Upid        = LvId - 1;
                int          UserPid     = Query(UserId, Upid);
                UserlvEntity nowlvEntity = lvbll.selectById(LvId);
                UserlvEntity pulvEntity  = lvbll.selectById(Upid);
                TableEntity.LvName    = nowlvEntity.Name;
                TableEntity.UpingName = pulvEntity.Name;
                TableEntity.Name      = userentity.Name;
                TableEntity.Mobile    = userentity.Mobile;
                TableEntity.UserId    = UserId;
                TableEntity.UpingLvid = Upid;
            }
            if (LvId == 2)
            {
                int          Upid        = LvId - 1;
                UserlvEntity nowlvEntity = lvbll.selectById(LvId);
                UserlvEntity pulvEntity  = lvbll.selectById(Upid);
                TableEntity.LvName    = nowlvEntity.Name;
                TableEntity.UpingName = pulvEntity.Name;
                TableEntity.Name      = userentity.Name;
                TableEntity.Mobile    = userentity.Mobile;
                TableEntity.UserId    = UserId;
                TableEntity.UpingLvid = Upid;
            }
            return(TableEntity);
        }
예제 #8
0
        /// <summary>
        /// 更新投注响应状态
        /// </summary>
        public void UpdateTicketStatus(TicketMappingInfo ticket, UserInfo user, HPResponseInfo response)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager   userManager   = new UserManager(tran);
                    TicketManager ticketManager = new TicketManager(tran);

                    TicketDetailEntity tmp = ticketManager.GetFreezeTicketDetail(ticket.TicketId, user.UserId);
                    if (tmp == null || tmp.Status != (int)TicketStatus.Requesting)
                    {
                        throw new FacadeException("帐户数据错误,请联系系统管理员!");
                    }
                    UserBalanceEntity balance = userManager.GetBalance(user.UserId);
                    if (balance == null)
                    {
                        throw new FacadeException("帐户不存在,请先充值!");
                    }
                    TicketEntity entity = ticketManager.GetTicket(ticket.TicketId);
                    if (entity == null)
                    {
                        throw new FacadeException("出票数据错误,请联系管理员!");
                    }
                    if (response.Code == "0000")
                    {
                        entity.Status = (int)TicketStatus.Determinate;

                        TicketDetailEntity detail = new TicketDetailEntity();
                        detail.UserId        = user.UserId;
                        detail.TicketId      = ticket.TicketId;
                        detail.BalanceBefore = tmp.BalanceAfter;
                        detail.FreezeBefore  = tmp.FreezeAfter;
                        detail.PayMoney      = tmp.PayMoney;
                        detail.BalanceAfter  = tmp.BalanceAfter - tmp.PayMoney;
                        detail.FreezeAfter   = tmp.FreezeAfter - tmp.PayMoney;
                        detail.Status        = (int)TicketStatus.Determinate;
                        detail.Message       = "落地 - 更新金额并解冻" + tmp.PayMoney;
                        detail.CurrentTime   = DateTime.Now;
                        // 添加彩票购买明细日志记录 - 状态为落地
                        ticketManager.AddTicketDetail(detail);

                        balance.Balance -= tmp.PayMoney;
                        balance.Freeze  -= tmp.PayMoney;
                        userManager.ModifyBalance(balance);
                    }
                    else
                    {
                        entity.Status = (int)TicketStatus.Error;

                        TicketDetailEntity detail = new TicketDetailEntity();
                        detail.UserId        = user.UserId;
                        detail.TicketId      = ticket.TicketId;
                        detail.BalanceBefore = tmp.BalanceAfter;
                        detail.FreezeBefore  = tmp.FreezeAfter;
                        detail.PayMoney      = tmp.PayMoney;
                        detail.BalanceAfter  = tmp.BalanceAfter;
                        detail.FreezeAfter   = tmp.FreezeAfter - tmp.PayMoney;
                        detail.Status        = (int)TicketStatus.Error;
                        detail.Message       = "错误 - " + response.Message + " - 恢复冻结金额" + ticket.Money;
                        detail.CurrentTime   = DateTime.Now;
                        // 添加彩票购买明细日志记录 - 状态为错误
                        ticketManager.AddTicketDetail(detail);

                        balance.Freeze -= tmp.PayMoney;
                        userManager.ModifyBalance(balance);
                    }
                    entity.ResponseCode    = response.Code;
                    entity.ResponseMessage = response.Message;
                    entity.ResponseTime    = DateTime.Now;

                    ticketManager.ModifyTicket(entity);
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                throw HandleException(LogCategory.Ticket, "更新投注状态失败! - " + ex.Message, ex, ticket, response);
            }
        }
예제 #9
0
        /// <summary>
        /// 投注购票
        /// </summary>
        public void BuyTicket(TicketMappingInfo ticket, UserInfo user)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager   userManager   = new UserManager(tran);
                    TicketManager ticketManager = new TicketManager(tran);

                    UserBalanceEntity balance = userManager.GetBalance(user.UserId);
                    if (balance == null)
                    {
                        throw new FacadeException("帐户不存在,请先充值!");
                    }
                    decimal balanceMoney = balance.Balance.HasValue ? balance.Balance.Value : 0;
                    decimal freezeMoney  = balance.Freeze.HasValue ? balance.Freeze.Value : 0;
                    decimal enableMoney  = balanceMoney - freezeMoney;
                    if (enableMoney < ticket.Money)
                    {
                        throw new FacadeException("帐户余额不足,请先充值!");
                    }

                    TicketDetailEntity detail = new TicketDetailEntity();
                    detail.UserId        = user.UserId;
                    detail.TicketId      = ticket.TicketId;
                    detail.BalanceBefore = balanceMoney;
                    detail.FreezeBefore  = freezeMoney;
                    detail.PayMoney      = ticket.Money;
                    detail.BalanceAfter  = balanceMoney;
                    detail.FreezeAfter   = freezeMoney + ticket.Money;
                    detail.Status        = (int)TicketStatus.Requesting;
                    detail.Message       = "投注 - 冻结金额" + ticket.Money;
                    detail.CurrentTime   = DateTime.Now;
                    // 添加彩票购买明细日志记录 - 状态为请求中
                    ticketManager.AddTicketDetail(detail);
                    // 更新用户余额 - 冻结金额
                    balance.Freeze += ticket.Money;
                    userManager.ModifyBalance(balance);

                    TicketEntity entity = new TicketEntity();
                    entity.TicketId     = ticket.TicketId;
                    entity.BuyType      = (int)ticket.BuyType;
                    entity.Amount       = ticket.Amount;
                    entity.Money        = ticket.Money;
                    entity.UserId       = user.UserId;
                    entity.GameName     = ticket.IssueInfo.GameName;
                    entity.IssuseNumber = ticket.IssueInfo.Number;
                    entity.Status       = (int)TicketStatus.Requesting;
                    entity.RequestTime  = DateTime.Now;
                    ticketManager.AddTicket(entity);
                    foreach (string code in ticket.AnteCodes)
                    {
                        TicketAnteCodeEntity anteCode = new TicketAnteCodeEntity();
                        anteCode.TicketId = ticket.TicketId;
                        anteCode.AnteCode = code;
                        ticketManager.AddAnteCode(anteCode);
                    }
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                throw HandleException(LogCategory.Ticket, "投注购票失败!", ex, ticket, user);
            }
        }
예제 #10
0
        public void DistributeBonus(string gameName, string issueNumber)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    BonusManager bonusManger = new BonusManager(tran);
                    UserManager  userManager = new UserManager(tran);

                    BonusEntity bonusEntity = bonusManger.GetBonus(gameName, issueNumber);
                    if (bonusEntity == null)
                    {
                        throw new Exception("要分派的奖期信息不存在 - " + gameName + ":" + issueNumber);
                    }
                    if (bonusEntity.IsDistributed)
                    {
                        throw new Exception("此奖期已经派奖 - " + gameName + ":" + issueNumber);
                    }
                    IList <BonusDetailEntity> bonusDetailList = bonusManger.GetBonusDetailList(gameName, issueNumber);
                    TicketManager             ticketManager   = new TicketManager(tran);
                    foreach (BonusDetailEntity bonusDetail in bonusDetailList)
                    {
                        TicketEntity ticket = ticketManager.GetTicket(bonusDetail.TicketId);
                        if (ticket != null)
                        {
                            BonusDistributeEntity bonusDistribute = new BonusDistributeEntity();
                            bonusDistribute.TicketId     = bonusDetail.TicketId;
                            bonusDistribute.BonusLevel   = bonusDetail.BonusLevel;
                            bonusDistribute.UserId       = ticket.UserId;
                            bonusDistribute.GameName     = bonusDetail.GameName;
                            bonusDistribute.IssuseNumber = bonusDetail.IssuseNumber;
                            bonusDistribute.PlayType     = bonusDetail.PlayType;
                            bonusDistribute.IsBombBonus  = bonusDetail.IsBombBonus;
                            bonusDistribute.BonusSize    = bonusDetail.Size;
                            bonusDistribute.Money        = bonusDetail.Money;

                            bonusManger.AddBonusDistribute(bonusDistribute);

                            UserBalanceEntity balanceEntity = userManager.GetBalance(ticket.UserId);
                            if (balanceEntity == null)
                            {
                                throw new Exception("异常 - 彩民的账户不存在 - " + ticket.UserId);
                            }
                            if (!balanceEntity.Balance.HasValue)
                            {
                                throw new Exception("异常 - 彩民的账户为空 - " + ticket.UserId);
                            }
                            balanceEntity.Balance += bonusDetail.Money;
                            userManager.ModifyBalance(balanceEntity);
                        }
                    }
                    bonusEntity.IsDistributed = true;
                    bonusManger.ModifyBonusDistrbite(bonusEntity);

                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                string errMsg = "派奖失败 - " + gameName + ":" + issueNumber;
                throw HandleException(LogCategory.Distribute, errMsg, ex);
            }
        }