123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625 |
- 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 TestService
- {
- public readonly static TestService Instance = new TestService();
- private TestService()
- { }
- public void Start()
- {
- Thread th = new Thread(ReduceMoreSubsidy);
- th.IsBackground = true;
- th.Start();
- }
- public void dosomething()
- {
- string check = function.ReadInstance("/tmp/flag.txt");
- if (!string.IsNullOrEmpty(check))
- {
- return;
- }
- function.WritePage("/tmp/", "flag.txt", DateTime.Now.ToString());
- string TradeMonth = "202205";
- string TradeDate = "20220511";
- List<int> uids = new List<int>();
- uids = uids.OrderByDescending(m => m).ToList();
- foreach (int uid in uids)
- {
- RedisDbconn.Instance.Clear("TotalAmount:" + uid);
- RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":" + TradeMonth);
- RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + uid + ":" + TradeMonth);
- RedisDbconn.Instance.Clear("TotalPosAmount:" + uid + ":" + TradeMonth);
- RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":*:" + TradeMonth);
- RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":" + TradeDate);
- RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + uid + ":" + TradeDate);
- RedisDbconn.Instance.Clear("TotalPosAmount:" + uid + ":" + TradeDate);
- RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":*:" + TradeDate);
- RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid);
- RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":" + TradeMonth);
- RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + uid + ":" + TradeMonth);
- RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + uid + ":" + TradeMonth);
- RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":*:" + TradeMonth);
- RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":" + TradeDate);
- RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + uid + ":" + TradeDate);
- RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + uid + ":" + TradeDate);
- RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":*:" + TradeDate);
- function.WriteLog(uid.ToString(), "清除redis");
- Thread.Sleep(200);
- }
- }
- public void ResetTradeRecordUserId()
- {
- WebCMSEntities db = new WebCMSEntities();
- List<int> posids = new List<int>();
- posids.Add(13312);
- // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- foreach (int posid in posids)
- {
- PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posid);
- if (pos != null)
- {
- // OtherMySqlConn.op("update TradeRecord set UserId=" + pos.UserId + " where SnNo='" + pos.PosSn + "'");
- // function.WriteLog(DateTime.Now.ToString() + ":" + pos.UserId + "-" + pos.PosSn, "重置非商户型创客交易记录Id");
- RedisDbconn.Instance.AddList("TmpResetUserTradeQueue", pos.UserId + "#cut#2022-04-01 00:00:00#cut#2022-05-11 00:00:00#cut#" + pos.BrandId);
- }
- }
- // // OtherMySqlConn.connstr = ;
- db.Dispose();
- }
- public void StartReset()
- {
- Thread th = new Thread(doSomething);
- th.IsBackground = true;
- th.Start();
- }
- public void doSomething()
- {
- while (true)
- {
- string content = RedisDbconn.Instance.RPop<string>("TmpResetUserTradeQueue");
- if (!string.IsNullOrEmpty(content))
- {
- try
- {
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- WebCMSEntities db = new WebCMSEntities();
- string[] datalist = content.Split(new string[] { "#cut#" }, StringSplitOptions.None);
- int UserId = int.Parse(datalist[0]);
- DateTime sdate = DateTime.Parse(datalist[1]);
- DateTime edate = DateTime.Parse(datalist[2]);
- int BrandId = int.Parse(datalist[3]);
- function.WriteLog(DateTime.Now.ToString(), "重置创客交易额");
- List<string> uids = new List<string>();
- DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id=" + UserId);
- if (userDt.Rows.Count > 0)
- {
- while (sdate <= edate)
- {
- string date = sdate.ToString("yyyy-MM-dd");
- string TradeDate = date.Replace("-", "");
- string TradeMonth = TradeDate.Substring(0, 6);
- string start = date + " 00:00:00";
- string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
- string startId = "0", endId = "9999999999";
- DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
- if (startDt.Rows.Count > 0)
- {
- startId = startDt.Rows[0][0].ToString();
- }
- DataRow userDr = userDt.Rows[0];
- string ParentNav = userDr["ParentNav"].ToString();
- function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
- OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + UserId + " and BrandId=" + BrandId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and SeoTitle='self'");
- DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " and BrandId=" + BrandId + " group by BrandId,BankCardType,QrPayFlag");
- function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
- foreach (DataRow selfDr in selfdt.Rows)
- {
- int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
- int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
- decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
- UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
- if (selfStat == null)
- {
- selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
- {
- UserId = UserId,
- TradeMonth = TradeMonth,
- TradeDate = TradeDate,
- BrandId = BrandId,
- QueryCount = QrPayFlag,
- SeoTitle = "self",
- }).Entity;
- db.SaveChanges();
- }
- if (BankCardType == 0)
- {
- selfStat.DirectDebitTradeAmt += TradeAmount;
- }
- else if (BankCardType != 0)
- {
- selfStat.DirectTradeAmt += TradeAmount;
- }
- db.SaveChanges();
- }
- // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
- // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
- // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
- // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
- // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
- // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
- // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
- // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
- // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
- if (!string.IsNullOrEmpty(ParentNav))
- {
- ParentNav += "," + UserId + ",";
- string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
- foreach (string NavUserIdString in ParentNavList)
- {
- if (!uids.Contains(NavUserIdString + start))
- {
- uids.Add(NavUserIdString + start);
- int NavUserId = int.Parse(NavUserIdString);
- function.WriteLog(NavUserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
- OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + NavUserId + " and BrandId=" + BrandId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and SeoTitle='team'");
- DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") and BrandId=" + BrandId + " group by BrandId,BankCardType,QrPayFlag");
- function.WriteLog(NavUserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
- foreach (DataRow teamDr in teamDt.Rows)
- {
- int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
- int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
- decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
- UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
- if (teamStat == null)
- {
- teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
- {
- UserId = NavUserId,
- TradeMonth = TradeMonth,
- TradeDate = TradeDate,
- BrandId = BrandId,
- QueryCount = QrPayFlag,
- SeoTitle = "team",
- }).Entity;
- db.SaveChanges();
- }
- if (BankCardType == 0)
- {
- teamStat.NonDirectDebitTradeAmt += TradeAmount;
- }
- else if (BankCardType != 0)
- {
- teamStat.NonDirectTradeAmt += TradeAmount;
- }
- db.SaveChanges();
- }
- // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
- // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
- // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
- // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
- // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
- // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
- // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
- // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
- // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
- }
- }
- }
- sdate = sdate.AddDays(1);
- Thread.Sleep(200);
- }
- }
- db.Dispose();
- function.WriteLog(DateTime.Now.ToString() + "\r\n\r\n", "重置创客交易额");
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "重置创客交易额异常");
- }
- }
- else
- {
- Thread.Sleep(5000);
- }
- }
- }
- public void statTrade()
- {
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- WebCMSEntities db = new WebCMSEntities();
- DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,MerchantId,QrPayFlag,PayType,VipFlag,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(TradeAmount) from TradeRecord where Id>=574439 and UserId>0 and MerchantId in (5962,32731,14396,14,855,2586,2911,1839,6368,2598,79,47,21884,3243,3259,11637,5082,9767,5381,7091,4652,16159,24752,6183,18417,5285,17980,20862,3678,6567,11,21529,2647,10799,9024,24367,17045,14977,17249,847,3901,35077,21982,4496,5121,1383,153,12051,13036,20036,24984,21155,4720,15512,26592,4073,15241,7981,7079,9853,23689,24284,23731,4103,5959,85,31,24936,23781,9566,5658,10898,4929,26997,248,15916,9444,4760,7022,8697,9754,3482,255,793,14351,14149,3049,13390,3796,9209,27862,656,2413,9017,1649,282,8,14112,16313,15545,5639,2809,3733,16717,11541,9774,18000,20341,20273,10047,16151,28510,20193,4650,2498,2597,23242,11325,34592,12362,29281,15165,208,2196,3709,2715,6494,16034,3368,17283,4513,3309,2979,2854,6497,251,17906,7598,2327,6856,2347,2675,4,10991,138,784,350,7961,3385,29349,23533,31893,5036,15382,6934,3778,5922,24357,6222,6755,8887) and CreateDate>='2022-06-01 00:00:00' and MerHelpFlag=1 and BankCardType!=0 and CreateDate<'2022-07-01 00:00:00' group by UserId,BrandId,MerchantId,QrPayFlag,PayType,VipFlag,DATE_FORMAT(CreateDate,'%Y%m%d') order by DATE_FORMAT(CreateDate,'%Y%m%d')");
- List<string> IdBrands = new List<string>();
- if(dt.Rows.Count > 0)
- {
- foreach(DataRow dr in dt.Rows)
- {
- int UserId = int.Parse(dr["UserId"].ToString());
- int MerchantId = int.Parse(dr["MerchantId"].ToString());
- int BrandId = int.Parse(dr["BrandId"].ToString());
- int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString());
- int PayType = int.Parse(dr["PayType"].ToString());
- int VipFlag = int.Parse(dr["VipFlag"].ToString());
- string TradeDate = dr[6].ToString();
- decimal HelpDirectTradeAmt = decimal.Parse(dr[7].ToString());
- function.WriteLog("update TradeDaySummary set HelpDirectTradeAmt=HelpDirectTradeAmt-" + HelpDirectTradeAmt + ",NotHelpDirectTradeAmt=NotHelpDirectTradeAmt+" + HelpDirectTradeAmt + " where UserId=" + UserId + " and BrandId=" + BrandId + " and TradeDate='" + TradeDate + "' and QueryCount=" + QrPayFlag + " and PayType=" + PayType + " and VipFlag=" + VipFlag + " and SeoTitle='self';\n", "多余机器分润");
- Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
- string ParentNav = user.ParentNav;
- ParentNav += "," + UserId + ",";
- if (!string.IsNullOrEmpty(ParentNav))
- {
- string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
- foreach (string NavUserIdString in ParentNavList)
- {
- function.WriteLog("update TradeDaySummary set HelpNonDirectTradeAmt=HelpNonDirectTradeAmt-" + HelpDirectTradeAmt + ",NotHelpNonDirectTradeAmt=NotHelpNonDirectTradeAmt+" + HelpDirectTradeAmt + " where UserId=" + NavUserIdString + " and BrandId=" + BrandId + " and TradeDate='" + TradeDate + "' and QueryCount=" + QrPayFlag + " and PayType=" + PayType + " and VipFlag=" + VipFlag + " and SeoTitle='team';\n", "多余机器分润");
- }
- }
- List<ProfitResult> results = StartProftForPosByDate(BrandId, UserId, HelpDirectTradeAmt);
- foreach(ProfitResult result in results)
- {
- int DirectFlag = result.DirectFlag;
- function.WriteLog("update ProfitRecord set ProfitAmount=ProfitAmount-" + result.Money + " where UserId=" + result.UserId + " and SeoTitle='202206' and DirectFlag=" + DirectFlag + " and BrandId=" + BrandId + ";\n", "多余机器分润");
- function.WriteLog("update UserMachineData set TradeProfit=TradeProfit-" + result.Money + " where IdBrand='" + UserId + "_" + BrandId + "';\n", "多余机器分润");
- }
- if(!IdBrands.Contains(UserId+"-"+MerchantId))
- {
- IdBrands.Add(UserId + "-" + MerchantId);
- DataTable sub = OtherMySqlConn.dtable("select SubsidyProfit from ProfitSubsidyDetail where TradeMonth='202206' and SubsidyUserId=" + UserId + " and MerchantId=" + MerchantId + "");
- if(sub.Rows.Count > 0)
- {
- string SubsidyProfit = sub.Rows[0][0].ToString();
- function.WriteLog("delete from ProfitSubsidyDetail where TradeMonth='202206' and SubsidyUserId=" + UserId + " and MerchantId=" + MerchantId + ";\n", "多余机器分润");
- function.WriteLog("update UserMachineData set OtherProfit=OtherProfit-" + SubsidyProfit + " where IdBrand='" + UserId + "_" + BrandId + "';\n", "多余机器分润");
- }
- }
- }
- }
- db.Dispose();
- }
- public List<ProfitResult> StartProftForPosByDate(int BrandId, int UserId, decimal HelpDirectTradeAmt)
- {
- List<ProfitResult> result = new List<ProfitResult>();
- // ProfitObjects obj = RedisDbconn.Instance.Get<ProfitObjects>("pobj" + BrandId);
- // if (obj.Status == 1) //判断分润是否开启
- // {
- // WebCMSEntities dbnew = new WebCMSEntities();
- // try
- // {
- // List<UserLevelSet> levels = dbnew.UserLevelSet.ToList();
- // Users selfUser = dbnew.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
- // int Days = int.Parse(RedisDbconn.Instance.Get<string>("pobjrule:" + BrandId + ":HelpPolicy:Days")); //天数
- // int maxLevel = obj.MaxLevel; //最大等级
- // decimal diffLevelProfit = 0; //等级级差
- // int curLevel = 0; //当前层级的会员等级
- // string ParentNav = selfUser.ParentNav;
- // if (string.IsNullOrEmpty(ParentNav))
- // {
- // ParentNav = ",0,";
- // }
- // if (!string.IsNullOrEmpty(ParentNav))
- // {
- // ParentNav += "," + UserId + ",";
- // string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
- // Array.Reverse(ParentNavList); //反转顺序
- // int level = 0;
- // DateTime now = DateTime.Now;
- // if (HelpDirectTradeAmt > 0)
- // {
- // foreach (string UserIdString in ParentNavList)
- // {
- // level += 1;
- // int uid = int.Parse(UserIdString);
- // Users user = dbnew.Users.FirstOrDefault(m => m.Id == uid) ?? new Users();
- // int UserLevel = user.UserLevel; //当前会员等级
- // UserRankWhite rank = dbnew.UserRankWhite.FirstOrDefault(m => m.Id == user.Id && m.UpdateDate > now);
- // if (rank != null)
- // {
- // if (rank.Rank > UserLevel)
- // {
- // UserLevel = rank.Rank;
- // }
- // }
- // if (curLevel == maxLevel) //判断当前创客是否有直推的激活机具,并且在活动时间内
- // {
- // break;
- // }
- // if (UserLevel <= maxLevel && UserLevel > curLevel)
- // {
- // int LevelKindId = ProfitHelperV2.Instance.GetLevelKindId(BrandId, 1, 1);
- // ProfitObjectLevels objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel); //获取当前等级参数
- // int LevelKindId2 = ProfitHelperV2.Instance.GetLevelKindId(BrandId, 0, 1);
- // ProfitObjectLevels objlevel2 = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId2 + ":" + UserLevel); //获取当前等级参数
- // if (objlevel != null && objlevel2 != null)
- // {
- // decimal getLevelProfit = 0; //等级分润
- // if (objlevel.Percents > 0 && objlevel2.Percents > 0)
- // {
- // //获取创客分润规则,注册日开始算起,3个自然月内算扶持期
- // getLevelProfit += HelpDirectTradeAmt * (objlevel.Percents - objlevel2.Percents);
- // }
- // decimal money = getLevelProfit;
- // getLevelProfit -= diffLevelProfit;
- // diffLevelProfit = money;
- // if (getLevelProfit >= obj.MinProfitVal)
- // {
- // result.Add(new ProfitResult()
- // {
- // UserId = user.Id,
- // UserNav = user.ParentNav,
- // Money = PublicFunction.NumberFormat(getLevelProfit),
- // ProfitRate = objlevel.Percents,
- // Message = "交易分润",
- // BankCardType = 1,
- // DirectFlag = selfUser.Id == user.Id ? 1 : 0,
- // BrandId = BrandId,
- // IsSubsidy = 0,
- // TradeAmount = HelpDirectTradeAmt,
- // HelpFlag = 1,
- // });
- // }
- // }
- // }
- // curLevel = UserLevel;
- // }
- // }
- // }
- // }
- // catch (Exception ex)
- // {
- // function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "每月统计分润异常");
- // }
- // dbnew.Dispose();
- // }
- return result;
- }
-
-
- public void helpprofit()
- {
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- DataTable dt = OtherMySqlConn.dtable("select Id,KqMerNo from PosMerchantInfo where Id in (select MerchantId from HelpProfitMerchantForUser) and BrandId!=1");
- foreach(DataRow dr in dt.Rows)
- {
- int MerchantId = int.Parse(dr["Id"].ToString());
- string KqMerNo = dr["KqMerNo"].ToString();
- int Id = RedisDbconn.Instance.RPop<int>("HelpProfitMerchantIds");
- if(Id > 0)
- {
- OtherMySqlConn.op("update HelpProfitMerIds set MerchantId=" + Id + " where MerchantId=" + MerchantId + "");
- OtherMySqlConn.op("update PosMerchantInfo set SeoKeyword='' where Id=" + MerchantId);
- OtherMySqlConn.op("update PosMerchantInfo set SeoKeyword='已被申领为商机' where Id=" + Id);
- OtherMySqlConn.op("update PosCoupons set HelpProfitMerchantId=" + Id + " where HelpProfitMerchantId=" + MerchantId + "");
- OtherMySqlConn.op("update HelpProfitMerchantForUser set MerchantId=" + Id + ",Sort=1,MerNo='" + KqMerNo + "' where MerchantId=" + MerchantId + "");
- }
- }
- }
- #region 每月交易额统计
- public void tradeAmt()
- {
- while(true)
- {
- if(DateTime.Now.Hour > 4)
- {
- tradeAmtDo();
- }
- Thread.Sleep(60000);
- }
- }
- public void tradeAmtDo()
- {
- function.WriteLog("start:" + DateTime.Now.ToString(), "每月交易额统计");
- string month = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
- string html = "<table>";
- html += "<tr>";
- html += "<td>创客编号</td>";
- html += "<td>创客名称</td>";
- html += "<td>创客身份证号</td>";
- html += "<td>创客手机号</td>";
- html += "<td>顶级创客编号</td>";
- html += "<td>顶级创客名称</td>";
- html += "<td>交易额</td>";
- html += "<td>最大市场交易额</td>";
- html += "</tr>";
- WebCMSEntities db = new WebCMSEntities();
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- DataTable dt = OtherMySqlConn.dtable("select UserId,sum(HelpNonDirectTradeAmt+NotHelpNonDirectTradeAmt+HelpNonDirectCreditTradeAmt+NotHelpNonDirectCreditTradeAmt) from TradeDaySummary where Id>=2194025 and TradeMonth='" + month + "' and SeoTitle='team' group by UserId having sum(HelpNonDirectTradeAmt+NotHelpNonDirectTradeAmt+HelpNonDirectCreditTradeAmt+NotHelpNonDirectCreditTradeAmt)>=3000000 and sum(HelpNonDirectTradeAmt+NotHelpNonDirectTradeAmt+HelpNonDirectCreditTradeAmt+NotHelpNonDirectCreditTradeAmt)<10000000");
- function.WriteLog("总数:" + dt.Rows.Count, "每月交易额统计");
- foreach(DataRow dr in dt.Rows)
- {
- int UserId = int.Parse(function.CheckInt(dr["UserId"].ToString()));
- decimal TradeAmt = decimal.Parse(function.CheckNum(dr[1].ToString()));
- decimal MaxTradeAmt = 0;
- List<decimal> subTradeAmtList = new List<decimal>();
- DataTable subdt = OtherMySqlConn.dtable("select Id from Users where ParentUserId=" + UserId + " and AuthFlag=1");
- foreach(DataRow subdr in subdt.Rows)
- {
- int SubUserId = int.Parse(function.CheckInt(subdr["Id"].ToString()));
- decimal subTradeAmt = 0;
- DataTable subuserdt = OtherMySqlConn.dtable("select sum(HelpNonDirectTradeAmt+NotHelpNonDirectTradeAmt+HelpNonDirectCreditTradeAmt+NotHelpNonDirectCreditTradeAmt) from TradeDaySummary where Id>=2194025 and TradeMonth='" + month + "' and SeoTitle='team' and UserId=" + SubUserId);
- if(subuserdt.Rows.Count > 0)
- {
- subTradeAmt = decimal.Parse(function.CheckNum(subuserdt.Rows[0][0].ToString()));
- }
- subTradeAmtList.Add(subTradeAmt);
- }
- if(subTradeAmtList.Count > 0)
- {
- MaxTradeAmt = subTradeAmtList.Max(m => m);
- }
- Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
- int TopUserId = 0;
- string ParentNav = user.ParentNav;
- if (!string.IsNullOrEmpty(ParentNav))
- {
- string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
- if (ParentNavList.Length > 1)
- {
- TopUserId = int.Parse(ParentNavList[1]);
- }
- else if (ParentNavList.Length == 1)
- {
- TopUserId = int.Parse(ParentNavList[0]);
- }
- }
- Users tuser = db.Users.FirstOrDefault(m => m.Id == TopUserId) ?? new Users();
- html += "<tr>";
- html += "<td>" + user.MakerCode + "</td>";
- html += "<td>" + user.RealName + "</td>";
- html += "<td>" + user.CertId + "</td>";
- html += "<td>" + user.Mobile + "</td>";
- html += "<td>" + tuser.MakerCode + "</td>";
- html += "<td>" + tuser.RealName + "</td>";
- html += "<td>" + TradeAmt + "</td>";
- html += "<td>" + MaxTradeAmt + "</td>";
- html += "</tr>";
- function.WriteLog(DateTime.Now.ToString(), "每月交易额统计");
- function.WriteLog(UserId.ToString(), "每月交易额统计");
- }
- html += "</table>";
- db.SaveChanges();
- function.WritePage("/htmlfile/", month + ".html", html);
- function.WriteLog("end:" + DateTime.Now.ToString(), "每月交易额统计");
- }
- #endregion
- #region 查找8月多余补贴
- // public void Subsidy()
- // {
- // while(true)
- // {
- // if(DateTime.Now.Hour > 4)
- // {
- // SubsidyDo();
- // }
- // Thread.Sleep(60000);
- // }
- // }
- public void SubsidyDo()
- {
- WebCMSEntities db = new WebCMSEntities();
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- DataTable dt = OtherMySqlConn.dtable("select UserId,ProductType,ChangeAmount from UserAccountRecord where ChangeType=111 and CreateDate>='2022-09-01 00:00:00' and CreateDate<'2022-10-01 00:00:00' order by Id");
- function.WriteLog("总数:" + dt.Rows.Count, "查找8月多余补贴");
- foreach(DataRow dr in dt.Rows)
- {
- int UserId = int.Parse(function.CheckInt(dr["UserId"].ToString()));
- int ProductType = int.Parse(function.CheckInt(dr["ProductType"].ToString()));
- decimal ChangeAmount = decimal.Parse(function.CheckNum(dr["ChangeAmount"].ToString()));
- decimal CheckAmount = 0;
- DataTable checkdt = OtherMySqlConn.dtable("select sum(SubsidyProfit) from ProfitSubsidyExport2 where MakerCode=(select MakerCode from Users where Id=" + UserId + ") and BrandName=(select Name from KqProducts where Id=" + ProductType + ")");
- if(checkdt.Rows.Count > 0)
- {
- CheckAmount = decimal.Parse(function.CheckNum(checkdt.Rows[0][0].ToString()));
- if(ChangeAmount - CheckAmount > 1 && CheckAmount > 0)
- {
- decimal LastAmount = ChangeAmount - CheckAmount;
- function.WriteLog("差异分润:UserId:" + UserId + ";ProductType:" + ProductType + ";ChangeAmount:" + ChangeAmount + ";CheckAmount:" + CheckAmount + ";LastAmount:" + LastAmount + ";", "查找8月多余补贴");
- }
- else
- {
- function.WriteLog("多余分润:UserId:" + UserId + ";ProductType:" + ProductType + ";ChangeAmount:" + ChangeAmount + ";", "查找8月多余补贴");
- }
- }
- else
- {
- function.WriteLog("多余分润:UserId:" + UserId + ";ProductType:" + ProductType + ";ChangeAmount:" + ChangeAmount + ";", "查找8月多余补贴");
- }
- }
- db.Dispose();
- }
- #endregion
- #region 重置开机奖励流量分佣
- public void resetOpenPrize()
- {
- string doDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
- string flag = function.ReadInstance("/Stat/" + doDate + ".txt");
- if (string.IsNullOrEmpty(flag))
- {
- function.WritePage("/Stat/", doDate + ".txt", DateTime.Now.ToString("HH:mm:ss"));
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- // StatService.Instance.StartEverDay(doDate);
- // StatService.Instance.StatMerchantTrade(doDate);
- // StatService.Instance.dosomething4(doDate);
- // StatService.Instance.ListenFluxRecord(doDate);
- }
- }
- #endregion
-
- #region 扣8月多余补贴
- public void ReduceMoreSubsidy()
- {
- WebCMSEntities db = new WebCMSEntities();
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
- DataTable dt = OtherMySqlConn.dtable("select UserId,sum(MoreMoney) from SubsidyCheck where Status=0 group by UserId");
- foreach(DataRow dr in dt.Rows)
- {
- int UserId = int.Parse(function.CheckInt(dr["UserId"].ToString()));
- decimal MoreMoney = decimal.Parse(function.CheckNum(dr[1].ToString()));
- UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId);
- if (account != null)
- {
- if(account.BalanceAmount >= MoreMoney)
- {
- decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
- decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
- decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
- account.BalanceAmount -= MoreMoney;
- decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
- decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
- decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
- db.SaveChanges();
- UserAccountRecord accountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
- {
- CreateDate = DateTime.Now,
- UpdateDate = DateTime.Now,
- UserId = UserId, //创客
- ChangeType = 63, //变动类型
- ChangeAmount = MoreMoney, //变更金额
- BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
- AfterTotalAmount = AfterTotalAmount, //变更后总金额
- BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
- AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
- BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
- AfterBalanceAmount = AfterBalanceAmount, //变更后余额
- Remark = "9月多发补贴扣减",
- }).Entity;
- db.SaveChanges();
- OtherMySqlConn.op("update SubsidyCheck set Status=1 where UserId=" + UserId);
- }
- }
- }
- db.Dispose();
- }
- #endregion
- }
- }
|