Browse Source

机具券订单默认发货状态

lichunlei 3 years ago
parent
commit
9287bf3dca

+ 88 - 81
AppStart/Helper/AlipayPayBack2Service.cs

@@ -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();
         }
     }
 }

BIN
bin/Debug/netcoreapp3.0/MySystem.dll


BIN
bin/Debug/netcoreapp3.0/MySystem.pdb


BIN
bin/release/netcoreapp3.0/MySystem.dll


BIN
bin/release/netcoreapp3.0/MySystem.pdb


BIN
obj/Debug/netcoreapp3.0/MySystem.dll


BIN
obj/Debug/netcoreapp3.0/MySystem.pdb


BIN
obj/release/netcoreapp3.0/MySystem.dll


BIN
obj/release/netcoreapp3.0/MySystem.pdb