lichunlei vor 4 Jahren
Ursprung
Commit
8fcab55235

+ 6 - 0
AppStart/Helper/AlipayPayBack2Service.cs

@@ -361,6 +361,12 @@ namespace MySystem
                     {
                         RecommendMethod(order.UserId, order.CreateDate.Value.ToString("yyyyMM"));
                     }
+                    //分仓向总仓申请机具额度
+                    if(pro.ProductId == 24 || pro.ProductId == 25 || pro.ProductId == 26)
+                    {
+                        string SendData = "{\"Kind\":\"1\",\"Data\":{\"OrderId\":\"" + order.Id + "\"}}";
+                        RedisDbconn.Instance.AddList("StoreApplyQueue", SendData);
+                    }
                 }
                 else
                 {

+ 333 - 0
AppStart/Timer/StoreApplyHelper.cs

@@ -0,0 +1,333 @@
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Linq;
+using System.Data;
+using MySystem;
+using MySystem.PxcModels;
+using Library;
+using LitJson;
+
+public class StoreApplyHelper
+{
+    public readonly static StoreApplyHelper Instance = new StoreApplyHelper();
+    private StoreApplyHelper()
+    {
+    }
+
+    public void Start()
+    {
+        Thread th = new Thread(DoWorks);
+        th.IsBackground = true;
+        th.Start();
+    }
+
+    // 每月1号重置仓库额度
+    private void DoWorks()
+    {
+        while (true)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            try
+            {
+                // if(DateTime.Now.Day == 1 && DateTime.Now.Hour > 0 && DateTime.Now.Hour < 3)
+                // {
+                    string check = function.ReadInstance("/StoreApply/" + DateTime.Now.ToString("yyyyMM") + ".txt");
+                    if(string.IsNullOrEmpty(check))
+                    {
+                        function.WritePage("/StoreApply/", DateTime.Now.ToString("yyyyMM") + ".txt", DateTime.Now.ToString());
+                        Dictionary<int, decimal> dataDic = new Dictionary<int, decimal>();
+                        string pre = DateTime.Now.AddMonths(-2).ToString("yyyy-MM") + "-01 00:00:00";
+                        string start = DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00";
+                        string end = DateTime.Parse(start).AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss");
+                        DataTable dts = OtherMySqlConn.dtable("select UserId from StoreHouse where CreateDate>='" + pre + "' and CreateDate<'" + end + "' and UserId in (select UserId from (select UserId,count(Id) from StoreHouse group by UserId HAVING count(Id)=1) tb)");
+                        foreach(DataRow dr in dts.Rows)
+                        {
+                            int UserId = int.Parse(function.CheckInt(dr["UserId"].ToString()));
+                            if(!dataDic.ContainsKey(UserId))
+                            {
+                                dataDic.Add(UserId, 20000);
+                            }
+                            else
+                            {
+                                dataDic[UserId] += 20000;
+                            }
+                        }
+                        DataTable dt = OtherMySqlConn.dtable("select StoreId,count(Id) from StoreStockChange where CreateDate>='" + start + "' and CreateDate<'" + end + "' and BrandId in (1,2,4,6,7,8) and TransType in (10,11,2) and StoreId>0 group by StoreId");
+                        foreach(DataRow dr in dt.Rows)
+                        {
+                            int StoreId = int.Parse(function.CheckInt(dr["StoreId"].ToString()));
+                            int Count = int.Parse(function.CheckInt(dr[1].ToString()));
+                            StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId) ?? new StoreHouse();
+                            if(!dataDic.ContainsKey(store.UserId))
+                            {
+                                dataDic.Add(store.UserId, Count * 200);
+                            }
+                            else
+                            {
+                                dataDic[store.UserId] += Count * 200;
+                            }
+                        }
+                        dt = OtherMySqlConn.dtable("select StoreId,count(Id) from StoreStockChange where CreateDate>='" + start + "' and CreateDate<'" + end + "' and BrandId in (3,5,9) and TransType in (10,11,2) and StoreId>0 group by StoreId");
+                        foreach(DataRow dr in dt.Rows)
+                        {
+                            int StoreId = int.Parse(function.CheckInt(dr["StoreId"].ToString()));
+                            int Count = int.Parse(function.CheckInt(dr[1].ToString()));
+                            StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId) ?? new StoreHouse();
+                            if(!dataDic.ContainsKey(store.UserId))
+                            {
+                                dataDic.Add(store.UserId, Count * 300);
+                            }
+                            else
+                            {
+                                dataDic[store.UserId] += Count * 300;
+                            }
+                        }
+                        foreach(int UserId in dataDic.Keys)
+                        {
+                            decimal Amount = dataDic[UserId];
+                            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();
+                            }
+                            account.FixedAmount = Amount;
+                            account.ValidAmount = Amount + account.TempAmount;
+                            function.WriteLog("UserId:" + UserId + ";Amount:" + Amount, "计算分仓申请机具额度日志");
+                        }
+                        db.SaveChanges();
+                    }
+                // }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "计算分仓申请机具额度异常");
+            }
+            db.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "计算分仓申请机具额度日志");
+            Thread.Sleep(60000);
+        }
+    }
+
+    public void StartEverTime()
+    {
+        Thread th = new Thread(StartEverTimeDo);
+        th.IsBackground = true;
+        th.Start();
+    }
+
+    private void StartEverTimeDo()
+    {
+        while (true)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            try
+            {
+                string data = RedisDbconn.Instance.RPop<string>("StoreApplyQueue");
+                if(!string.IsNullOrEmpty(data))
+                {
+                    function.WriteLog("data:" + data, "分仓向总仓申请机具日志");
+                    JsonData jsonObj = JsonMapper.ToObject(data);
+                    if(jsonObj["Kind"].ToString() == "1") // 购买临时额度
+                    {
+                        int OrderId = int.Parse(jsonObj["Data"]["OrderId"].ToString());
+                        Orders order = db.Orders.FirstOrDefault(m => m.Id == OrderId);
+                        if(order != null)
+                        {
+                            decimal TotalPrice = order.TotalPrice * 2;
+                            AddAmount2(db, order.UserId, TotalPrice, 1, order.Id);
+                        }
+                    }
+                    else if(jsonObj["Kind"].ToString() == "2") // 增减分仓临时额度
+                    {
+                        int UserId = int.Parse(jsonObj["Data"]["UserId"].ToString());
+                        decimal Amount = decimal.Parse(jsonObj["Data"]["Amount"].ToString());
+                        int OperateType = int.Parse(jsonObj["Data"]["OperateType"].ToString());
+                        AddAmount(db, UserId, Amount, OperateType);
+                    }
+                    else if(jsonObj["Kind"].ToString() == "3") // 调低额度返回余额
+                    {
+                        int UserId = int.Parse(jsonObj["Data"]["UserId"].ToString());
+                        decimal Amount = decimal.Parse(jsonObj["Data"]["Amount"].ToString());
+                        AddAmount2(db, UserId, Amount, 0);
+                        decimal BalanceAmount = Amount / 2;
+                        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 += BalanceAmount;
+                        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, //创客
+                            ChangeType = 119, //变动类型
+                            ChangeAmount = BalanceAmount, //变更金额
+                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                        }).Entity;
+                    }
+                    else if(jsonObj["Kind"].ToString() == "4") // 仓库发货,预发机申请
+                    {
+                        int StoreId = int.Parse(jsonObj["Data"]["StoreId"].ToString());
+                        string SnIds = jsonObj["Data"]["SnIds"].ToString();
+                        StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                        if(store != null)
+                        {
+                            decimal Amount = 0;
+                            string[] SnIdList = SnIds.Split(',');
+                            foreach(string SnIdString in SnIdList)
+                            {
+                                int SnId = int.Parse(SnIdString);
+                                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == SnId) ?? new PosMachinesTwo();
+                                if(pos.BrandId == 1 || pos.BrandId == 2 || pos.BrandId == 4 || pos.BrandId == 6 || pos.BrandId == 7 || pos.BrandId == 8)
+                                {
+                                    Amount += 200;
+                                }
+                                else if(pos.BrandId == 3 || pos.BrandId == 5 || pos.BrandId == 9)
+                                {
+                                    Amount += 300;
+                                }
+                            }
+                            if(Amount > 0)
+                            {
+                                AddAmount(db, store.UserId, Amount, 1);
+                            }
+                        }
+                    }
+                    else if(jsonObj["Kind"].ToString() == "5") // 后台仓库调拨
+                    {
+                        int StoreId = int.Parse(jsonObj["Data"]["StoreId"].ToString());
+                        int BrandId = int.Parse(jsonObj["Data"]["BrandId"].ToString());
+                        int OpStoreNum = int.Parse(jsonObj["Data"]["OpStoreNum"].ToString());
+                        StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                        if(store != null)
+                        {
+                            decimal Amount = 0;
+                            if(BrandId == 1 || BrandId == 2 || BrandId == 4 || BrandId == 6 || BrandId == 7 || BrandId == 8)
+                            {
+                                Amount += 200;
+                            }
+                            else if(BrandId == 3 || BrandId == 5 || BrandId == 9)
+                            {
+                                Amount += 300;
+                            }
+                            if(Amount > 0)
+                            {
+                                AddAmount(db, store.UserId, Amount, 1);
+                            }
+                        }
+                    }
+                    db.SaveChanges();
+                }
+                else
+                {
+                    Thread.Sleep(5000);
+                }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "分仓向总仓申请机具线程异常");
+            }
+            db.Dispose();
+        }
+    }
+
+    public void AddAmount(WebCMSEntities db, int UserId, decimal Amount, int OperateType = 1, int OrderId = 0)
+    {
+        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.ValidAmount; //变更前总金额
+        if(OperateType == 1)
+        {
+            account.ValidAmount += Amount;
+        }
+        else
+        {
+            account.ValidAmount -= Amount;
+        }
+        decimal AfterTotalAmount = account.ValidAmount; //变更后总金额
+        StoreHouseAmountRecord record = db.StoreHouseAmountRecord.Add(new StoreHouseAmountRecord()
+        {
+            CreateDate = DateTime.Now,
+            UpdateDate = DateTime.Now,
+            OperateType = OperateType,
+            AmountType = 1,
+            AfterAmount = AfterTotalAmount,
+            BeforeAmount = BeforeTotalAmount,
+            UseAmount = Amount,
+            UserId = UserId,
+            QueryCount = OrderId,
+        }).Entity;
+        db.SaveChanges();
+    }
+
+    public void AddAmount2(WebCMSEntities db, int UserId, decimal Amount, int OperateType = 1, int OrderId = 0)
+    {
+        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.ValidAmount; //变更前总金额
+        if(OperateType == 1)
+        {
+            account.TempAmount += Amount;
+            account.ValidAmount += Amount;
+        }
+        else
+        {
+            account.TempAmount -= Amount;
+            account.ValidAmount -= Amount;
+        }
+        decimal AfterTotalAmount = account.ValidAmount; //变更后总金额
+        StoreHouseAmountRecord record = db.StoreHouseAmountRecord.Add(new StoreHouseAmountRecord()
+        {
+            CreateDate = DateTime.Now,
+            UpdateDate = DateTime.Now,
+            OperateType = OperateType,
+            AmountType = 1,
+            AfterAmount = AfterTotalAmount,
+            BeforeAmount = BeforeTotalAmount,
+            UseAmount = Amount,
+            UserId = UserId,
+            QueryCount = OrderId,
+        }).Entity;
+        db.SaveChanges();
+    }
+}

+ 92 - 59
Controllers/HomeController.cs

@@ -1000,65 +1000,98 @@ namespace MySystem.Controllers
         }
         
 
+        //补推荐奖励
+        public string AddDirectPrice(int oid = 0)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            List<int> uids = new List<int>(); //领取过的下单创客
+            IQueryable<Orders> orders = db.Orders.Where(m => m.Status > 1 && m.UserId > 1 && m.TotalPrice % 600 == 0 && m.Sort == 0);
+            if(oid > 0)
+            {
+                orders = orders.Where(m => m.Id == oid);
+            }
+            foreach (Orders order in orders.ToList())
+            {
+                if(!uids.Contains(order.UserId))
+                {
+                    bool checkPrize = db.UserAccountRecord.Any(m => m.QueryCount == oid && m.ChangeType == 112);
+                    if(checkPrize)
+                    {
+                        uids.Add(order.UserId);
+                    }
+                    else
+                    {
+                        OrderProduct pro = db.OrderProduct.FirstOrDefault(m => m.OrderId == oid) ?? new OrderProduct();
+                        if (pro.ProductId == 10 || pro.ProductId == 11)
+                        {
+                            Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId);
+                            if (user != null)
+                            {
+                                bool directPrize = false; //直推奖标记
+                                int ParentUserId = user.ParentUserId;
+                                List<int> proids = new List<int>();
+                                proids.Add(10);
+                                proids.Add(11);
+                                while (ParentUserId > 0)
+                                {
+                                    Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users();
+                                    int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
+                                    int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+                                    int couponCount = db.PosCoupons.Count(m => m.UserId == ParentUserId && m.IsUse == 0); //判断是否拥有3张券
+                                    if ((machineCount + ActiveCount + couponCount >= 3 || puser.LeaderLevel > 0) && !directPrize)
+                                    {
+                                        function.WriteLog("满足条件", "推荐下单奖励监控日志");
+                                        if (puser.LeaderLevel == 0) // 非盟主直推奖励,每个创客第一次下单,上级可得
+                                        {
+                                            List<int> oids = new List<int>();
+                                            var orderpros = db.OrderProduct.Select(m => new { m.OrderId, m.UserId, m.ProductId }).Where(m => m.UserId == order.UserId && proids.Contains(m.ProductId)).ToList();
+                                            foreach (var orderpro in orderpros)
+                                            {
+                                                oids.Add(orderpro.OrderId);
+                                            }
+                                            bool check = db.Orders.Any(m => oids.Contains(m.Id) && m.Status > 0);
+                                            if (check)
+                                            {
+                                                // AlipayPayBack2Service.Instance.DirectPrize(db, order.Id, ParentUserId, pro.ProductCount);
+                                                function.WriteLog(order.Id + "," + ParentUserId + "," + pro.ProductCount, "没发的推荐奖励");
+                                                directPrize = true;
+                                            }
+                                        }
+                                        else
+                                        {
+                                            // 盟主直推奖励,可以每次下单获得
+                                            // AlipayPayBack2Service.Instance.DirectPrize(db, order.Id, ParentUserId, pro.ProductCount);
+                                            function.WriteLog(order.Id + "," + ParentUserId + "," + pro.ProductCount + "--盟主", "没发的推荐奖励");
+                                            directPrize = true;
+                                        }
 
-
-        //重置交易额,重置分润(直营)
-        // /home/resetProfit?uid=120687&m=2022-06&bid=1
-        // public string resetProfit(int uid, string m, int bid)
-        // {
-        //     string result = "";
-        //     OtherMySqlConn.connstr = "server=47.109.31.237;port=3306;user=KxsMainServer2;password=FrW8ZfxlcaVdm1r0;database=KxsMainServer2;charset=utf8;";
-        //     DateTime start = DateTime.Parse(m + "-01 00:00:00");
-        //     DateTime end = start.AddMonths(1);
-        //     decimal ProfitAmt = 0;
-        //     while(start < end)
-        //     {
-        //         DateTime endDay = start.AddDays(1);
-        //         DataTable dt = OtherMySqlConn.dtable("select sum(HelpDirectTradeAmt) as HelpDirectTradeAmt,sum(NotHelpDirectTradeAmt) as NotHelpDirectTradeAmt from TradeDaySummary where UserId=" + uid + " and TradeDate='" + start.ToString("yyyyMMdd") + "' and SeoTitle='self' and BrandId=" + bid);
-        //         if(dt.Rows.Count > 0)
-        //         {
-        //             decimal HelpDirectTradeAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpDirectTradeAmt"].ToString()));
-        //             decimal NotHelpDirectTradeAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["NotHelpDirectTradeAmt"].ToString()));
-        //             result += "扶持期:" + HelpDirectTradeAmt + ",稳定期:" + NotHelpDirectTradeAmt + ";\n";
-        //             dt = OtherMySqlConn.dtable("select sum(if(MerHelpFlag=1,TradeAmount,0)) as HelpAmt,sum(if(MerHelpFlag=0,TradeAmount,0)) as NotHelpAmt from TradeRecord where CreateDate>='" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and CreateDate<'" + endDay.ToString("yyyy-MM-dd HH:mm:ss") + "' and UserId=" + uid + " and BrandId=" + bid);
-        //             if(dt.Rows.Count > 0)
-        //             {
-        //                 decimal HelpAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpAmt"].ToString()));
-        //                 decimal NotHelpAmt = decimal.Parse(function.CheckNum(dt.Rows[0]["NotHelpAmt"].ToString()));
-        //                 result += "update TradeDaySummary set HelpDirectTradeAmt=" + HelpAmt + ",NotHelpDirectTradeAmt=" + NotHelpAmt + " where UserId=" + uid + " and TradeDate='" + start.ToString("yyyyMMdd") + "' and SeoTitle='self' and BrandId=" + bid + ";\n\n";
-        //                 dt = OtherMySqlConn.dtable("select UserLevel from Users where Id=" + uid + "");
-        //                 if(dt.Rows.Count > 0)
-        //                 {
-        //                     int UserLevel = int.Parse(function.CheckInt(dt.Rows[0]["UserLevel"].ToString()));
-        //                     dt = OtherMySqlConn.dtable("select Rank from UserRankWhite where Id=" + uid + "");
-        //                     if(dt.Rows.Count > 0)
-        //                     {
-        //                         UserLevel = int.Parse(function.CheckInt(dt.Rows[0]["Rank"].ToString()));
-        //                     }
-        //                     int LevelKindId = ProfitHelperV2.Instance.GetLevelKindId(bid, 1, 1);
-        //                     ProfitObjectLevels objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel) ?? new ProfitObjectLevels();
-        //                     ProfitAmt += HelpAmt * objlevel.Percents;
-        //                     LevelKindId = ProfitHelperV2.Instance.GetLevelKindId(bid, 0, 1);
-        //                     objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel) ?? new ProfitObjectLevels();
-        //                     ProfitAmt += NotHelpAmt * objlevel.Percents;
-        //                 }
-        //             }
-        //         }
-        //         start = start.AddDays(1);
-        //     }
-        //     DataTable dt2 = OtherMySqlConn.dtable("select Id,ProfitAmount from ProfitRecord where UserId=" + uid + " and SeoTitle='" + m.Replace("-", "") + "' and DirectFlag=1 and BrandId=" + bid);
-        //     if(dt2.Rows.Count > 0)
-        //     {
-        //         int Id = int.Parse(function.CheckInt(dt2.Rows[0]["Id"].ToString()));
-        //         decimal ProfitAmount = decimal.Parse(function.CheckNum(dt2.Rows[0]["ProfitAmount"].ToString()));
-        //         result += "当前分润:" + ProfitAmount + ";\n";
-        //         if(ProfitAmount != ProfitAmt)
-        //         {
-        //             result += "update ProfitRecord set ProfitAmount=" + ProfitAmt + " where UserId=" + uid + " and SeoTitle='" + m.Replace("-", "") + "' and DirectFlag=1 and BrandId=" + bid + ";\n";
-        //         }
-        //     }
-        //     OtherMySqlConn.connstr = "";
-        //     return result;
-        // }
+                                        //推荐下单上级获得30天的机具循环天数
+                                        var posList = db.PosMachinesTwo.Select(m => new { m.Id, m.UserId, m.BindingState, m.RecycEndDate }).Where(m => m.UserId == ParentUserId && m.BindingState == 0 && m.RecycEndDate != null).ToList();
+                                        foreach (var subPos in posList)
+                                        {
+                                            PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == subPos.Id);
+                                            if (pos != null)
+                                            {
+                                                pos.RecycEndDate = pos.RecycEndDate.Value.AddDays(30);
+                                            }
+                                        }
+                                        db.SaveChanges();
+                                    }
+                                    if(directPrize)
+                                    {
+                                        ParentUserId = 0;
+                                    }
+                                    else
+                                    {
+                                        ParentUserId = puser.ParentUserId;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            return "ok";
+        }
     }
 }

+ 1 - 0
Models/UserAccount.cs

@@ -35,5 +35,6 @@ namespace MySystem.Models
         public decimal TempAmount { get; set; }
         public decimal FixedAmount { get; set; }
         public decimal LeaderReserve { get; set; }
+        public decimal ValidAmount { get; set; }
     }
 }

+ 2 - 0
Models/WebCMSEntities.cs

@@ -11979,6 +11979,8 @@ namespace MySystem.Models
 
                 entity.Property(e => e.UserType).HasColumnType("int(11)");
 
+                entity.Property(e => e.ValidAmount).HasColumnType("decimal(18,2)");
+
                 entity.Property(e => e.Version).HasColumnType("int(11)");
 
                 entity.Property(e => e.WithdrawAmount).HasColumnType("decimal(18,2)");

+ 1 - 0
PxcModels/UserAccount.cs

@@ -35,5 +35,6 @@ namespace MySystem.PxcModels
         public decimal TempAmount { get; set; }
         public decimal FixedAmount { get; set; }
         public decimal LeaderReserve { get; set; }
+        public decimal ValidAmount { get; set; }
     }
 }

+ 2 - 0
PxcModels/WebCMSEntities.cs

@@ -11979,6 +11979,8 @@ namespace MySystem.PxcModels
 
                 entity.Property(e => e.UserType).HasColumnType("int(11)");
 
+                entity.Property(e => e.ValidAmount).HasColumnType("decimal(18,2)");
+
                 entity.Property(e => e.Version).HasColumnType("int(11)");
 
                 entity.Property(e => e.WithdrawAmount).HasColumnType("decimal(18,2)");

+ 23 - 22
Startup.cs

@@ -91,8 +91,8 @@ namespace MySystem
             // services.AddHostedService<SycnSpTimer>(); //同步SP数据
 
             // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
+            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
+            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
 
             //services.AddHttpContextAccessor();
 
@@ -190,27 +190,28 @@ namespace MySystem
             // TradeStatTimer2.Instance.Start(); //交易统计
 
             //必须打开的
-            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            TradeStatTimer.Instance.Start(); //交易统计
-            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
-            SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
-            RedPackageHelper.Instance.Start(); //每天生成300个红包
-            RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
-            RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
-            BalancePayBackService.Instance.Start(); //余额支付队列
-            ReservePayBackService.Instance.Start(); //储备金支付队列
-            LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
-            MessageCenterService.Instance.Start(); // 消息队列
-            RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
+            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
+            // TradeStatTimer.Instance.Start(); //交易统计
+            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
+            // MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
+            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
+            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
+            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
+            // SycnSpTradeService.Instance.Start(); //同步SP交易数据
+            // SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
+            // SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
+            // RedPackageHelper.Instance.Start(); //每天生成300个红包
+            // RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
+            // RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
+            // BalancePayBackService.Instance.Start(); //余额支付队列
+            // ReservePayBackService.Instance.Start(); //储备金支付队列
+            // LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
+            // MessageCenterService.Instance.Start(); // 消息队列
+            // RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
             //必须打开的
 
-
+            StoreApplyHelper.Instance.Start();
+            // StoreApplyHelper.Instance.StartEverTime();
             // StatService.Instance.StartPosActNum(); //实时统计激活数
             // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
             // StatService.Instance.StatProfit(); //实时统计创客收益
@@ -218,7 +219,7 @@ namespace MySystem
             // StatService.Instance.StartEverDay("");
             // StatService.Instance.StartEverDayV2();
             // RedPackageHelper.Instance.Start();
-            StatService.Instance.StatUserLevel();
+            // StatService.Instance.StatUserLevel();
             // ProfitHelperV2.Instance.StatProfit(); //统计分润
             // StatService.Instance.ListenFluxRecord();
             // StatService.Instance.StartEverDay2();

+ 2 - 2
appsettings.json

@@ -17,8 +17,8 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMain;password=mzeqjriUWore0dwT;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMain;password=mzeqjriUWore0dwT;database=KxsMainServer;charset=utf8;",
+    "SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "Pxc1SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
     "SpSqlConnStr": "server=47.109.31.237;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
     "RedisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
     "TendisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",