コード例 #1
0
ファイル: UsersController.cs プロジェクト: Mr-Tommy/ShiJieBei
        private void Charge(User user, string number, decimal vouchers, string description, int gameId)
        {
            var log = db.AccountVouchersLog.FirstOrDefault(a => a.Number == number);

            if (log != null)
            {
                throw new Exception(String.Format("订单号{0}已经处理过,Description:{1},Vouchers:{2}", number, description, vouchers));
            }
            //生成账户记录
            AccountVouchersLog accountLog = new AccountVouchersLog()
            {
                Account     = user.Account,
                AccountId   = user.Id,
                Before      = user.Account.Vouchers,
                After       = user.Account.Vouchers + vouchers,
                Vouchers    = vouchers,
                Description = description,
                CreateTime  = DateTime.Now,
                Number      = number,
                Type        = AccountVouchersLogType.Charge,
                DetailId    = gameId
            };

            db.AccountVouchersLog.Add(accountLog);
            //修改账户余额
            var userData = db.Users.Where(u => u.Id == user.Id).FirstOrDefault();

            userData.Account.Vouchers += vouchers;

            db.SaveChanges();
        }
コード例 #2
0
        public JsonResult CreateOrder(int gameId, int count, int gameResult)
        {
            int fee = 20 * count;

            if (CurrentUser == null)
            {
                return(Json(new { success = false, msg = "未登录" }));
            }
            if (CurrentUser.Account.Vouchers < fee)
            {
                return(Json(new { success = false, msg = "余额不足,微信联系客服mytokenera进行充值" }));
            }
            int userId    = CurrentUser.Id;
            var game      = _db.Games.Find(gameId);
            var gameOrder = new GameOrders
            {
                GameCount       = count,
                GameId          = gameId,
                UserId          = userId,
                Number          = Utils.GetOrderNumber(),
                GameOrderStatus = (GameOrderStatus)gameResult,
                CreateTime      = DateTime.Now
            };

            _db.GameOrders.Add(gameOrder);
            _db.SaveChanges();

            string resultStr = "";

            if (gameOrder.GameOrderStatus == GameOrderStatus.Win)
            {
                resultStr = "主胜";
            }
            else if (gameOrder.GameOrderStatus == GameOrderStatus.Ping)
            {
                resultStr = "平";
            }
            else if (gameOrder.GameOrderStatus == GameOrderStatus.Lose)
            {
                resultStr = "客胜";
            }
            AccountVouchersLog log = new AccountVouchersLog()
            {
                Account     = CurrentUser.Account,
                AccountId   = CurrentUser.Account.Id,
                Before      = CurrentUser.Account.Vouchers,
                After       = CurrentUser.Account.Vouchers - fee,
                CreateTime  = DateTime.Now,
                Description = $"竞猜【{game.ZhuChang}】VS【{game.KeChang}】,{resultStr}{count}注,消耗{fee}积分",
                Vouchers    = fee,
                Number      = gameOrder.Number,
                DetailId    = gameId,
                Type        = AccountVouchersLogType.Pay,
            };

            _db.AccountVouchersLog.Add(log);
            CurrentUser.Account.Vouchers -= fee;
            _db.SaveChanges();
            return(Json(new { success = true }));
        }
コード例 #3
0
        public void Charge(User user, string number, decimal vouchers, string description, int gameId)
        {
            var log = db.AccountVouchersLog.FirstOrDefault(a => a.Number == number);

            if (log != null)
            {
                throw new Exception($"订单号{number}已经处理过,Description:{description},Vouchers:{vouchers}");
            }
            //生成账户记录
            AccountVouchersLog accountLog = new AccountVouchersLog()
            {
                Account     = user.Account,
                AccountId   = user.Id,
                Before      = user.Account.Vouchers,
                After       = user.Account.Vouchers + vouchers,
                Vouchers    = vouchers,
                Description = description,
                CreateTime  = DateTime.Now,
                Number      = number,
                Type        = AccountVouchersLogType.Income,
                DetailId    = gameId
            };

            db.AccountVouchersLog.Add(accountLog);
            //修改账户余额
            var userData = db.Users.FirstOrDefault(u => u.Id == user.Id);

            if (userData != null)
            {
                userData.Account.Vouchers += vouchers;
            }

            db.SaveChanges();
        }
コード例 #4
0
        public ActionResult InputTestOrders()
        {
            Random r = new Random();

            foreach (var item in _db.Games)
            {
                for (int i = 0; i < 19; i++)
                {
                    var randomUserId = r.Next(1, 50);
                    var count        = 1;
                    var gameResult   = r.Next(0, 3);
                    var user         = _db.Users.Where(u => u.Id == randomUserId).FirstOrDefault();
                    int fee          = 20 * count;

                    int    userId  = user.Id;
                    var    game    = _db.Games.Find(item.Id);
                    int    day     = r.Next(14, 20);
                    int    hour    = r.Next(0, 24);
                    int    minute  = r.Next(0, 60);
                    int    second  = r.Next(0, 60);
                    string tempStr =
                        $"{DateTime.Now:yyyy}-{DateTime.Now:MM}-{day} {hour}:{minute}:{second}";
                    DateTime rTime     = Convert.ToDateTime(tempStr);
                    var      gameOrder = new GameOrders
                    {
                        GameCount       = count,
                        GameId          = item.Id,
                        UserId          = userId,
                        Number          = Utils.GetOrderNumber(),
                        GameOrderStatus = (GameOrderStatus)gameResult,
                        CreateTime      = rTime
                    };
                    _db.GameOrders.Add(gameOrder);

                    string resultStr = "";
                    if (gameOrder.GameOrderStatus == GameOrderStatus.Win)
                    {
                        resultStr = "主胜";
                    }
                    else if (gameOrder.GameOrderStatus == GameOrderStatus.Ping)
                    {
                        resultStr = "平";
                    }
                    else if (gameOrder.GameOrderStatus == GameOrderStatus.Lose)
                    {
                        resultStr = "客胜";
                    }
                    AccountVouchersLog log = new AccountVouchersLog()
                    {
                        Account     = user.Account,
                        AccountId   = user.Account.Id,
                        Before      = user.Account.Vouchers,
                        After       = user.Account.Vouchers - fee,
                        CreateTime  = DateTime.Now,
                        Description = $"竞猜【{game.ZhuChang}】VS【{game.KeChang}】,{resultStr}{count}注,消耗{fee}积分",
                        Vouchers    = fee,
                        Number      = gameOrder.Number,
                        DetailId    = item.Id,
                        Type        = AccountVouchersLogType.Pay,
                    };
                    _db.AccountVouchersLog.Add(log);
                    user.Account.Vouchers -= fee;
                }
            }
            _db.SaveChanges();
            return(Content($"{DateTime.Now}生成订单成功"));
        }