|
@@ -31,7 +31,7 @@ namespace MySystem
|
|
|
PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
|
|
|
DateTime start = DateTime.Now.AddDays(-10);
|
|
|
int StartId = int.Parse(function.CheckInt(function.ReadInstance("/SycnSp/TradeRecordId.txt")));
|
|
|
- IQueryable<TradeRecord> trades = spdb.TradeRecord.Where(m => m.Id >= StartId && m.CreateDate >= start && m.Status == 1).OrderBy(m => m.CreateDate).Take(20);
|
|
|
+ IQueryable<TradeRecord> trades = spdb.TradeRecord.Where(m => m.Id >= StartId && m.ProductType != "14" && m.CreateDate >= start && m.Status == 1).OrderBy(m => m.CreateDate).Take(20);
|
|
|
foreach (TradeRecord trade in trades.ToList())
|
|
|
{
|
|
|
bool op = true;
|
|
@@ -582,6 +582,159 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void StartSim()
|
|
|
+ {
|
|
|
+ Thread th = new Thread(StartSimDo);
|
|
|
+ th.IsBackground = true;
|
|
|
+ th.Start();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void StartSimDo()
|
|
|
+ {
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ WebCMSEntities spdb = new WebCMSEntities();
|
|
|
+ PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
|
|
|
+ DateTime start = DateTime.Now.AddDays(-40);
|
|
|
+ int StartId = int.Parse(function.CheckInt(function.ReadInstance("/SycnSp/TradeRecordId.txt")));
|
|
|
+ IQueryable<TradeRecord> trades = spdb.TradeRecord.Where(m => m.Id >= StartId && m.ProductType == "14" && m.CreateDate >= start && m.Status == 1).OrderBy(m => m.CreateDate).Take(20);
|
|
|
+ foreach (TradeRecord trade in trades.ToList())
|
|
|
+ {
|
|
|
+ bool op = true;
|
|
|
+ if (op)
|
|
|
+ {
|
|
|
+ PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
|
|
|
+ PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
|
|
|
+ if (pos != null)
|
|
|
+ {
|
|
|
+ PxcModels.KqProducts brand = db.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId) ?? new PxcModels.KqProducts();
|
|
|
+ if (pos.BindMerchantId > 0)
|
|
|
+ {
|
|
|
+ PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
|
|
|
+ int TopUserId = 0;
|
|
|
+ if (!string.IsNullOrEmpty(user.ParentNav))
|
|
|
+ {
|
|
|
+ TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
|
|
|
+ }
|
|
|
+ bool check = db.SpOrderNos.Any(m => m.OrderNo == trade.TradeSerialNo);
|
|
|
+ if (!check)
|
|
|
+ {
|
|
|
+ decimal TradeAmount = trade.TradeAmount;
|
|
|
+ int BankCardType = -1;
|
|
|
+ int QrPayFlag = 0;
|
|
|
+ int VipFlag = 0;
|
|
|
+ int PayType = 0;
|
|
|
+ BankCardType = int.Parse(trade.BankCardType);
|
|
|
+ int BrandId = pos.BrandId;
|
|
|
+ decimal SourceTradeAmount = TradeAmount;
|
|
|
+ if (TradeAmount > 0)
|
|
|
+ {
|
|
|
+ ulong MerHelpFlag = 0;
|
|
|
+ string DayString = RedisDbconn.Instance.Get<string>("pobjrule:" + pos.BrandId + ":HelpPolicy:Days");
|
|
|
+ int Days = int.Parse(DayString); //天数
|
|
|
+ if (pos.BindingTime != null)
|
|
|
+ {
|
|
|
+ if (pos.BindingTime.Value.AddDays(Days) > DateTime.Now)
|
|
|
+ {
|
|
|
+ MerHelpFlag = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ int ActStatus = pos.ActivationState;
|
|
|
+ decimal SettleFee = trade.SettleFee * 100;
|
|
|
+ PxcModels.TradeRecord add = db.TradeRecord.Add(new PxcModels.TradeRecord()
|
|
|
+ {
|
|
|
+ ParentNav = user.ParentNav,
|
|
|
+ CreateDate = trade.CreateDate,
|
|
|
+ UpdateDate = trade.UpdateDate,
|
|
|
+ RecordNo = trade.TradeSerialNo, //单号
|
|
|
+ UserId = pos.UserId, //创客
|
|
|
+ MerchantId = pos.BindMerchantId, //商户
|
|
|
+ MerNo = trade.MerNo, //渠道商户编号
|
|
|
+ MerHelpFlag = MerHelpFlag >= 2 ? 1 : MerHelpFlag, //1扶持周,0稳定期,2盈利期
|
|
|
+ HelpMonthCount = 0, //扶持第几个月
|
|
|
+ MerBuddyType = user.MerchantType, //商户创客类型
|
|
|
+ SnNo = trade.TradeSnNo, //渠道SN号
|
|
|
+ TradeSerialNo = trade.ChannelSerial, //交易流水号
|
|
|
+ TradeAmount = TradeAmount, //交易金额
|
|
|
+ BankCardType = BankCardType, //银行卡类型
|
|
|
+ QrPayFlag = QrPayFlag, //云闪付标识
|
|
|
+ VipFlag = VipFlag, //会员标记
|
|
|
+ PayType = PayType, //支付方式
|
|
|
+ BrandId = BrandId, //品牌
|
|
|
+ Remark = trade.Remark, //备注
|
|
|
+ TopUserId = TopUserId, //顶级创客
|
|
|
+ MerUserId = pos.UserId, //商户直属创客
|
|
|
+ ActStatus = ActStatus,
|
|
|
+ CreateMan = trade.AgentNo,
|
|
|
+ UpdateMan = trade.BankCardType,
|
|
|
+ SeoKeyword = trade.SerEntryMode,
|
|
|
+ SeoDescription = trade.TradeType,
|
|
|
+ Sort = (int)SettleFee,
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+ string TradeMonth = trade.CreateDate == null ? DateTime.Now.ToString("yyyyMM") : trade.CreateDate.Value.ToString("yyyyMM");
|
|
|
+ PublicFunction.SplitTradeRecord(add, TradeMonth);
|
|
|
+
|
|
|
+ //统计商户交易额
|
|
|
+ string TradeDate = trade.CreateDate == null ? DateTime.Now.ToString("yyyyMMdd") : trade.CreateDate.Value.ToString("yyyyMMdd");
|
|
|
+ RedisDbconn.Instance.AddList("StatMerTradeAmountQueue", "{\"TradeDate\":\"" + TradeDate + "\",\"TradeAmount\":\"" + TradeAmount + "\",\"MerchantId\":\"" + pos.BindMerchantId + "\",\"BrandId\":\"" + BrandId + "\"}");
|
|
|
+ }
|
|
|
+ db.SpOrderNos.Add(new PxcModels.SpOrderNos()
|
|
|
+ {
|
|
|
+ OrderNo = trade.TradeSerialNo
|
|
|
+ });
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
|
|
|
+ if (edit != null)
|
|
|
+ {
|
|
|
+ edit.Status = 2;
|
|
|
+ }
|
|
|
+ spdb.SaveChanges();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
|
|
|
+ if (edit != null)
|
|
|
+ {
|
|
|
+ edit.Status = 0;
|
|
|
+ }
|
|
|
+ spdb.SaveChanges();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
|
|
|
+ if (edit != null)
|
|
|
+ {
|
|
|
+ edit.Status = 0;
|
|
|
+ }
|
|
|
+ spdb.SaveChanges();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spdb.Dispose();
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
|
|
|
+ }
|
|
|
+ Thread.Sleep(500);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
public void StartTradeStatus()
|
|
|
{
|
|
|
Thread th = new Thread(StartTradeStatusDo);
|