|
@@ -0,0 +1,186 @@
|
|
|
+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 TradeChangeService
|
|
|
+ {
|
|
|
+ public readonly static TradeChangeService Instance = new TradeChangeService();
|
|
|
+ private TradeChangeService()
|
|
|
+ { }
|
|
|
+
|
|
|
+ public void Start()
|
|
|
+ {
|
|
|
+ Thread th = new Thread(dosomething);
|
|
|
+ th.IsBackground = true;
|
|
|
+ th.Start();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void dosomething()
|
|
|
+ {
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ string data = RedisDbconn.Instance.RPop<string>("TradeChangeQueue");
|
|
|
+ if (!string.IsNullOrEmpty(data))
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ JsonData jsonOj = JsonMapper.ToObject(data);
|
|
|
+ int Id = int.Parse(function.CheckInt(jsonOj["Id"].ToString()));
|
|
|
+ int OldType = int.Parse(function.CheckInt(jsonOj["OldType"].ToString()));
|
|
|
+ int NewType = int.Parse(function.CheckInt(jsonOj["NewType"].ToString()));
|
|
|
+ StatTradeAmount(Id, OldType, NewType);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\r\n" + ex.ToString(), "设置激活奖励异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Thread.Sleep(500);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void StatTradeAmount(int Id, int OldType, int NewType)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "交易额类型变更");
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ DataTable selfDt = CustomerSqlConn.dtable("select UserId,ParentNav,BrandId,BankCardType,QrPayFlag,MerHelpFlag,Version,CapFlag,VipFlag,PayType,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeAmount from TradeRecord where Id=" + Id + "", MysqlConn.SqlConnStr);
|
|
|
+ if (selfDt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "交易额类型变更");
|
|
|
+ foreach (DataRow selfDr in selfDt.Rows)
|
|
|
+ {
|
|
|
+ int UserId = int.Parse(selfDr["UserId"].ToString());
|
|
|
+ Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
|
|
|
+ string ParentNav = user.ParentNav; //selfDr["ParentNav"].ToString();
|
|
|
+ int BrandId = int.Parse(selfDr["BrandId"].ToString());
|
|
|
+ int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
|
|
|
+ int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
|
|
|
+ int MerHelpFlag = int.Parse(selfDr["MerHelpFlag"].ToString());
|
|
|
+ int Version = int.Parse(selfDr["Version"].ToString());
|
|
|
+ int CapFlag = int.Parse(selfDr["CapFlag"].ToString());
|
|
|
+ int VipFlag = int.Parse(selfDr["VipFlag"].ToString());
|
|
|
+ int PayType = int.Parse(selfDr["PayType"].ToString());
|
|
|
+ string TradeDate = selfDr[10].ToString();
|
|
|
+ decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
|
|
|
+ string TradeMonth = TradeDate.Substring(0, 6);
|
|
|
+
|
|
|
+ TradeDaySummary selfStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "self");
|
|
|
+ if (selfStat != null)
|
|
|
+ {
|
|
|
+ if (BankCardType == 0)
|
|
|
+ {
|
|
|
+ if(OldType == 2)
|
|
|
+ {
|
|
|
+ if(selfStat.NotHelpDirectDebitTradeAmt >= TradeAmount)
|
|
|
+ {
|
|
|
+ selfStat.NotHelpDirectDebitTradeAmt -= TradeAmount;
|
|
|
+ if(NewType == 1)
|
|
|
+ {
|
|
|
+ selfStat.HelpDirectDebitTradeAmt += TradeAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CapFlag == 1)
|
|
|
+ {
|
|
|
+ if(selfStat.NotHelpDirectDebitCapTradeAmt >= TradeAmount)
|
|
|
+ {
|
|
|
+ selfStat.NotHelpDirectDebitCapTradeAmt -= TradeAmount;
|
|
|
+ if(NewType == 1)
|
|
|
+ {
|
|
|
+ selfStat.HelpDirectDebitCapTradeAmt += TradeAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (BankCardType != 0)
|
|
|
+ {
|
|
|
+ if(OldType == 2)
|
|
|
+ {
|
|
|
+ if(selfStat.NotHelpDirectTradeAmt >= TradeAmount)
|
|
|
+ {
|
|
|
+ selfStat.NotHelpDirectTradeAmt -= TradeAmount;
|
|
|
+ if(NewType == 1)
|
|
|
+ {
|
|
|
+ selfStat.HelpDirectTradeAmt += TradeAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ParentNav += "," + UserId + ",";
|
|
|
+ if (!string.IsNullOrEmpty(ParentNav))
|
|
|
+ {
|
|
|
+ string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
|
|
|
+ foreach (string NavUserIdString in ParentNavList)
|
|
|
+ {
|
|
|
+ int NavUserId = int.Parse(NavUserIdString);
|
|
|
+ TradeDaySummary teamStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "team");
|
|
|
+ if (teamStat != null)
|
|
|
+ {
|
|
|
+ if (BankCardType == 0)
|
|
|
+ {
|
|
|
+ if(OldType == 2)
|
|
|
+ {
|
|
|
+ if(teamStat.NotHelpNonDirectDebitTradeAmt >= TradeAmount)
|
|
|
+ {
|
|
|
+ teamStat.NotHelpNonDirectDebitTradeAmt -= TradeAmount;
|
|
|
+ if(NewType == 1)
|
|
|
+ {
|
|
|
+ teamStat.HelpNonDirectDebitTradeAmt += TradeAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CapFlag == 1)
|
|
|
+ {
|
|
|
+ if(teamStat.NotHelpDirectDebitCapTradeAmt >= TradeAmount)
|
|
|
+ {
|
|
|
+ teamStat.NotHelpDirectDebitCapTradeAmt -= TradeAmount;
|
|
|
+ if(NewType == 1)
|
|
|
+ {
|
|
|
+ teamStat.HelpDirectDebitCapTradeAmt += TradeAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (BankCardType != 0)
|
|
|
+ {
|
|
|
+ if(OldType == 2)
|
|
|
+ {
|
|
|
+ if(teamStat.NotHelpNonDirectTradeAmt >= TradeAmount)
|
|
|
+ {
|
|
|
+ teamStat.NotHelpNonDirectTradeAmt -= TradeAmount;
|
|
|
+ if(NewType == 1)
|
|
|
+ {
|
|
|
+ teamStat.HelpNonDirectTradeAmt += TradeAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "交易额类型变更异常");
|
|
|
+ }
|
|
|
+ db.Dispose();
|
|
|
+ function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "交易额类型变更");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|