Browse Source

调试流程,可以正常执行到分账,但没有退款返现

lcl 1 năm trước cách đây
mục cha
commit
c603fa50a2

+ 1 - 1
Controllers/HomeController.cs

@@ -30,7 +30,7 @@ namespace MySystem.Controllers
             MerchantIds.Add(5);
             foreach(int MerchantId in MerchantIds)
             {
-                RedisDbconn.Instance.AddList("MerchantConfirmQueue", "{\"MerchantId\":\"" + MerchantId + "\"}");
+                RedisDbconn.Instance.AddList("MerchantConfirmHdQueue", "{\"MerchantId\":\"" + MerchantId + "\"}");
             }
             return "ok";
         }

+ 24 - 0
Models/Main/MerchantAccountLinkInfo.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models.Main
+{
+    public partial class MerchantAccountLinkInfo
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int MerchantId { get; set; }
+        public int Kind { get; set; }
+        public int LoginId { get; set; }
+    }
+}

+ 3 - 0
Models/Main/MerchantInfo.cs

@@ -42,5 +42,8 @@ namespace MySystem.Models.Main
         public decimal TotalActAmount { get; set; }
         public int ActStat { get; set; }
         public DateTime? SignDate { get; set; }
+        public decimal AllocationAmount { get; set; }
+        public decimal ActMaxAmount { get; set; }
+        public decimal ActCurrentAmount { get; set; }
     }
 }

+ 23 - 0
Models/Main/MerchantLoginInfo.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models.Main
+{
+    public partial class MerchantLoginInfo
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public string LoginPwd { get; set; }
+        public string LoginMobile { get; set; }
+    }
+}

+ 31 - 0
Models/Main/MerchantTradeSummary.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models.Main
+{
+    public partial class MerchantTradeSummary
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public decimal AliPayInFactAmount { get; set; }
+        public decimal WeChatInfactAmount { get; set; }
+        public int OderCount { get; set; }
+        public decimal InFactAmount { get; set; }
+        public decimal TradeAmount { get; set; }
+        public string TradeDate { get; set; }
+        public string TradeMonth { get; set; }
+        public int MerchantId { get; set; }
+        public decimal ActAmount { get; set; }
+        public decimal NonActAmount { get; set; }
+    }
+}

+ 258 - 1
Models/Main/WebCMSEntities.cs

@@ -84,6 +84,7 @@ namespace MySystem.Models.Main
         public virtual DbSet<MachineReturn> MachineReturn { get; set; }
         public virtual DbSet<MachineUnBind> MachineUnBind { get; set; }
         public virtual DbSet<MenuRight> MenuRight { get; set; }
+        public virtual DbSet<MerchantAccountLinkInfo> MerchantAccountLinkInfo { get; set; }
         public virtual DbSet<MerchantAddInfo> MerchantAddInfo { get; set; }
         public virtual DbSet<MerchantAdmin> MerchantAdmin { get; set; }
         public virtual DbSet<MerchantAmountSummay> MerchantAmountSummay { get; set; }
@@ -98,9 +99,11 @@ namespace MySystem.Models.Main
         public virtual DbSet<MerchantForMobile> MerchantForMobile { get; set; }
         public virtual DbSet<MerchantForName> MerchantForName { get; set; }
         public virtual DbSet<MerchantInfo> MerchantInfo { get; set; }
+        public virtual DbSet<MerchantLoginInfo> MerchantLoginInfo { get; set; }
         public virtual DbSet<MerchantParamSet> MerchantParamSet { get; set; }
         public virtual DbSet<MerchantQrCode> MerchantQrCode { get; set; }
         public virtual DbSet<MerchantRebateDetail> MerchantRebateDetail { get; set; }
+        public virtual DbSet<MerchantTradeSummary> MerchantTradeSummary { get; set; }
         public virtual DbSet<Merchants> Merchants { get; set; }
         public virtual DbSet<MobileCodeCheck> MobileCodeCheck { get; set; }
         public virtual DbSet<MsgAlert> MsgAlert { get; set; }
@@ -5071,6 +5074,76 @@ namespace MySystem.Models.Main
                     .HasCollation("utf8_general_ci");
             });
 
+            modelBuilder.Entity<MerchantAccountLinkInfo>(entity =>
+            {
+                entity.HasComment("帐号关联信息");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("进件通道");
+
+                entity.Property(e => e.LoginId)
+                    .HasColumnType("int(11)")
+                    .HasComment("登录账户Id");
+
+                entity.Property(e => e.MerchantId)
+                    .HasColumnType("int(11)")
+                    .HasComment("商户Id");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                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.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<MerchantAddInfo>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -5235,7 +5308,7 @@ namespace MySystem.Models.Main
                     .HasCollation("utf8_general_ci");
 
                 entity.Property(e => e.BizStoreAddress)
-                    .HasColumnType("varchar(50)")
+                    .HasColumnType("varchar(100)")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
@@ -6430,6 +6503,14 @@ namespace MySystem.Models.Main
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
+                entity.Property(e => e.ActCurrentAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("活动已返金额");
+
+                entity.Property(e => e.ActMaxAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("活动应返金额");
+
                 entity.Property(e => e.ActStat)
                     .HasColumnType("int(11)")
                     .HasComment("激活统计标记");
@@ -6443,6 +6524,10 @@ namespace MySystem.Models.Main
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.AllocationAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("未分配活动金额");
+
                 entity.Property(e => e.Areas)
                     .HasColumnType("varchar(50)")
                     .HasCharSet("utf8")
@@ -6545,6 +6630,76 @@ namespace MySystem.Models.Main
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<MerchantLoginInfo>(entity =>
+            {
+                entity.HasComment("商户登录信息");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.LoginMobile)
+                    .HasColumnType("varchar(11)")
+                    .HasComment("登录手机")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.LoginPwd)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("登录密码")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                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.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<MerchantParamSet>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -6760,6 +6915,108 @@ namespace MySystem.Models.Main
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<MerchantTradeSummary>(entity =>
+            {
+                entity.HasComment("商户交易统计表");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.ActAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("活动交易额");
+
+                entity.Property(e => e.AliPayInFactAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("支付宝实收金额");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.InFactAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("实收金额");
+
+                entity.Property(e => e.MerchantId)
+                    .HasColumnType("int(11)")
+                    .HasComment("商户Id");
+
+                entity.Property(e => e.NonActAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("非活动交易额");
+
+                entity.Property(e => e.OderCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("订单数");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.TradeAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("交易金额");
+
+                entity.Property(e => e.TradeDate)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("交易日期")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.TradeMonth)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("交易月份")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("更新时间");
+
+                entity.Property(e => e.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+
+                entity.Property(e => e.WeChatInfactAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("微信实收金额");
+            });
+
             modelBuilder.Entity<Merchants>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");

+ 2 - 1
Startup.cs

@@ -137,7 +137,7 @@ namespace MySystem
             initMainServer();
             MerchantConfirmService.Instance.Start(); //提交商户进件
             CheckWeChatSignService.Instance.Start(); //查询商户审核状态
-            ProfitShareService.Instance.Start(); //分账
+            ProfitShareService.Instance.Start(); //分账状态监控队列,分账完成则提交返现
             HaoDaExtHelper.Instance.StartWeChat();
             HaoDaExtHelper.Instance.StartAlipay();
             HaoDaExtQueryHelper.Instance.StartWeChat();
@@ -146,6 +146,7 @@ namespace MySystem
             WeChatPayBackService.Instance.Start(); //支付回调
             WeChatPayBackService.Instance.StartProfitShare(); //分账队列
             HaoDaHelper.Instance.QueryOrderDivideAccountsss();
+            ProfitHelper.Instance.StartListenWxTrade(); //返现队列
             // TestOpenDivideAccountsService.Instance.Start(); //测试
         }
 

+ 3 - 3
Util/HaoDa/CheckWeChatSignService.cs

@@ -26,12 +26,12 @@ namespace MySystem
         {
             while (true)
             {
-                string content = RedisDbconn.Instance.RPop<string>("WeChatSignQueue");
+                string content = RedisDbconn.Instance.RPop<string>("WeChatSignHdQueue");
                 if (!string.IsNullOrEmpty(content))
                 {
                     if(content == "sleep")
                     {
-                        RedisDbconn.Instance.AddList("WeChatSignQueue", "sleep");
+                        RedisDbconn.Instance.AddList("WeChatSignHdQueue", "sleep");
                         Thread.Sleep(60000);
                     }
                     else
@@ -41,7 +41,7 @@ namespace MySystem
                         if (result == "wait")
                         {
                             Thread.Sleep(500);
-                            RedisDbconn.Instance.AddList("WeChatSignQueue", queryMerchantStatus);
+                            RedisDbconn.Instance.AddList("WeChatSignHdQueue", queryMerchantStatus);
                         }
                     }
                 }

+ 6 - 4
Util/HaoDa/MerchantConfirmService.cs

@@ -26,7 +26,7 @@ namespace MySystem
         {
             while (true)
             {
-                string content = RedisDbconn.Instance.RPop<string>("MerchantConfirmQueue");
+                string content = RedisDbconn.Instance.RPop<string>("MerchantConfirmHdQueue");
                 if (!string.IsNullOrEmpty(content))
                 {
                     try
@@ -112,16 +112,18 @@ namespace MySystem
                     //创建成功
                     if (jsonObj["resultCode"].ToString() == "1")
                     {
-
                         AddInfo.WeChatRemark = "";
-                        AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString();
+                        if(string.IsNullOrEmpty(AddInfo.MchtNo))
+                        {
+                            AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString();
+                        }
                         AddInfo.Status = 0;
                         merchant.Status = 0;
                         db.SaveChanges();
                         QueryMerchantStatus queryMerchantStatus = new QueryMerchantStatus();
                         queryMerchantStatus.MerchantId = MerchantId.ToString();
                         queryMerchantStatus.MerchantNo = AddInfo.MchtNo;
-                        RedisDbconn.Instance.AddList("WeChatSignQueue", queryMerchantStatus);
+                        RedisDbconn.Instance.AddList("WeChatSignHdQueue", queryMerchantStatus);
                     }
                     //创建失败
                     else

+ 13 - 9
Util/HaoDa/ProfitHelper.cs

@@ -28,7 +28,7 @@ namespace MySystem
         {
             while (true)
             {
-                string orderidstring = RedisDbconn.Instance.RPop<string>("ConsumerOrders:Divi:1:List");
+                string orderidstring = RedisDbconn.Instance.RPop<string>("ConsumerOrdersHd:Divi:1:List");
                 if (!string.IsNullOrEmpty(orderidstring))
                 {
                     ReturnStat(orderidstring, 1);
@@ -50,7 +50,7 @@ namespace MySystem
         {
             while (true)
             {
-                string orderidstring = RedisDbconn.Instance.RPop<string>("ConsumerOrders:Divi:2:List");
+                string orderidstring = RedisDbconn.Instance.RPop<string>("ConsumerOrdersHd:Divi:2:List");
                 if (!string.IsNullOrEmpty(orderidstring))
                 {
                     ReturnStat(orderidstring, 2);
@@ -98,14 +98,15 @@ namespace MySystem
                             // decimal TotalActual = 0;
                             if (IsAll == 0 && PayMoney >= MinPayMoney && GetPercent < 1)
                             {
+                                // PayMoney * (1 - 0.1 - 0.0038 - 0.01);
                                 decimal DiviMoney = PayMoney * (1 - GetPercent - cusumerFeePercent - profitPercent);
                                 if (DiviMoney > 0)
                                 {
-                                    RedisDbconn.Instance.AddRightList("ConsumerOrders:Divi:" + PayMode + ":" + order.MerchantId, order);
+                                    RedisDbconn.Instance.AddRightList("ConsumerOrdersHd:Divi:" + PayMode + ":" + order.MerchantId, order);
                                     DiviMoney = DiviMoney / DiviPersons;
                                     List<int> deletes = new List<int>();
                                     long CurDiviPersons = DiviPersons;
-                                    long QueueCount = RedisDbconn.Instance.Count("ConsumerOrders:Divi:" + PayMode + ":" + MerchantId);
+                                    long QueueCount = RedisDbconn.Instance.Count("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId);
                                     long CurQueueCount = QueueCount;
                                     if (CurDiviPersons >= CurQueueCount)
                                     {
@@ -121,7 +122,7 @@ namespace MySystem
                                     int OutCount = 0; // 出局人数
                                     while (CurDiviPersons > 0)
                                     {
-                                        ConsumerOrders suborder = RedisDbconn.Instance.RPop<ConsumerOrders>("ConsumerOrders:Divi:" + PayMode + ":" + MerchantId);
+                                        ConsumerOrders suborder = RedisDbconn.Instance.RPop<ConsumerOrders>("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId);
                                         if (suborder != null)
                                         {
                                             MerchantParamSet subset = Newtonsoft.Json.JsonConvert.DeserializeObject<MerchantParamSet>(order.SeoDescription);
@@ -153,7 +154,7 @@ namespace MySystem
                                                         ConsumerId = suborder.ConsumerId,
                                                         MerchantId = suborder.MerchantId,
                                                         OrderId = suborder.Id,
-                                                        GetMoney = GetMoney,
+                                                        GetMoney = Math.Round(GetMoney, 2),
                                                         QueryCount = PayMode,
                                                         Sort = OrderId,
                                                         SeoTitle = suborder.OrderNo,
@@ -163,10 +164,13 @@ namespace MySystem
                                                     MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == suborder.MerchantId) ?? new MerchantAddInfo();
                                                     
                                                     //聚合支付退款
-                                                    var info = HaoDaHelper.Instance.AggregatedPayRefund(merchantAdd.OutMchtNo, merchantAdd.StoreNo, "HDTK" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8), order.OrderNo, GetMoney.ToString());
+                                                    var info = HaoDaHelper.Instance.AggregatedPayRefund(merchantAdd.OutMchtNo, merchantAdd.StoreNo, "HDTK" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8), order.OrderNo, Math.Round(GetMoney, 2).ToString());
+
+                                                    merchant.ActCurrentAmount += Math.Round(GetMoney, 2); //活动已返金额
+                                                    db.SaveChanges();
                                                     if (suborder.CurDivi < suborder.MaxDivi)
                                                     {
-                                                        RedisDbconn.Instance.AddList("ConsumerOrders:Divi:" + PayMode + ":" + MerchantId, suborder);
+                                                        RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, suborder);
                                                     }
                                                     else
                                                     {
@@ -181,7 +185,7 @@ namespace MySystem
                                             }
                                         }
                                         CurDiviPersons -= 1;
-                                        QueueCount = RedisDbconn.Instance.Count("ConsumerOrders:Divi:" + PayMode + ":" + MerchantId);
+                                        QueueCount = RedisDbconn.Instance.Count("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId);
                                         if (QueueCount == 0)
                                         {
                                             CurDiviPersons = 0;

+ 3 - 3
Util/HaoDa/ProfitShareService.cs

@@ -26,7 +26,7 @@ namespace MySystem
         {
             while (true)
             {
-                string content = RedisDbconn.Instance.RPop<string>("ProfitShareQueue");
+                string content = RedisDbconn.Instance.RPop<string>("ProfitShareHdQueue");
                 if (!string.IsNullOrEmpty(content))
                 {
                     StartDo(content);
@@ -54,13 +54,13 @@ namespace MySystem
                     ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.OrderNo == OrderNo && m.Status == 2);
                     if (order != null)
                     {
-                        RedisDbconn.Instance.AddList("ConsumerOrders:Divi:" + order.PayMode + ":List", order.Id.ToString());
+                        RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":List", order.Id.ToString());
                     }
                     db.Dispose();
                 }
                 else
                 {
-                    RedisDbconn.Instance.AddList("ProfitShareQueue", content);
+                    RedisDbconn.Instance.AddList("ProfitShareHdQueue", content);
                 }
             }
             catch (Exception ex)

+ 28 - 30
Util/HaoDa/WeChatPayBackService.cs

@@ -108,37 +108,35 @@ namespace MySystem
                             order.Status = 2;
                             MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantInfo();
                             MerchantParamSet set = db.MerchantParamSet.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantParamSet();
-                            // if (order.IsAct == 1 && order.PayMoney >= set.MinPayMoney)
-                            // {
-                            //     MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantAddInfo();
-                            //     //发起分账
-                            //     decimal fee = order.PayMoney; //单位:分
-                            //     if (fee >= 1)
-                            //     {
-                            //         string applyNo = "FZ" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8); //批次号
-                            //         string mchtNo = merchantAdd.OutMchtNo; //慧掌柜商户号
-                            //         string orderNo = order.SeoTitle; //交易订单号(好哒平台订单号,G开头)
-                            //         string acctNo = AppConfig.Haoda.AcctNo; //账户号,分账接收方账户号
-                            //         string sacctNo = merchantAdd.MchtNo; //账户号,收款商户号
-                            //         string acctType = "0"; //账户类型(0:商户收款账户(大B),1:分账接收方账户(小B))
-                            //         string amount = (fee * (1M - 0.0038M)).ToString(); //金额(分)手续费
-                            //         amount = decimal.Parse(amount).ToString("f0");
-                            //         string seviceAmount = (fee * 0.01M).ToString(); //服务费
-                            //         seviceAmount = decimal.Parse(seviceAmount).ToString("f0");
-                            //         HaoDaHelper.Instance.OrderDivideAccounts(OrderDivideAccountsUtil.AddValue(applyNo, mchtNo, orderNo, acctNo, sacctNo, acctType, amount, seviceAmount));
+                            if (order.IsAct == 1 && order.PayMoney >= set.MinPayMoney)
+                            {
+                                MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantAddInfo();
+                                //发起分账
+                                decimal fee = order.PayMoney;
+                                if (fee >= 1)
+                                {
+                                    string applyNo = "FZ" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8); //批次号
+                                    string mchtNo = merchantAdd.OutMchtNo; //慧掌柜商户号
+                                    string orderNo = order.SeoTitle; //交易订单号(好哒平台订单号,G开头)
+                                    string acctNo = AppConfig.Haoda.AcctNo; //账户号,分账接收方账户号
+                                    string sacctNo = merchantAdd.MchtNo; //账户号,收款商户号
+                                    string acctType = "0"; //账户类型(0:商户收款账户(大B),1:分账接收方账户(小B))
+                                    decimal amount = fee * (1M - 0.0038M) * 100 - fee; //金额(分)手续费
+                                    string seviceAmount = fee.ToString("f0"); //服务费
+                                    HaoDaHelper.Instance.OrderDivideAccounts(OrderDivideAccountsUtil.AddValue(applyNo, mchtNo, orderNo, acctNo, sacctNo, acctType, amount.ToString("f0"), seviceAmount));
 
-                            //         //开始监听分账状态
-                            //         Dictionary<string, object> req = new Dictionary<string, object>();
-                            //         req.Add("ApplyNo", applyNo);
-                            //         req.Add("OrderNo", orderNo);
-                            //         req.Add("MchtNo", mchtNo);
-                            //         RedisDbconn.Instance.AddList("ProfitShareQueue", Newtonsoft.Json.JsonConvert.SerializeObject(req));
-                            //     }
-                            //     else
-                            //     {
-                            //         RedisDbconn.Instance.AddList("ConsumerOrders:Divi:2:List", order.Id.ToString());
-                            //     }
-                            // }
+                                    //开始监听分账状态
+                                    Dictionary<string, object> req = new Dictionary<string, object>();
+                                    req.Add("ApplyNo", applyNo);
+                                    req.Add("OrderNo", orderNo);
+                                    req.Add("MchtNo", mchtNo);
+                                    RedisDbconn.Instance.AddList("ProfitShareHdQueue", Newtonsoft.Json.JsonConvert.SerializeObject(req));
+                                }
+                                else
+                                {
+                                    RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:2:List", order.Id.ToString());
+                                }
+                            }
                         }
                     }
                     db.SaveChanges();