using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Library; using LitJson; using System.Data; using MySystem.Models.Main; using System.Text.RegularExpressions; using Aop.Api.Domain; using MySystem.Models; namespace MySystem.Controllers { public class HomeController : Controller { private readonly ILogger _logger; public HomeController(ILogger logger) { _logger = logger; } public IActionResult Index() { return View(); } // public string test2(int id) // { // WebCMSEntities db = new WebCMSEntities(); // MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantAddInfo(); // AddInfo.MchtNo = ""; // string result = HaoDaHelper.Instance.AddNewMerchant(AddNewMerchantSetUtil.SetValue(AddInfo)); // db.Dispose(); // return result; // } public string test() { // List MerchantIds = new List(); // MerchantIds.Add(5); // foreach(int MerchantId in MerchantIds) // { // RedisDbconn.Instance.AddList("MerchantConfirmHdQueue", "{\"MerchantId\":\"" + MerchantId + "\"}"); // } // TianYuVoiceHelper.Instance.doSomething(DateTime.Now.ToString("yyyyMMddHHmmssfff"),"2023100701","100"); // MqLinksHelper.Instance.doSomething("LKB01230600250000585","100"); WebCMSEntities db = new WebCMSEntities(); DateTime start = DateTime.Parse("2024-03-10 00:00:00"); List orders = db.ConsumerOrders.Where(m => m.Status > 0 && m.IsAct == 1 && m.CreateDate > start && m.CurDivi < m.MaxDivi && m.SettleAmount > 0).OrderBy(m => m.Id).ToList(); foreach(ConsumerOrders order in orders) { bool check = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, 1, 10000).Any(m => m.Id == order.Id); bool check1 = db.ConsumerProfit.Any(m => m.OrderId == order.Id); if(!check && !check1) { RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":List", order.Id.ToString()); ConsumerOrders edit = db.ConsumerOrders.FirstOrDefault(m => m.Id == order.Id); if(edit != null) { edit.ReturnFlag = 1; db.SaveChanges(); } } else { if(!check) { RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order); ConsumerOrders edit = db.ConsumerOrders.FirstOrDefault(m => m.Id == order.Id); if(edit != null) { edit.ReturnFlag = 1; db.SaveChanges(); } } else if(!check1) { ConsumerOrders edit = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, 1, 10000).FirstOrDefault(m => m.Id == order.Id); long count = RedisDbconn.Instance.DelFromList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId,edit); if(count > 0) { RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":List", order.Id.ToString()); } } } if(order.ReturnFlag == 0 && check && check1) { ConsumerOrders edit = db.ConsumerOrders.FirstOrDefault(m => m.Id == order.Id); if(edit != null) { edit.ReturnFlag = 1; db.SaveChanges(); } } } // Dictionary ids = new Dictionary(); // ids.Add("2023123120272680842405573", 30.08M); // foreach(string orderno in ids.Keys) // { // decimal cur = ids[orderno]; // ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.OrderNo == orderno) ?? new ConsumerOrders(); // order.CurDivi = cur; // order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"UpdateDate\":\".*?\"", "\"UpdateDate\":\"" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + "\""); // order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"ProfitDays\":.*?,", "\"ProfitDays\":90,"); // RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order); // } // string content = function.ReadInstance("/222.log"); // string[] contents = content.Split('\n'); // foreach(string sub in contents) // { // // RedisDbconn.Instance.AddList("WeChatPayBackHd", sub); // RedisDbconn.Instance.AddList("PartOrderQueue", sub); // } // DataTable dt = CustomerSqlConn.dtable("select tb.Id,tb.PayMode,p.Id pId from (select Id,PayMode from ConsumerOrders where CreateDate>='2024-01-18 00:00:00' and `Status`>0) tb left join ConsumerProfit p on tb.Id=p.OrderId", AppConfig.Base.SqlConnStr); // foreach(DataRow dr in dt.Rows) // { // string Id = dr["Id"].ToString(); // string PayMode = dr["PayMode"].ToString(); // string pId = dr["pId"].ToString(); // if(string.IsNullOrEmpty(pId)) // { // RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + PayMode + ":List", Id); // } // } string str = ""; // str += ""; // str += ""; // List orders = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:2:1940", 1, 10000).Select(m => m.Id).ToList(); // DataTable dt = CustomerSqlConn.dtable("select OrderId,sum(GetMoney) money from ConsumerProfit where MerchantId=1940 and CreateDate>='2023-12-01 00:00:00' group by OrderId order by OrderId", AppConfig.Base.SqlConnStr); // foreach(DataRow dr in dt.Rows) // { // decimal cur = decimal.Parse(dr["money"].ToString()); // int OrderId = int.Parse(dr["OrderId"].ToString()); // if(!orders.Contains(OrderId)) // { // // string orderno = dr["OrderNo"].ToString(); // ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.Id == OrderId) ?? new ConsumerOrders(); // if(order.MaxDivi - cur >= 1) // { // order.CurDivi = cur; // MerchantParamSet set = Newtonsoft.Json.JsonConvert.DeserializeObject(order.SeoDescription); // order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"UpdateDate\":\".*?\"", "\"UpdateDate\":\"" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + "\""); // // order.SeoDescription = Regex.Replace(function.CheckNull(order.SeoDescription), "\"ProfitDays\":.*?,", "\"ProfitDays\":365,"); // str += ""; // // RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order); // // var list = db.ConsumerProfit.Where(m => m.OrderId == order.Id).OrderBy(m => m.Id).ToList(); // // foreach(var sub in list) // // { // // if(cur >= sub.GetMoney) // // { // // cur -= sub.GetMoney; // // } // // else // // { // // if(cur > 0) // // { // // var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id); // // if(edit != null) // // { // // edit.GetMoney = cur; // // db.SaveChanges(); // // } // // } // // else // // { // // var edit = db.ConsumerProfit.FirstOrDefault(m => m.OrderId == order.Id); // // if(edit != null) // // { // // db.ConsumerProfit.Remove(edit); // // db.SaveChanges(); // // } // // } // // } // // } // } // } // } // str += "
订单号下单时间商家分红天数当前分红金额最大分红
" + order.OrderNo + "" + order.UpdateDate.Value.ToString() + "" + set.ProfitDays + "" + cur + "" + order.MaxDivi + "
"; // List ids = new List(); // ids.Add(4058); // List orders = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:2:1271"); // foreach(int oid in ids) // { // function.WriteLog("oid:" + oid, "返现id"); // decimal curDivi = 0; // ConsumerOrders order = orders.FirstOrDefault(m => m.Id == oid); // if(order == null) // { // order = db.ConsumerOrders.FirstOrDefault(m => m.Id == oid); // curDivi = order.MaxDivi; // function.WriteLog("出局", "返现id"); // } // else // { // function.WriteLog("未出局", "返现id"); // curDivi = order.CurDivi; // } // if(order != null) // { // List profits = db.ConsumerProfit.Where(m => m.OrderId == oid).ToList(); // foreach(ConsumerProfit profit in profits) // { // if(curDivi >= profit.GetMoney) // { // curDivi -= profit.GetMoney; // } // else // { // function.WriteLog(profit.Id.ToString(), "返现id"); // } // } // } // function.WriteLog("\n\n", "返现id"); // } db.Dispose(); // RedisDbconn.Instance.AddRightList("testlist", "1"); // RedisDbconn.Instance.AddRightList("testlist", "2"); // RedisDbconn.Instance.AddRightList("testlist", "3"); // RedisDbconn.Instance.AddRightList("testlist", "4"); // RedisDbconn.Instance.AddRightList("testlist", "5"); // RedisDbconn.Instance.AddRightList("testlist", "6"); // RedisDbconn.Instance.AddRightList("testlist", "7"); // RedisDbconn.Instance.AddRightList("testlist", "8"); // RedisDbconn.Instance.AddRightList("testlist", "9"); // str = RedisDbconn.Instance.RPopLPush("testlist", "testlist");  // decimal settleAmount = b / 100M; // decimal divideAmt = (1 - 0.0038M) * a; // divideAmt = decimal.Parse(divideAmt.ToString("f2")); // decimal hdfee = 0.0038M * a * (1 - g / 100 - 0.01M); // hdfee = decimal.Parse(hdfee.ToString("f2")); // decimal servicefee = 0.01M * a - hdfee; // servicefee = decimal.Parse(servicefee.ToString("f2")); // decimal amount = a*(1-0.0038M) - servicefee; // amount = decimal.Parse(amount.ToString("f2")); // decimal otherAmt = settleAmount - servicefee - amount; // if(otherAmt != 0) // { // amount += otherAmt; // } // amount = amount * 100; //金额(分) // servicefee = servicefee * 100; // string seviceAmount = servicefee.ToString("f0"); //服务费 // string amountAmount = amount.ToString("f0"); // return amountAmount + ":" + seviceAmount; // List ids = new List(); // ids.Add(191); // foreach(int id in ids) // { // RedisDbconn.Instance.AddList("MerchantConfirmHdQueue", "{\"MerchantId\":\"" + id.ToString() + "\"}"); // } // List orders = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:2:1940", 1, 10000); // int index = orders.Count; // foreach(ConsumerOrders order in orders) // { // index -= 1; // // decimal persent = order.CurDivi / order.MaxDivi; // // if(order.CurDivi > order.MaxDivi) // // { // // RedisDbconn.Instance.DelFromList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order); // order.MaxDivi = order.PayMoney * 0.8M; // RedisDbconn.Instance.SetList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, index, order); // // } // } // DataTable dt = CustomerSqlConn.dtable("select DISTINCT MerchantId,PayMode from ConsumerOrders where IsAct=1 and `Status`>0 and MerchantId!=1940 order by MerchantId,PayMode", AppConfig.Base.SqlConnStr); // foreach(DataRow dr in dt.Rows) // { // string PayMode = dr["PayMode"].ToString(); // string MerchantId = dr["MerchantId"].ToString(); // List orders = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, 1, 10000); // foreach(ConsumerOrders order in orders) // { // decimal check = order.MaxDivi - order.CurDivi; // if(check < 0.01M) // { // function.WriteLog("MerchantId:" + order.MerchantId); // RedisDbconn.Instance.DelFromList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order); // } // } // } return str; } public string bindapp(int mid) { // DataTable dt = CustomerSqlConn.dtable("select Id,MchtNo from MerchantAddInfo where HdStatus=3 and CreateDate>='2023-10-01 00:00:00' and MchtNo!='' and MchtNo is not null", AppConfig.Base.SqlConnStr); // DataTable dt = CustomerSqlConn.dtable("select Id,MchtNo from MerchantAddInfo where Id=" + mid, AppConfig.Base.SqlConnStr); // foreach(DataRow dr in dt.Rows) // { // CheckWeChatSignService.Instance.StartDo(new QueryMerchantStatus() // { // MerchantId = dr["Id"].ToString(), // MerchantNo = dr["MchtNo"].ToString(), // }); // } // Models.Main1.WebCMSEntities db1 = new Models.Main1.WebCMSEntities(); // WebCMSEntities db = new WebCMSEntities(); // MerchantAddInfo merchantadd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == 1147); // MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == 1147); // string pwd = "417027"; // merchant.LoginPwd = function.MD532(pwd); // Models.Main1.MerchantLoginInfo info = db1.MerchantLoginInfo.FirstOrDefault(m => m.LoginMobile == merchantadd.MobilePhone); // if (info == null) // { // info = db1.MerchantLoginInfo.Add(new Models.Main1.MerchantLoginInfo() // { // LoginMobile = merchantadd.MobilePhone, // }).Entity; // db1.SaveChanges(); // } // info.LoginPwd = function.MD532(pwd); // db1.SaveChanges(); // Models.Main1.MerchantAccountLinkInfo infolink = db1.MerchantAccountLinkInfo.FirstOrDefault(m => m.LoginId == info.Id && m.MerchantId == merchantadd.Id && m.Kind == 2); // if (infolink == null) // { // infolink = db1.MerchantAccountLinkInfo.Add(new Models.Main1.MerchantAccountLinkInfo() // { // LoginId = info.Id, // MerchantId = merchantadd.Id, // Kind = 2, // }).Entity; // db1.SaveChanges(); // } // db1.Dispose(); // db.Dispose(); return "ok"; } public string clearQueue(int OrderId, int MerchantId, int PayMode) { // List list = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId + "", 1, 100000); // foreach(ConsumerOrders sub in list) // { // if(sub.Id == OrderId) // { // RedisDbconn.Instance.DelFromList("ConsumerOrdersHd:Divi:2:1272", sub); // } // } return "ok"; } //补返现 public string back(string no) { WebCMSEntities db = new WebCMSEntities(); ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.OrderNo == no); if(order != null) { List list = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId + "", 1, 100000); ConsumerOrders check = list.FirstOrDefault(m => m.Id == order.Id); bool op = db.ConsumerProfit.Any(m => m.OrderId == order.Id); if(check == null) { if(!op) { RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":List", order.Id.ToString()); } else { RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + order.PayMode + ":" + order.MerchantId, order); } } db.Dispose(); } return "ok"; } public string goonback(int mid, int pm, string date) { DateTime start = DateTime.Parse(date + " 00:00:00"); DateTime end = start.AddDays(1); WebCMSEntities db = new WebCMSEntities(); List queue = RedisDbconn.Instance.GetList("ConsumerOrdersHd:Divi:" + pm + ":" + mid + "", 1, 100000); List list = db.ConsumerOrders.Where(m => m.MerchantId == mid && m.PayMode == pm && m.Status > 0 && m.IsAct == 1 && m.CreateDate >= start && m.CreateDate < end).ToList(); foreach(ConsumerOrders sub in list) { if(!queue.Any(m => m.Id == sub.Id) && sub.CurDivi < sub.MaxDivi) { RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + pm + ":" + mid, sub); } } db.Dispose(); return "ok"; } } }