示例#1
0
        private void Rollback(dynamic data)
        {
            Console.WriteLine("Api2 获取到数据" + data.UserId);
            Console.WriteLine("开始回滚 T_BalanceLog 表");
            int userId = Convert.ToInt32(data.UserId);

            CoCoSqlContext.Remove <T_BalanceLog>(x => x.UserId == userId);
        }
示例#2
0
        public ActionResult CreateOrder()
        {
            // 订单数量
            var orderCount = new Random().Next(1, 3);
            // 获取商品
            var product = CoCoSqlContext.FirstOrDefault <Product>();

            if (product == null)
            {
                return(Ok("没有商品数据"));
            }

            var locked = RedisHelper.Get("Lock");

            if (!string.IsNullOrWhiteSpace(locked))
            {
                return(Ok("当前抢购人数过多!"));
            }

            var isLock = RedisHelper.Set("Lock", DateTime.Now.ToString("G"), 10, CSRedis.RedisExistence.Nx);

            if (!isLock)
            {
                return(Ok("加锁失败,当前抢购人数过多!"));
            }

            var productId = product.Id;
            // 获取库存
            var inStock = CoCoSqlContext.FirstOrDefault <InStock>(x => x.ProductId == productId);

            if (inStock == null)
            {
                return(Ok("没有库存数据"));
            }

            // 库存不足
            if (orderCount > inStock.StockNumber)
            {
                return(Ok("库存不足"));
            }

            Order order = new Order()
            {
                Count       = orderCount,
                ProductId   = product.Id,
                ProductName = product.ProductName,
                SumAmount   = orderCount * product.Price
            };

            CoCoSqlContext.Insert(order);
            CoCoSqlContext.Update <InStock>(x => x.ProductId == productId, new { StockNumber = inStock.StockNumber - orderCount });
            RedisHelper.Del("Lock");

            return(Ok("创建订单成功"));
        }
示例#3
0
        public ActionResult TestPublish()
        {
            var userName = "******";

            CoCoSqlContext.Insert(new T_Users()
            {
                UserName = userName,
                Balance  = 100M
            });
            var user = CoCoSqlContext.FirstOrDefault <T_Users>(x => x.UserName == userName);

            CoCoSqlContext.Insert(new T_BalanceLog()
            {
                UserId = user.Id,
                Number = 100M,
                Type   = "增加"
            });
            _capBus.Publish("rollback", new { UserId = user.Id });
            return(Ok(1));
        }
示例#4
0
        static void Main(string[] args)
        {
            CoCoSqlEntrance sql = new CoCoSqlEntrance();

            sql.Init("server=.\\MSSQLSERVER2016;uid=sa;pwd=sasa;database=CoCoORMTest");

            //var count = CoCoSqlContext.Count<Student>(x => x.Id == 1);
            //var count2 = CoCoSqlContext.Count<Student>();

            //Console.WriteLine($"count : { count }!");
            //Console.WriteLine($"count2 : { count2 }!");

            //var data = CoCoSqlContext.Where<Student>(x => x.Id > 0);
            //var data2 = CoCoSqlContext.Where<Student>();
            //Console.WriteLine(JsonConvert.SerializeObject(data));
            //Console.WriteLine(JsonConvert.SerializeObject(data2));

            //var data3 = CoCoSqlContext.FirstOrDefault<Student>(x => x.Id > 0);
            //var data4 = CoCoSqlContext.FirstOrDefault<Student>();
            //Console.WriteLine(JsonConvert.SerializeObject(data3));
            //Console.WriteLine(JsonConvert.SerializeObject(data4));

            //CoCoSqlContext.Update<Student>(x => x.Id > 1, new { Age = 22 });
            //CoCoSqlContext.Update<Student>(new { Age = 20 });

            //CoCoSqlContext.Insert<Student>(new { CreateTime = DateTime.Now, Money = 1000.99M, Name = "赵六", Age = 22 });
            //CoCoSqlContext.Insert<Student>(new Student { CreateTime = DateTime.Now, Money = 1000.99M, Name = "赵六", Age = 22 });

            var studentId = 3;
            var temp      = new Student()
            {
                Id = 3
            };

            CoCoSqlContext.Remove <Student>(x => x.Id > temp.Id);
        }