Przeglądaj źródła

广电卡欠费或注销统计

lcl 2 lat temu
rodzic
commit
f6ca866268

+ 85 - 0
AppStart/Helper/SIMActCountService.cs

@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Threading;
+using MySystem.Models;
+using Library;
+using LitJson;
+
+namespace MySystem
+{
+    public class SIMActCountService
+    {
+        public readonly static SIMActCountService Instance = new SIMActCountService();
+        private SIMActCountService()
+        { }
+
+        public void Start()
+        {
+            Thread th = new Thread(doSomething);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void doSomething()
+        {
+            while (true)
+            {
+                string content = RedisDbconn.Instance.RPop<string>("SIMActCountQueue");
+                if (!string.IsNullOrEmpty(content))
+                {
+                    try
+                    {
+                        JsonData jsonObj = JsonMapper.ToObject(content);
+                        int UserId = int.Parse(jsonObj["UserId"].ToString());
+                        int ActCount = int.Parse(jsonObj["ActCount"].ToString());
+                        WebCMSEntities db = new WebCMSEntities();
+                        Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                        string ParentNav = user.ParentNav;
+                        UserSimActSummary selfStat = db.UserSimActSummary.FirstOrDefault(m => m.UserId == UserId && m.Kind == 0);
+                        if (selfStat == null)
+                        {
+                            selfStat = db.UserSimActSummary.Add(new UserSimActSummary()
+                            {
+                                UserId = UserId
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        selfStat.ActCount += ActCount;
+                        ParentNav += "," + UserId + ",";
+                        if (!string.IsNullOrEmpty(ParentNav))
+                        {
+                            string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                            foreach (string NavUserIdString in ParentNavList)
+                            {
+                                int NavUserId = int.Parse(NavUserIdString);
+                                UserSimActSummary teamStat = db.UserSimActSummary.FirstOrDefault(m => m.UserId == NavUserId && m.Kind == 1);
+                                if (teamStat == null)
+                                {
+                                    teamStat = db.UserSimActSummary.Add(new UserSimActSummary()
+                                    {
+                                        UserId = NavUserId,
+                                        Kind = 1,
+                                    }).Entity;
+                                    db.SaveChanges();
+                                }
+                                teamStat.ActCount += ActCount;
+                            }
+                        }
+                        db.SaveChanges();
+                        db.Dispose();
+                    }
+                    catch (Exception ex)
+                    {
+                        function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "广电卡激活数变更异常");
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(60000);
+                }
+            }
+        }
+    }
+}

+ 17 - 4
AppStart/Helper/SIMPosMerchantTradeService.cs

@@ -395,31 +395,44 @@ namespace MySystem
                 SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
                 SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
                 if (checkSimMer != null)
                 if (checkSimMer != null)
                 {
                 {
-                    checkSimMer.Status = -1;
                     if (sIMTradeInfo.UserStatus.Contains("欠费") && checkSimMer.Status != -1)
                     if (sIMTradeInfo.UserStatus.Contains("欠费") && checkSimMer.Status != -1)
                     {
                     {
                         checkSimMer.Status = -2;
                         checkSimMer.Status = -2;
                     }
                     }
+                    else
+                    {
+                        checkSimMer.Status = -1;
+                    }
                     db.SaveChanges();
                     db.SaveChanges();
                 }
                 }
                 PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
                 PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
                 if (checkMer != null)
                 if (checkMer != null)
                 {
                 {
-                    checkMer.Status = -1;
                     if (sIMTradeInfo.UserStatus.Contains("欠费") && checkMer.Status != -1)
                     if (sIMTradeInfo.UserStatus.Contains("欠费") && checkMer.Status != -1)
                     {
                     {
                         checkMer.Status = -2;
                         checkMer.Status = -2;
                     }
                     }
+                    else
+                    {
+                        checkMer.Status = -1;
+                    }
                     db.SaveChanges();
                     db.SaveChanges();
                 }
                 }
                 PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == sIMTradeInfo.SimNo);
                 PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == sIMTradeInfo.SimNo);
                 if (pos != null)
                 if (pos != null)
-                {
-                    pos.Status = -1;
+                {                    
+                    if(pos.QueryCount == 1 && pos.Status == 0)
+                    {
+                        RedisDbconn.Instance.AddList("SIMActCountQueue", "{\"UserId\":\"" + pos.BuyUserId + "\",\"ActCount\":\"1\"}");
+                    }
                     if (sIMTradeInfo.UserStatus.Contains("欠费") && pos.Status != -1)
                     if (sIMTradeInfo.UserStatus.Contains("欠费") && pos.Status != -1)
                     {
                     {
                         pos.Status = -2;
                         pos.Status = -2;
                     }
                     }
+                    else
+                    {
+                        pos.Status = -1;
+                    }
                     db.SaveChanges();
                     db.SaveChanges();
                 }
                 }
             }
             }

+ 16 - 3
Areas/Admin/Controllers/MainServer/TradeRecordController.cs

@@ -602,31 +602,44 @@ namespace MySystem.Areas.Admin.Controllers
                     SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == Mobile && m.KqSnNo == SimNo);
                     SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == Mobile && m.KqSnNo == SimNo);
                     if (checkSimMer != null)
                     if (checkSimMer != null)
                     {
                     {
-                        checkSimMer.Status = -1;
                         if (UserStatus.Contains("欠费") && checkSimMer.Status != -1)
                         if (UserStatus.Contains("欠费") && checkSimMer.Status != -1)
                         {
                         {
                             checkSimMer.Status = -2;
                             checkSimMer.Status = -2;
                         }
                         }
+                        else
+                        {
+                            checkSimMer.Status = -1;
+                        }
                         db.SaveChanges();
                         db.SaveChanges();
                     }
                     }
                     PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == Mobile && m.KqSnNo == SimNo);
                     PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == Mobile && m.KqSnNo == SimNo);
                     if (checkMer != null)
                     if (checkMer != null)
                     {
                     {
-                        checkMer.Status = -1;
                         if (UserStatus.Contains("欠费") && checkMer.Status != -1)
                         if (UserStatus.Contains("欠费") && checkMer.Status != -1)
                         {
                         {
                             checkMer.Status = -2;
                             checkMer.Status = -2;
                         }
                         }
+                        else
+                        {
+                            checkMer.Status = -1;
+                        }
                         db.SaveChanges();
                         db.SaveChanges();
                     }
                     }
                     PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == SimNo);
                     PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == SimNo);
                     if (pos != null)
                     if (pos != null)
                     {
                     {
-                        pos.Status = -1;
+                        if(pos.QueryCount == 1 && pos.Status == 0)
+                        {
+                            RedisDbconn.Instance.AddList("SIMActCountQueue", "{\"UserId\":\"" + pos.BuyUserId + "\",\"ActCount\":\"1\"}");
+                        }
                         if (UserStatus.Contains("欠费") && pos.Status != -1)
                         if (UserStatus.Contains("欠费") && pos.Status != -1)
                         {
                         {
                             pos.Status = -2;
                             pos.Status = -2;
                         }
                         }
+                        else
+                        {
+                            pos.Status = -1;
+                        }
                         db.SaveChanges();
                         db.SaveChanges();
                     }
                     }
                 }
                 }

+ 18 - 0
Models/UserSimActSummary.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class UserSimActSummary
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public int ActCount { get; set; }
+        public int UserId { get; set; }
+        public int Kind { get; set; }
+    }
+}

+ 40 - 0
Models/WebCMSEntities.cs

@@ -290,6 +290,7 @@ namespace MySystem.Models
         public virtual DbSet<UserRankWhite> UserRankWhite { get; set; }
         public virtual DbSet<UserRankWhite> UserRankWhite { get; set; }
         public virtual DbSet<UserRankWhiteBefore> UserRankWhiteBefore { get; set; }
         public virtual DbSet<UserRankWhiteBefore> UserRankWhiteBefore { get; set; }
         public virtual DbSet<UserRebateDetail> UserRebateDetail { get; set; }
         public virtual DbSet<UserRebateDetail> UserRebateDetail { get; set; }
+        public virtual DbSet<UserSimActSummary> UserSimActSummary { get; set; }
         public virtual DbSet<UserSnActInfo> UserSnActInfo { get; set; }
         public virtual DbSet<UserSnActInfo> UserSnActInfo { get; set; }
         public virtual DbSet<UserSnDelayChange> UserSnDelayChange { get; set; }
         public virtual DbSet<UserSnDelayChange> UserSnDelayChange { get; set; }
         public virtual DbSet<UserStoreChange> UserStoreChange { get; set; }
         public virtual DbSet<UserStoreChange> UserStoreChange { get; set; }
@@ -20275,6 +20276,45 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<UserSimActSummary>(entity =>
+            {
+                entity.HasComment("广电卡激活数统计");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.ActCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("激活数");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("类型");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<UserSnActInfo>(entity =>
             modelBuilder.Entity<UserSnActInfo>(entity =>
             {
             {
                 entity.HasComment("机具激活限制信息");
                 entity.HasComment("机具激活限制信息");