瀏覽代碼

手动补分账

lcl 1 年之前
父節點
當前提交
9d56989abb
共有 2 個文件被更改,包括 56 次插入6 次删除
  1. 8 5
      Util/HaoDa/OrderDivideAccountsUtil.cs
  2. 48 1
      Util/HaoDa/TestHaoDaService.cs

+ 8 - 5
Util/HaoDa/OrderDivideAccountsUtil.cs

@@ -32,11 +32,14 @@ namespace MySystem
             List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
             Dictionary<string, object> obj = new Dictionary<string, object>();
             //分账接收方账户
-            obj = new Dictionary<string, object>();
-            obj.Add("acctNo", "230817000000000278");
-            obj.Add("acctType", "1");
-            obj.Add("amount", seviceAmount);
-            list.Add(obj);
+            if(seviceAmount != "0")
+            {
+                obj = new Dictionary<string, object>();
+                obj.Add("acctNo", "230817000000000278");
+                obj.Add("acctType", "1");
+                obj.Add("amount", seviceAmount);
+                list.Add(obj);
+            }
 
             //商户收款账户
             obj = new Dictionary<string, object>();

+ 48 - 1
Util/HaoDa/TestHaoDaService.cs

@@ -34,13 +34,60 @@ namespace MySystem
             // AlipayAddInfo(828,"202309011037906510");//查询支付宝开户意愿申请状态
             // WeChatAddInfo(826);//提交微信开户意愿申请单
             // WeChatAddInfo(825,"2000002424428809");//查询微信开户意愿申请状态
-            QueryMerchantStatus(867);//新建商户查询状态
+            // QueryMerchantStatus(867);//新建商户查询状态
             // ConfiemMer(808);//新建商户
             // ChangeMerchantCard(1);//商户修改银行卡
             // AddOpenDivideAccounts(832); //添加分账方
             // QueryAuthStatus(5);//查询实名认证状态
             // WeChatFunctionForHD.Instance.QueryAuthMerchant("600955391");
             // AlipayFunctionForHD.Instance.AuthOrderAuthQuery("2088820718243322");
+            StartProfitShareListen();
+        }
+
+        public void StartProfitShareListen()
+        {
+            bool op = true;
+            while (op)
+            {
+                try
+                {
+                    WebCMSEntities db = new WebCMSEntities();
+                    var list = db.ConsumerOrders.Where(m => m.Status == 1 && m.IsAct == 0).OrderByDescending(m => m.Id).ToList();
+                    foreach (var sub in list)
+                    {
+                        ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.Id == sub.Id);
+                        if (order != null)
+                        {
+                            int 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();
+                            
+                            MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantAddInfo();
+                            //发起分账
+                            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 = order.PayMoney * (1M - 0.0038M) * 100;
+                            string result = HaoDaHelper.Instance.OrderDivideAccounts(OrderDivideAccountsUtil.AddValue(applyNo, mchtNo, orderNo, acctNo, sacctNo, acctType, amount.ToString().Split('.')[0], "0"));
+                            if(result.Contains("\"resultCode\":\"0\"") && result.Contains("分账金额不足"))
+                            {
+                                Status = 1;
+                            }
+                            order.Status = Status;
+                        }
+                    }
+                    db.SaveChanges();
+                    db.Dispose();
+                }
+                catch (Exception ex)
+                {
+                    LogHelper.Instance.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "好哒分账队列异常");
+                }
+                Thread.Sleep(2000);
+            }
         }
 
         //新建商户查询状态