123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486 |
- 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(ResetTradeRecordUserId);
- 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);
- posids.Add(14757);
- posids.Add(14752);
- posids.Add(8959);
- posids.Add(9071);
- posids.Add(7555);
- posids.Add(13864);
- posids.Add(12385);
- posids.Add(12165);
- posids.Add(11184);
- posids.Add(8380);
- posids.Add(8364);
- posids.Add(15101);
- posids.Add(12024);
- posids.Add(8806);
- posids.Add(7557);
- posids.Add(10155);
- posids.Add(7602);
- posids.Add(12667);
- posids.Add(8948);
- posids.Add(15075);
- posids.Add(12542);
- posids.Add(12031);
- posids.Add(8455);
- posids.Add(22920);
- posids.Add(7381);
- posids.Add(10616);
- posids.Add(22921);
- posids.Add(26354);
- posids.Add(22169);
- posids.Add(25804);
- posids.Add(23287);
- posids.Add(7966);
- posids.Add(25853);
- posids.Add(26536);
- posids.Add(16886);
- posids.Add(14096);
- posids.Add(16649);
- posids.Add(7481);
- posids.Add(9165);
- posids.Add(25654);
- posids.Add(19725);
- posids.Add(26375);
- posids.Add(9349);
- posids.Add(11962);
- posids.Add(7037);
- posids.Add(10338);
- posids.Add(7042);
- posids.Add(13747);
- posids.Add(9389);
- posids.Add(53888);
- posids.Add(23694);
- posids.Add(21112);
- posids.Add(7508);
- posids.Add(25358);
- posids.Add(12740);
- posids.Add(12263);
- posids.Add(7021);
- posids.Add(15625);
- posids.Add(7636);
- posids.Add(16954);
- posids.Add(37681);
- posids.Add(21239);
- posids.Add(17964);
- posids.Add(6443);
- posids.Add(13078);
- posids.Add(10611);
- posids.Add(37161);
- posids.Add(6416);
- posids.Add(45486);
- posids.Add(44299);
- posids.Add(39722);
- posids.Add(9763);
- posids.Add(42464);
- posids.Add(42482);
- posids.Add(24100);
- posids.Add(21303);
- posids.Add(18860);
- posids.Add(41920);
- posids.Add(37145);
- posids.Add(13980);
- posids.Add(17192);
- posids.Add(45163);
- posids.Add(17433);
- posids.Add(46836);
- posids.Add(11995);
- posids.Add(17439);
- posids.Add(19421);
- posids.Add(15299);
- posids.Add(39943);
- posids.Add(12533);
- posids.Add(37642);
- posids.Add(12164);
- posids.Add(6614);
- posids.Add(17963);
- posids.Add(16924);
- posids.Add(37892);
- posids.Add(26476);
- posids.Add(7026);
- posids.Add(6612);
- posids.Add(26849);
- posids.Add(48996);
- posids.Add(51592);
- posids.Add(50563);
- posids.Add(17375);
- posids.Add(37386);
- posids.Add(69062);
- posids.Add(38055);
- posids.Add(55287);
- posids.Add(44777);
- posids.Add(52971);
- posids.Add(70045);
- posids.Add(71043);
- posids.Add(39676);
- posids.Add(10668);
- posids.Add(42474);
- posids.Add(71491);
- posids.Add(12216);
- posids.Add(12768);
- posids.Add(39848);
- posids.Add(46869);
- posids.Add(42462);
- posids.Add(46264);
- posids.Add(42385);
- posids.Add(49042);
- posids.Add(39751);
- posids.Add(49297);
- posids.Add(57634);
- posids.Add(53132);
- posids.Add(39768);
- posids.Add(71497);
- posids.Add(13565);
- posids.Add(17164);
- posids.Add(37100);
- posids.Add(16645);
- posids.Add(12382);
- posids.Add(18760);
- posids.Add(53033);
- posids.Add(41664);
- posids.Add(58426);
- posids.Add(46828);
- posids.Add(58876);
- posids.Add(25953);
- posids.Add(71009);
- posids.Add(59036);
- posids.Add(17139);
- posids.Add(12111);
- posids.Add(37960);
- posids.Add(12830);
- posids.Add(23699);
- posids.Add(19279);
- posids.Add(49853);
- posids.Add(6199);
- posids.Add(67544);
- posids.Add(15267);
- posids.Add(37473);
- posids.Add(64494);
- posids.Add(17155);
- posids.Add(70452);
- posids.Add(40840);
- posids.Add(15117);
- posids.Add(79301);
- posids.Add(55673);
- posids.Add(18981);
- posids.Add(59025);
- posids.Add(53409);
- posids.Add(20441);
- posids.Add(49529);
- posids.Add(20234);
- posids.Add(43502);
- posids.Add(64547);
- posids.Add(70388);
- posids.Add(42550);
- posids.Add(46721);
- posids.Add(49982);
- posids.Add(16734);
- posids.Add(16682);
- posids.Add(14748);
- posids.Add(21290);
- posids.Add(38879);
- posids.Add(23899);
- posids.Add(64401);
- posids.Add(51837);
- posids.Add(54803);
- posids.Add(58395);
- posids.Add(13468);
- posids.Add(70590);
- posids.Add(58814);
- posids.Add(9645);
- posids.Add(55687);
- posids.Add(6934);
- posids.Add(40073);
- posids.Add(44265);
- posids.Add(51561);
- posids.Add(18445);
- posids.Add(49884);
- posids.Add(71583);
- posids.Add(51613);
- posids.Add(40371);
- posids.Add(49988);
- posids.Add(68378);
- posids.Add(18904);
- posids.Add(50958);
- posids.Add(49675);
- posids.Add(48582);
- posids.Add(64082);
- posids.Add(25078);
- posids.Add(67061);
- posids.Add(65140);
- posids.Add(70658);
- posids.Add(49662);
- posids.Add(49561);
- posids.Add(24305);
- posids.Add(37468);
- posids.Add(21622);
- posids.Add(71575);
- posids.Add(66173);
- posids.Add(38747);
- posids.Add(50415);
- posids.Add(56611);
- posids.Add(56484);
- posids.Add(67504);
- posids.Add(50408);
- posids.Add(70744);
- posids.Add(47424);
- posids.Add(49666);
- posids.Add(7396);
- posids.Add(7870);
- posids.Add(17681);
- posids.Add(52031);
- posids.Add(25632);
- posids.Add(23011);
- posids.Add(39087);
- posids.Add(16924);
- posids.Add(42265);
- posids.Add(16550);
- posids.Add(40137);
- posids.Add(53416);
- posids.Add(21258);
- posids.Add(60884);
- posids.Add(49855);
- posids.Add(69014);
- posids.Add(43116);
- posids.Add(53031);
- posids.Add(22150);
- // 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);
- }
- }
- }
- }
- }
|