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); }
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("创建订单成功")); }
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)); }
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); }