public JsonResult SaveBets(int pkId, List <Bet> bets)
        {
            var result = new ResponseResult();

            try
            {
                // 验证下注时间是否合法, 超过当前PK的开盘时期则非法, 提示已封盘
                var isOpening = new PKService().IsOpening(pkId);
                if (!isOpening)
                {
                    result.Success = false;
                    result.Message = MessageConst.PK_IS_NOT_OPEN;
                }
                else
                {
                    var userExtendService = new UserExtensionService();

                    // 查验余额
                    var userExtend = userExtendService.GetUserExtension(LoginUser.UserId);
                    var betAmount  = bets.Sum(b => b.Amount);
                    if (betAmount > userExtend.Amount)
                    {
                        result.Success = false;
                        result.Code    = MessageConst.USER_BALANCE_IS_NOT_ENOUGH_CODE;//余额不足
                        result.Data    = userExtend.Amount;
                        result.Message = MessageConst.USER_BALANCE_IS_NOT_ENOUGH + " 当前余额 : " + userExtend.Amount;

                        PKBag.LoginUser.UserExtension.Amount = userExtend.Amount;
                    }
                    else
                    {
                        // 下注
                        new BetService().SaveBets(pkId, LoginUser.UserId, bets, null);

                        // 更新余额
                        userExtendService.MinusAmount(LoginUser.UserId, betAmount);
                        LoginUser.UserExtension.Amount = LoginUser.UserExtension.Amount - betAmount;

                        // 回传给前台, 更新余额
                        result.Data = LoginUser.UserExtension.Amount;
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = MessageConst.System_Error;
                _logger.Info(ex);
            }

            return(Json(result));
        }
Beispiel #2
0
        public ResponseResult AddBet(BetModel model)
        {
            var result = new ResponseResult();

            try
            {
                var user = new UserService().GetUserByUserName(model.userName);

                if (user == null)
                {
                    result.Success = false;
                    result.Message = MessageConst.USER_NOT_EXIST;

                    return(result);
                }
                else
                {
                    if (CryptoUtils.Decrypt(user.Password) != model.passWd)
                    {
                        result.Success = false;
                        result.Message = MessageConst.USER_INVALID_USERNAME_OR_PASSWORD;

                        return(result);
                    }
                }

                // 验证下注时间是否合法, 超过当前PK的开盘时期则非法, 提示已封盘
                var isOpening = new PKService().IsOpening(model.issue);
                if (!isOpening)
                {
                    result.Success = false;
                    result.Message = MessageConst.PK_IS_NOT_OPEN;

                    return(result);
                }
                else
                {
                    var userExtendService = new UserExtensionService();

                    // 查验余额
                    var userExtend = userExtendService.GetUserExtension(user.UserId);

                    var betAmount = model.score;
                    if (betAmount > userExtend.Amount)
                    {
                        result.Success = false;
                        result.Code    = MessageConst.USER_BALANCE_IS_NOT_ENOUGH_CODE;//余额不足
                        result.Data    = userExtend.Amount;
                        result.Message = MessageConst.USER_BALANCE_IS_NOT_ENOUGH + " 当前余额 : " + userExtend.Amount;

                        try
                        {
                            PKBag.LoginUser.UserExtension.Amount = userExtend.Amount;
                        }
                        catch { }
                    }
                    else
                    {
                        var bets = new List <Bet> {
                            new Bet {
                                OrderNo = model.orderId,
                                PKId    = model.issue,
                                UserId  = userExtend.UserId,
                                Rank    = model.rank,
                                Num     = model.value,
                                Amount  = model.score
                            }
                        };
                        // 下注
                        new BetService().SaveBets(model.issue, userExtend.UserId, bets, false);

                        // 更新余额
                        userExtendService.MinusAmount(userExtend.UserId, betAmount);
                        try
                        {
                            PKBag.LoginUser.UserExtension.Amount = userExtend.Amount - betAmount;
                        }
                        catch { }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Info(ex);

                result.Success = false;
                result.Message = MessageConst.System_Error;
            }

            return(result);
        }