Browse Source

补订单队列

lichunlei 1 year ago
parent
commit
4e2731c047
1 changed files with 29 additions and 25 deletions
  1. 29 25
      Controllers/HomeController.cs

+ 29 - 25
Controllers/HomeController.cs

@@ -62,44 +62,48 @@ namespace MySystem.Controllers
             //     RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order);
             // }
 
+            List<int> orders = RedisDbconn.Instance.GetList<ConsumerOrders>("ConsumerOrdersHd:Divi:2:1272").Select(m => m.Id).ToList();
             DataTable dt = CustomerSqlConn.dtable("select OrderId,sum(GetMoney) money from ConsumerProfit where MerchantId=1272 group by OrderId order by OrderId", AppConfig.Base.SqlConnStr);
             foreach(DataRow dr in dt.Rows)
             {
                 decimal cur = decimal.Parse(dr["money"].ToString());
                 int OrderId = int.Parse(dr["OrderId"].ToString());
-                // string orderno = dr["OrderNo"].ToString();
-                ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.Id == OrderId) ?? new ConsumerOrders();
-                if(order.MaxDivi - cur >= 1)
+                if(!orders.Contains(OrderId))
                 {
-                    order.CurDivi = cur;
-                    order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"UpdateDate\":\".*?\"", "\"UpdateDate\":\"" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + "\"");
-                    order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"ProfitDays\":.*?,", "\"ProfitDays\":365,");
-                    RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order);
-                    var list = db.ConsumerProfit.Where(m => m.OrderId == order.Id).OrderBy(m => m.Id).ToList();
-                    foreach(var sub in list)
+                    // string orderno = dr["OrderNo"].ToString();
+                    ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.Id == OrderId) ?? new ConsumerOrders();
+                    if(order.MaxDivi - cur >= 1)
                     {
-                        if(cur >= sub.GetMoney)
+                        order.CurDivi = cur;
+                        order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"UpdateDate\":\".*?\"", "\"UpdateDate\":\"" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + "\"");
+                        order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"ProfitDays\":.*?,", "\"ProfitDays\":365,");
+                        RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order);
+                        var list = db.ConsumerProfit.Where(m => m.OrderId == order.Id).OrderBy(m => m.Id).ToList();
+                        foreach(var sub in list)
                         {
-                            cur -= sub.GetMoney;
-                        }
-                        else
-                        {
-                            if(cur > 0)
+                            if(cur >= sub.GetMoney)
                             {
-                                var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
-                                if(edit != null)
-                                {
-                                    edit.GetMoney = cur;
-                                    db.SaveChanges();
-                                }
+                                cur -= sub.GetMoney;
                             }
                             else
                             {
-                                var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
-                                if(edit != null)
+                                if(cur > 0)
+                                {
+                                    var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
+                                    if(edit != null)
+                                    {
+                                        edit.GetMoney = cur;
+                                        db.SaveChanges();
+                                    }
+                                }
+                                else
                                 {
-                                    db.ConsumerProfit.Remove(edit);
-                                    db.SaveChanges();
+                                    var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
+                                    if(edit != null)
+                                    {
+                                        db.ConsumerProfit.Remove(edit);
+                                        db.SaveChanges();
+                                    }
                                 }
                             }
                         }