Procházet zdrojové kódy

同步分润到余额更换算法,待完善,暂时不上

lichunlei před 4 roky
rodič
revize
8a6ddb1909
1 změnil soubory, kde provedl 75 přidání a 4 odebrání
  1. 75 4
      AppStart/Helper/SycnProfitService.cs

+ 75 - 4
AppStart/Helper/SycnProfitService.cs

@@ -36,6 +36,14 @@ namespace MySystem
                         string date = data[1];
                         string date = data[1];
                         int OpType = int.Parse(data[2]);
                         int OpType = int.Parse(data[2]);
                         string SysUserName = data[3];
                         string SysUserName = data[3];
+                        // if(OpType == 0)
+                        // {
+                        //     DoTradeProfit(BrandId, date, SysUserName, OpType);
+                        // }
+                        // else if(OpType == 1)
+                        // {
+                        //     DoTradeProfit2(BrandId, date, SysUserName, OpType);
+                        // }
                         DoTradeProfit(BrandId, date, SysUserName, OpType);
                         DoTradeProfit(BrandId, date, SysUserName, OpType);
                         DoSubsidyProfit(BrandId, date, OpType);
                         DoSubsidyProfit(BrandId, date, OpType);
                         function.WriteLog(DateTime.Now.ToString() + "\r\n\r\n", "同步分润数据");
                         function.WriteLog(DateTime.Now.ToString() + "\r\n\r\n", "同步分润数据");
@@ -138,8 +146,8 @@ namespace MySystem
                             Remark = ProfitType == 1 ? "直拓商户分润" : "品牌推广服务费",
                             Remark = ProfitType == 1 ? "直拓商户分润" : "品牌推广服务费",
                         }).Entity;
                         }).Entity;
                         db.SaveChanges();
                         db.SaveChanges();
-                        RedisDbconn.Instance.Clear("UserAccount:" + UserId);
-                        RedisDbconn.Instance.Clear("UserAccount:Income:" + UserId + ":" + DateTime.Now.ToString("yyyyMM"));
+                        // RedisDbconn.Instance.Clear("UserAccount:" + UserId);
+                        // RedisDbconn.Instance.Clear("UserAccount:Income:" + UserId + ":" + DateTime.Now.ToString("yyyyMM"));
                     }
                     }
                     tran.Commit();
                     tran.Commit();
                 }
                 }
@@ -152,6 +160,69 @@ namespace MySystem
             }
             }
             db.Dispose();
             db.Dispose();
         }
         }
+        private void DoTradeProfit2(int BrandId, string date, string SysUserName, int OpType = 0)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+            DataTable dt = OtherMySqlConn.dtable("select UserId,ProfitAmount from ProfitRecord where BrandId=" + BrandId + " and SeoTitle='" + date + "' and UserId>0 order by Id");
+            function.WriteLog("分润:" + BrandId + ":" + dt.Rows.Count, "同步分润数据");
+            int index = 0;
+            foreach (DataRow dr in dt.Rows)
+            {
+                index += 1;
+                int UserId = int.Parse(dr["UserId"].ToString());
+                decimal ProfitAmount = decimal.Parse(dr["ProfitAmount"].ToString());
+                var tran = db.Database.BeginTransaction();
+                try
+                {
+                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId);
+                    if (account == null)
+                    {
+                        account = db.UserAccount.Add(new UserAccount()
+                        {
+                            Id = UserId,
+                            UserId = UserId,
+                        }).Entity;
+                        db.SaveChanges();
+                    }
+                    decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                    decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                    decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                    account.BalanceAmount += ProfitAmount;
+                    account.TotalAmount += ProfitAmount;
+                    decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                    decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                    decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                    UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
+                    {
+                        CreateDate = DateTime.Now,
+                        UpdateDate = DateTime.Now,
+                        UserId = UserId, //创客
+                        ProductType = BrandId,
+                        ChangeType = 1, //变动类型
+                        ChangeAmount = ProfitAmount, //变更金额
+                        BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                        AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                        BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                        AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                        BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                        AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                        // Remark = ProfitType == 1 ? "直拓商户分润" : "品牌推广服务费",
+                    }).Entity;
+                    db.SaveChanges();
+                    tran.Commit();
+                }
+                catch (Exception ex)
+                {
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + UserId + "," + ProfitAmount + "\n" + ex.ToString(), "同步到余额异常");
+                    tran.Rollback();
+                }
+                function.WriteLog(index.ToString(), "同步分润数据");
+            }
+            db.Dispose();
+        }
+
+
         //分润补贴
         //分润补贴
         private void DoSubsidyProfit(int BrandId, string date, int OpType = 0)
         private void DoSubsidyProfit(int BrandId, string date, int OpType = 0)
         { 
         { 
@@ -223,8 +294,8 @@ namespace MySystem
                             Remark = "直拓商户补贴",
                             Remark = "直拓商户补贴",
                         }).Entity;
                         }).Entity;
                         db.SaveChanges();
                         db.SaveChanges();
-                        RedisDbconn.Instance.Clear("UserAccount:" + UserId);
-                        RedisDbconn.Instance.Clear("UserAccount:Income:" + UserId + ":" + DateTime.Now.ToString("yyyyMM"));
+                        // RedisDbconn.Instance.Clear("UserAccount:" + UserId);
+                        // RedisDbconn.Instance.Clear("UserAccount:Income:" + UserId + ":" + DateTime.Now.ToString("yyyyMM"));
                     }
                     }
                     tran.Commit();
                     tran.Commit();
                 }
                 }