Forráskód Böngészése

返现逻辑获取活动配置问题

lichunlei 1 éve
szülő
commit
8585795557
2 módosított fájl, 45 hozzáadás és 43 törlés
  1. 44 42
      Controllers/HomeController.cs
  2. 1 1
      Util/HaoDa/ProfitHelper.cs

+ 44 - 42
Controllers/HomeController.cs

@@ -62,48 +62,50 @@ namespace MySystem.Controllers
             //     RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order);
             // }
 
-            // DataTable dt = CustomerSqlConn.dtable("select o.OrderNo,money from (select fd61,sum(money) money from OrderAdd where reason='NULL' group by fd61 order by sum(money)) tb left join ConsumerOrders o on tb.fd61=o.SeoTitle", AppConfig.Base.SqlConnStr);
-            // foreach(DataRow dr in dt.Rows)
-            // {
-            //     decimal cur = decimal.Parse(dr["money"].ToString());
-            //     string orderno = dr["OrderNo"].ToString();
-            //     ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.OrderNo == orderno) ?? new ConsumerOrders();
-            //     if(cur < order.MaxDivi)
-            //     {
-            //         order.CurDivi = cur;
-            //         order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"UpdateDate\":\".*?\"", "\"UpdateDate\":\"" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + "\"");
-            //         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)
-            //         {
-            //             if(cur >= sub.GetMoney)
-            //             {
-            //                 cur -= sub.GetMoney;
-            //             }
-            //             else
-            //             {
-            //                 if(cur > 0)
-            //                 {
-            //                     var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
-            //                     if(edit != null)
-            //                     {
-            //                         edit.GetMoney = cur;
-            //                         db.SaveChanges();
-            //                     }
-            //                 }
-            //                 else
-            //                 {
-            //                     var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
-            //                     if(edit != null)
-            //                     {
-            //                         db.ConsumerProfit.Remove(edit);
-            //                         db.SaveChanges();
-            //                     }
-            //                 }
-            //             }
-            //         }
-            //     }
-            // }
+            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)
+                {
+                    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)
+                    {
+                        if(cur >= sub.GetMoney)
+                        {
+                            cur -= sub.GetMoney;
+                        }
+                        else
+                        {
+                            if(cur > 0)
+                            {
+                                var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
+                                if(edit != null)
+                                {
+                                    edit.GetMoney = cur;
+                                    db.SaveChanges();
+                                }
+                            }
+                            else
+                            {
+                                var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id);
+                                if(edit != null)
+                                {
+                                    db.ConsumerProfit.Remove(edit);
+                                    db.SaveChanges();
+                                }
+                            }
+                        }
+                    }
+                }
+            }
 
             // List<int> ids = new List<int>();
             // ids.Add(4058);

+ 1 - 1
Util/HaoDa/ProfitHelper.cs

@@ -131,7 +131,7 @@ namespace MySystem
                                         if (suborder != null)
                                         {
                                             function.WriteLog("返现对象订单:" + suborder.Id, "返现逻辑日志");
-                                            MerchantParamSet subset = Newtonsoft.Json.JsonConvert.DeserializeObject<MerchantParamSet>(order.SeoDescription);
+                                            MerchantParamSet subset = Newtonsoft.Json.JsonConvert.DeserializeObject<MerchantParamSet>(suborder.SeoDescription);
                                             int subProfitDays = subset.ProfitDays; //分红期限(天)
                                             bool IsOut = suborder.UpdateDate.Value.AddDays(subProfitDays) < DateTime.Now ? true : false;
                                             if (suborder.CurDivi < suborder.MaxDivi && !IsOut)