|
@@ -39,7 +39,7 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private void dosomething()
|
|
|
{
|
|
|
bool op = true;
|
|
@@ -48,99 +48,106 @@ namespace MySystem
|
|
|
string content = RedisDbconn.Instance.RPop<string>("PayCallBack2");
|
|
|
if (!string.IsNullOrEmpty(content))
|
|
|
{
|
|
|
- JsonData jsonObj = JsonMapper.ToObject(content);
|
|
|
- string OrderNo = jsonObj["out_trade_no"].ToString();
|
|
|
- string TradeNo = jsonObj["transaction_id"].ToString();
|
|
|
- decimal TotalFee = decimal.Parse(function.CheckNum(jsonObj["total_fee"].ToString()));
|
|
|
- WebCMSEntities db = new WebCMSEntities();
|
|
|
- OrderForNo forNo = db.OrderForNo.FirstOrDefault(m => m.OrderNo == OrderNo);
|
|
|
- if (forNo != null)
|
|
|
+ sloveAlipayCallBack(content);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ op = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void sloveAlipayCallBack(string content)
|
|
|
+ {
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(content);
|
|
|
+ string OrderNo = jsonObj["out_trade_no"].ToString();
|
|
|
+ string TradeNo = jsonObj["transaction_id"].ToString();
|
|
|
+ decimal TotalFee = decimal.Parse(function.CheckNum(jsonObj["total_fee"].ToString()));
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ OrderForNo forNo = db.OrderForNo.FirstOrDefault(m => m.OrderNo == OrderNo);
|
|
|
+ if (forNo != null)
|
|
|
+ {
|
|
|
+ string[] ids = forNo.OrderIds.Split(',');
|
|
|
+ foreach (string idString in ids)
|
|
|
+ {
|
|
|
+ int OrderId = int.Parse(idString);
|
|
|
+ Orders order = db.Orders.FirstOrDefault(m => m.Id == OrderId && m.Status == 0);
|
|
|
+ if (order != null)
|
|
|
{
|
|
|
- string[] ids = forNo.OrderIds.Split(',');
|
|
|
- foreach (string idString in ids)
|
|
|
+ order.Status = 1;
|
|
|
+ order.PayDate = DateTime.Now;
|
|
|
+ order.PayStatus = 1;
|
|
|
+ db.SaveChanges();
|
|
|
+ RedisDbconn.Instance.Set("Orders:" + order.Id, order);
|
|
|
+
|
|
|
+ OrderProduct pro = db.OrderProduct.FirstOrDefault(m => m.OrderId == OrderId);
|
|
|
+ if (pro != null)
|
|
|
{
|
|
|
- int OrderId = int.Parse(idString);
|
|
|
- Orders order = db.Orders.FirstOrDefault(m => m.Id == OrderId && m.Status == 0);
|
|
|
- if (order != null)
|
|
|
+ KqProducts brand = db.KqProducts.FirstOrDefault(m => m.Sort == pro.ProductId);
|
|
|
+ if (brand != null)
|
|
|
{
|
|
|
- order.Status = 1;
|
|
|
- order.PayDate = DateTime.Now;
|
|
|
- order.PayStatus = 1;
|
|
|
+ order.Status = 2;
|
|
|
db.SaveChanges();
|
|
|
- RedisDbconn.Instance.Set("Orders:" + order.Id, order);
|
|
|
-
|
|
|
- OrderProduct pro = db.OrderProduct.FirstOrDefault(m => m.OrderId == OrderId);
|
|
|
- if (pro != null)
|
|
|
+ int BuyCount = pro.ProductCount;
|
|
|
+ int Kind = 0;
|
|
|
+ if(pro.ProductPrice == 200) Kind = 1;
|
|
|
+ if(pro.ProductPrice == 300) Kind = 2;
|
|
|
+ string Codes = "";
|
|
|
+ var coupons = db.PosCoupons.Where(m => m.IsLock == 0 && m.IsUse == 0 && m.UserId == 0 && m.QueryCount == Kind).OrderBy(m => m.Id).Take(BuyCount).ToList();
|
|
|
+ foreach (var coupon in coupons)
|
|
|
{
|
|
|
- KqProducts brand = db.KqProducts.FirstOrDefault(m => m.Sort == pro.ProductId);
|
|
|
- if (brand != null)
|
|
|
+ PosCoupons item = db.PosCoupons.FirstOrDefault(m => m.Id == coupon.Id);
|
|
|
+ if (item != null)
|
|
|
{
|
|
|
- int BuyCount = pro.ProductCount;
|
|
|
- int Kind = 0;
|
|
|
- if(pro.ProductPrice == 200) Kind = 1;
|
|
|
- if(pro.ProductPrice == 300) Kind = 2;
|
|
|
- string Codes = "";
|
|
|
- var coupons = db.PosCoupons.Where(m => m.IsLock == 0 && m.IsUse == 0 && m.UserId == 0 && m.QueryCount == Kind).OrderBy(m => m.Id).Take(BuyCount).ToList();
|
|
|
- foreach (var coupon in coupons)
|
|
|
- {
|
|
|
- PosCoupons item = db.PosCoupons.FirstOrDefault(m => m.Id == coupon.Id);
|
|
|
- if (item != null)
|
|
|
- {
|
|
|
- item.CreateDate = DateTime.Now;
|
|
|
- item.UserId = order.UserId;
|
|
|
- item.UpdateDate = DateTime.Now.AddDays(180);
|
|
|
- Codes += item.ExchangeCode + ",";
|
|
|
- }
|
|
|
- }
|
|
|
- order.SnNos = Codes.TrimEnd(',');
|
|
|
- string ChangeRecordNo = "SC" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
|
|
|
- PosCouponForUser forUser = db.PosCouponForUser.FirstOrDefault(m => m.Id == order.UserId);
|
|
|
- if (forUser == null)
|
|
|
- {
|
|
|
- forUser = db.PosCouponForUser.Add(new PosCouponForUser()
|
|
|
- {
|
|
|
- Id = order.UserId,
|
|
|
- }).Entity;
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- int BeforeOut = forUser.OutNum;
|
|
|
- int BeforeTotal = forUser.TotalNum;
|
|
|
- int BeforeStock = forUser.StockNum;
|
|
|
- forUser.OutNum += BuyCount;
|
|
|
- forUser.StockNum -= BuyCount;
|
|
|
- int AfterOut = forUser.OutNum;
|
|
|
- int AfterTotal = forUser.TotalNum;
|
|
|
- int AfterStock = forUser.StockNum;
|
|
|
- PosCouponOrders stat = db.PosCouponOrders.Add(new PosCouponOrders()
|
|
|
- {
|
|
|
- QueryCount = Kind,
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- ChangeKind = 2,
|
|
|
- ChangeCount = BuyCount,
|
|
|
- AfterOut = AfterOut,
|
|
|
- AfterTotal = AfterTotal,
|
|
|
- AfterStock = AfterStock,
|
|
|
- BeforeOut = BeforeOut,
|
|
|
- BeforeTotal = BeforeTotal,
|
|
|
- BeforeStock = BeforeStock,
|
|
|
- OrderNo = ChangeRecordNo,
|
|
|
- ToUserId = order.UserId,
|
|
|
- FromUserId = 0,
|
|
|
- }).Entity;
|
|
|
- db.SaveChanges();
|
|
|
- RedisDbconn.Instance.Clear("Orders:" + order.Id);
|
|
|
+ item.CreateDate = DateTime.Now;
|
|
|
+ item.UserId = order.UserId;
|
|
|
+ item.UpdateDate = DateTime.Now.AddDays(180);
|
|
|
+ Codes += item.ExchangeCode + ",";
|
|
|
}
|
|
|
}
|
|
|
+ order.SnNos = Codes.TrimEnd(',');
|
|
|
+ string ChangeRecordNo = "SC" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
|
|
|
+ PosCouponForUser forUser = db.PosCouponForUser.FirstOrDefault(m => m.Id == order.UserId);
|
|
|
+ if (forUser == null)
|
|
|
+ {
|
|
|
+ forUser = db.PosCouponForUser.Add(new PosCouponForUser()
|
|
|
+ {
|
|
|
+ Id = order.UserId,
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ int BeforeOut = forUser.OutNum;
|
|
|
+ int BeforeTotal = forUser.TotalNum;
|
|
|
+ int BeforeStock = forUser.StockNum;
|
|
|
+ forUser.OutNum += BuyCount;
|
|
|
+ forUser.StockNum -= BuyCount;
|
|
|
+ int AfterOut = forUser.OutNum;
|
|
|
+ int AfterTotal = forUser.TotalNum;
|
|
|
+ int AfterStock = forUser.StockNum;
|
|
|
+ PosCouponOrders stat = db.PosCouponOrders.Add(new PosCouponOrders()
|
|
|
+ {
|
|
|
+ QueryCount = Kind,
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
+ ChangeKind = 2,
|
|
|
+ ChangeCount = BuyCount,
|
|
|
+ AfterOut = AfterOut,
|
|
|
+ AfterTotal = AfterTotal,
|
|
|
+ AfterStock = AfterStock,
|
|
|
+ BeforeOut = BeforeOut,
|
|
|
+ BeforeTotal = BeforeTotal,
|
|
|
+ BeforeStock = BeforeStock,
|
|
|
+ OrderNo = ChangeRecordNo,
|
|
|
+ ToUserId = order.UserId,
|
|
|
+ FromUserId = 0,
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+ RedisDbconn.Instance.Clear("Orders:" + order.Id);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- db.Dispose();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- op = false;
|
|
|
}
|
|
|
}
|
|
|
+ db.Dispose();
|
|
|
}
|
|
|
}
|
|
|
}
|