Browse Source

拦截奖励记录

lcl 10 months ago
parent
commit
0bbc761278

+ 6 - 4
AppStart/Helper/LeaderApplyCouponsHelper.cs

@@ -195,7 +195,7 @@ namespace MySystem
                         if(PosCouponPrizeService.Instance.CheckOpReserve(opdb, groupCount, parentUser.Id))
                         if(PosCouponPrizeService.Instance.CheckOpReserve(opdb, groupCount, parentUser.Id))
                         {
                         {
                             //购机奖
                             //购机奖
-                            decimal CurBuyPrize = GetBuyPrize(parentUser, query.UserId);
+                            decimal CurBuyPrize = GetBuyPrize(parentUser, query);
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             int Kind = 0;
                             int Kind = 0;
                             if(query.Remark == "兑换机具券")
                             if(query.Remark == "兑换机具券")
@@ -256,7 +256,7 @@ namespace MySystem
                         if(PosCouponPrizeService.Instance.CheckOpReserve(opdb, groupCount, parentUser.Id))
                         if(PosCouponPrizeService.Instance.CheckOpReserve(opdb, groupCount, parentUser.Id))
                         {
                         {
                             //购机奖
                             //购机奖
-                            decimal CurBuyPrize = GetBuyPrize(parentUser, query.UserId);
+                            decimal CurBuyPrize = GetBuyPrize(parentUser, query, groupCount);
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             int Kind = 0;
                             int Kind = 0;
                             if(query.Remark == "兑换机具券")
                             if(query.Remark == "兑换机具券")
@@ -281,7 +281,7 @@ namespace MySystem
         /// </summary>
         /// </summary>
         /// <param name="user"></param>
         /// <param name="user"></param>
         /// <returns></returns>
         /// <returns></returns>
-        public decimal GetBuyPrize(UserRankItem user, int UserId = 0)
+        public decimal GetBuyPrize(UserRankItem user, LeaderReserveRecord record, int count = 0)
         {
         {
             if(user.OperateLevel == 2) 
             if(user.OperateLevel == 2) 
             {
             {
@@ -289,8 +289,10 @@ namespace MySystem
                 {
                 {
                     return 60;
                     return 60;
                 }
                 }
-                if(!PosCouponPrizeService.Instance.TradeTeamCheck(UserId))
+                if(!PosCouponPrizeService.Instance.TradeTeamCheck(record.UserId))
                 {
                 {
+                    decimal Amount = count * 60;
+                    RedisDbconn.Instance.AddList("TradeFilterQueue", "{\"OrderId\":\"" + record.Id + "\",\"PrizeUserId\":\"" + user.Id + "\",\"Amount\":\"" + Amount + "\",\"Kind\":\"2\"}");
                     return 0;
                     return 0;
                 }
                 }
                 return 60;
                 return 60;

+ 9 - 7
AppStart/Helper/PosCouponPrize/PosCouponPrizeService.cs

@@ -141,7 +141,7 @@ namespace MySystem
                             //购机奖
                             //购机奖
                             if(parentUser.LeaderLevel > 0)
                             if(parentUser.LeaderLevel > 0)
                             {
                             {
-                                decimal CurBuyPrize = GetBuyPrize(parentUser, order.UserId);
+                                decimal CurBuyPrize = GetBuyPrize(parentUser, order);
                                 decimal GetPrize = CurBuyPrize - BuyPrize;
                                 decimal GetPrize = CurBuyPrize - BuyPrize;
                                 Utils.Instance.PrizeRecord(2, order.OrderNo, "发放金额:" + GetPrize);
                                 Utils.Instance.PrizeRecord(2, order.OrderNo, "发放金额:" + GetPrize);
                                 if(GetPrize > 0 && BuyPrizeFlag < 2)
                                 if(GetPrize > 0 && BuyPrizeFlag < 2)
@@ -175,7 +175,7 @@ namespace MySystem
                             {
                             {
                                 Utils.Instance.PrizeRecord(2, order.OrderNo, "满足条件,发放购机奖");
                                 Utils.Instance.PrizeRecord(2, order.OrderNo, "满足条件,发放购机奖");
                                 //购机奖
                                 //购机奖
-                                decimal CurBuyPrize = GetBuyPrize(parentUser, order.UserId);
+                                decimal CurBuyPrize = GetBuyPrize(parentUser, order);
                                 decimal GetPrize = CurBuyPrize - BuyPrize;
                                 decimal GetPrize = CurBuyPrize - BuyPrize;
                                 Utils.Instance.PrizeRecord(2, order.OrderNo, "发放金额:" + GetPrize);
                                 Utils.Instance.PrizeRecord(2, order.OrderNo, "发放金额:" + GetPrize);
                                 if(GetPrize > 0)
                                 if(GetPrize > 0)
@@ -257,7 +257,7 @@ namespace MySystem
                         {
                         {
                             Utils.Instance.PrizeRecord(2, order.OrderNo, "满足条件,发放购机奖");
                             Utils.Instance.PrizeRecord(2, order.OrderNo, "满足条件,发放购机奖");
                             //购机奖
                             //购机奖
-                            decimal CurBuyPrize = GetBuyPrize(parentUser, order.UserId);
+                            decimal CurBuyPrize = GetBuyPrize(parentUser, order);
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             Utils.Instance.PrizeRecord(2, order.OrderNo, "发放金额:" + GetPrize);
                             Utils.Instance.PrizeRecord(2, order.OrderNo, "发放金额:" + GetPrize);
                             if(GetPrize > 0)
                             if(GetPrize > 0)
@@ -494,7 +494,7 @@ namespace MySystem
                             //购机奖
                             //购机奖
                             if(parentUser.LeaderLevel > 0)
                             if(parentUser.LeaderLevel > 0)
                             {
                             {
-                                decimal CurBuyPrize = GetBuyPrize(parentUser, order.UserId);
+                                decimal CurBuyPrize = GetBuyPrize(parentUser, order);
                                 decimal GetPrize = CurBuyPrize - BuyPrize;
                                 decimal GetPrize = CurBuyPrize - BuyPrize;
                                 if(GetPrize > 0) 
                                 if(GetPrize > 0) 
                                 {
                                 {
@@ -529,7 +529,7 @@ namespace MySystem
                         else if(parentUser.OperateLevel > 0 && CheckOpReserve(opdb, order.BuyCount, parentUser.Id))
                         else if(parentUser.OperateLevel > 0 && CheckOpReserve(opdb, order.BuyCount, parentUser.Id))
                         {
                         {
                             //购机奖
                             //购机奖
-                            decimal CurBuyPrize = GetBuyPrize(parentUser, order.UserId);
+                            decimal CurBuyPrize = GetBuyPrize(parentUser, order);
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             decimal GetPrize = CurBuyPrize - BuyPrize;
                             if(GetPrize > 0)
                             if(GetPrize > 0)
                             {
                             {
@@ -1080,7 +1080,7 @@ namespace MySystem
         /// </summary>
         /// </summary>
         /// <param name="user"></param>
         /// <param name="user"></param>
         /// <returns></returns>
         /// <returns></returns>
-        public decimal GetBuyPrize(UserRankItem user, int OrderUserId = 0)
+        public decimal GetBuyPrize(UserRankItem user, Orders order)
         {
         {
             if(user.OperateLevel == 1) return 100;
             if(user.OperateLevel == 1) return 100;
             if(user.OperateLevel == 2) 
             if(user.OperateLevel == 2) 
@@ -1089,8 +1089,10 @@ namespace MySystem
                 {
                 {
                     return 160;
                     return 160;
                 }
                 }
-                if(!TradeTeamCheck(OrderUserId) && user.Id != OrderUserId)
+                if(!TradeTeamCheck(order.UserId) && user.Id != order.UserId)
                 {
                 {
+                    decimal Amount = order.BuyCount * 60;
+                    RedisDbconn.Instance.AddList("TradeFilterQueue", "{\"OrderId\":\"" + order.Id + "\",\"PrizeUserId\":\"" + user.Id + "\",\"Amount\":\"" + Amount + "\",\"Kind\":\"1\"}");
                     return 100;
                     return 100;
                 }
                 }
                 return 160;
                 return 160;

+ 67 - 0
AppStart/Helper/TradeFilterService.cs

@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using Library;
+using LitJson;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using MySystem.PxcModels;
+
+namespace MySystem
+{
+    public class TradeFilterService
+    {
+        public readonly static TradeFilterService Instance = new TradeFilterService();
+        private TradeFilterService()
+        { }
+
+        public void Start()
+        {
+            Thread th = new Thread(dosomething);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void dosomething()
+        {
+            while (true)
+            {
+                string data = RedisDbconn.Instance.RPop<string>("TradeFilterQueue");
+                if (!string.IsNullOrEmpty(data))
+                {
+                    try
+                    {
+                        JsonData jsonOj = JsonMapper.ToObject(data);
+                        int Kind = int.Parse(function.CheckInt(jsonOj["Kind"].ToString()));
+                        int OrderId = int.Parse(function.CheckInt(jsonOj["OrderId"].ToString()));
+                        int PrizeUserId = int.Parse(function.CheckInt(jsonOj["PrizeUserId"].ToString()));
+                        decimal Amount = decimal.Parse(function.CheckNum(jsonOj["Amount"].ToString()));
+                        WebCMSEntities db = new WebCMSEntities();
+                        Orders order = db.Orders.FirstOrDefault(m => m.Id == OrderId) ?? new Orders();
+                        Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId) ?? new Users();
+                        db.TradeFilterRecord.Add(new TradeFilterRecord()
+                        {
+                            CreateDate = DateTime.Now,
+                            IntercetpAmount = Amount,
+                            OrderDate = order.PayDate,
+                            OrderNo = order.OrderNo,
+                            OrderId = order.Id,
+                            PrizeUserId = PrizeUserId,
+                            OrderUserId = order.UserId,
+                            Kind = Kind,
+                        });
+                        db.Dispose();
+                    }
+                    catch (Exception ex)
+                    {                        
+                        function.WriteLog(DateTime.Now.ToString() + "\r\n" + ex.ToString(), "训练营拦截奖励异常");
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(500);
+                }
+            }
+        }
+    }
+}

+ 12 - 0
PxcModels/NewLeaderData.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class NewLeaderData
+    {
+        public int UserId { get; set; }
+        public decimal BalanceAmount { get; set; }
+        public decimal ReserveAmount { get; set; }
+    }
+}

+ 18 - 0
PxcModels/TradeFilterRecord.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class TradeFilterRecord
+    {
+        public int Id { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public decimal IntercetpAmount { get; set; }
+        public DateTime? OrderDate { get; set; }
+        public string OrderNo { get; set; }
+        public int OrderId { get; set; }
+        public int PrizeUserId { get; set; }
+        public int OrderUserId { get; set; }
+        public int Kind { get; set; }
+    }
+}

+ 63 - 0
PxcModels/WebCMSEntities.cs

@@ -130,6 +130,7 @@ namespace MySystem.PxcModels
         public virtual DbSet<MsgSms> MsgSms { get; set; }
         public virtual DbSet<MsgSms> MsgSms { get; set; }
         public virtual DbSet<MsgSmsSet> MsgSmsSet { get; set; }
         public virtual DbSet<MsgSmsSet> MsgSmsSet { get; set; }
         public virtual DbSet<MsgTemplate> MsgTemplate { get; set; }
         public virtual DbSet<MsgTemplate> MsgTemplate { get; set; }
+        public virtual DbSet<NewLeaderData> NewLeaderData { get; set; }
         public virtual DbSet<OpenBankCityTable> OpenBankCityTable { get; set; }
         public virtual DbSet<OpenBankCityTable> OpenBankCityTable { get; set; }
         public virtual DbSet<OpenBankTable> OpenBankTable { get; set; }
         public virtual DbSet<OpenBankTable> OpenBankTable { get; set; }
         public virtual DbSet<OpenReward> OpenReward { get; set; }
         public virtual DbSet<OpenReward> OpenReward { get; set; }
@@ -259,6 +260,7 @@ namespace MySystem.PxcModels
         public virtual DbSet<TradeDaySummary2Before> TradeDaySummary2Before { get; set; }
         public virtual DbSet<TradeDaySummary2Before> TradeDaySummary2Before { get; set; }
         public virtual DbSet<TradeDaySummaryAfter> TradeDaySummaryAfter { get; set; }
         public virtual DbSet<TradeDaySummaryAfter> TradeDaySummaryAfter { get; set; }
         public virtual DbSet<TradeDaySummaryBefore> TradeDaySummaryBefore { get; set; }
         public virtual DbSet<TradeDaySummaryBefore> TradeDaySummaryBefore { get; set; }
+        public virtual DbSet<TradeFilterRecord> TradeFilterRecord { get; set; }
         public virtual DbSet<TradeRecord> TradeRecord { get; set; }
         public virtual DbSet<TradeRecord> TradeRecord { get; set; }
         public virtual DbSet<TradeRecordTest> TradeRecordTest { get; set; }
         public virtual DbSet<TradeRecordTest> TradeRecordTest { get; set; }
         public virtual DbSet<UpUserRelation> UpUserRelation { get; set; }
         public virtual DbSet<UpUserRelation> UpUserRelation { get; set; }
@@ -8801,6 +8803,26 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.Version).HasColumnType("int(11)");
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<NewLeaderData>(entity =>
+            {
+                entity.HasKey(e => e.UserId)
+                    .HasName("PRIMARY");
+
+                entity.HasComment("新盟主体系数据");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客Id");
+
+                entity.Property(e => e.BalanceAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("盟主可提现余额");
+
+                entity.Property(e => e.ReserveAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("盟主储蓄金");
+            });
+
             modelBuilder.Entity<OpenBankCityTable>(entity =>
             modelBuilder.Entity<OpenBankCityTable>(entity =>
             {
             {
                 entity.HasKey(e => e.CityName)
                 entity.HasKey(e => e.CityName)
@@ -18260,6 +18282,47 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.VipFlag).HasColumnType("int(11)");
                 entity.Property(e => e.VipFlag).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<TradeFilterRecord>(entity =>
+            {
+                entity.HasComment("训练营拦截记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.IntercetpAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("拦截金额");
+
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("类别");
+
+                entity.Property(e => e.OrderDate)
+                    .HasColumnType("datetime")
+                    .HasComment("下单时间");
+
+                entity.Property(e => e.OrderId)
+                    .HasColumnType("int(11)")
+                    .HasComment("订单");
+
+                entity.Property(e => e.OrderNo)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("订单号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.OrderUserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("下单人");
+
+                entity.Property(e => e.PrizeUserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("拦截奖励人");
+            });
+
             modelBuilder.Entity<TradeRecord>(entity =>
             modelBuilder.Entity<TradeRecord>(entity =>
             {
             {
                 entity.HasIndex(e => new { e.BrandId, e.UserId, e.MerchantId, e.MerNo, e.SnNo, e.CreateDate })
                 entity.HasIndex(e => new { e.BrandId, e.UserId, e.MerchantId, e.MerNo, e.SnNo, e.CreateDate })