|
@@ -13,87 +13,113 @@ namespace MySystem
|
|
|
private SycnSpTradeService()
|
|
|
{ }
|
|
|
|
|
|
- public void Start()
|
|
|
+ public void Start(int Id = 0)
|
|
|
{
|
|
|
WebCMSEntities spdb = new WebCMSEntities();
|
|
|
PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
|
|
|
- DateTime start = DateTime.Now.AddDays(-2);
|
|
|
- List<TradeRecord> trades = spdb.TradeRecord.Where(m => m.CreateDate >= start && m.Status == 1).OrderByDescending(m => m.Id).ToList();
|
|
|
- foreach (TradeRecord trade in trades)
|
|
|
+ DateTime start = DateTime.Now.AddDays(-5);
|
|
|
+ IQueryable<TradeRecord> trades = spdb.TradeRecord;
|
|
|
+ if (Id > 0)
|
|
|
{
|
|
|
- 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)
|
|
|
+ trades = trades.Where(m => m.Id == Id && m.Status == 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
|
|
|
+ }
|
|
|
+ trades = trades.OrderByDescending(m => m.Id);
|
|
|
+ foreach (TradeRecord trade in trades.ToList())
|
|
|
+ {
|
|
|
+ bool op = true;
|
|
|
+ if (trade.SerEntryMode == "N")
|
|
|
{
|
|
|
- if (pos.BindMerchantId > 0)
|
|
|
+ if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
|
|
|
{
|
|
|
- PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
|
|
|
- int TopUserId = 0;
|
|
|
- if (!string.IsNullOrEmpty(user.ParentNav))
|
|
|
+ op = false;
|
|
|
+ TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
|
|
|
+ if (edit != null)
|
|
|
{
|
|
|
- TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
|
|
|
+ edit.Status = 2;
|
|
|
}
|
|
|
- bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
|
|
|
- if (!check)
|
|
|
+ spdb.SaveChanges();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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)
|
|
|
+ {
|
|
|
+ if (pos.BindMerchantId > 0)
|
|
|
{
|
|
|
- decimal TradeAmount = trade.TradeAmount / 100;
|
|
|
- int BankCardType = int.Parse(trade.BankCardType);
|
|
|
- db.TradeRecord.Add(new PxcModels.TradeRecord()
|
|
|
- {
|
|
|
- CreateDate = trade.CreateDate,
|
|
|
- UpdateDate = trade.UpdateDate,
|
|
|
- RecordNo = trade.TradeSerialNo, //单号
|
|
|
- UserId = pos.UserId, //创客
|
|
|
- MerchantId = pos.BindMerchantId, //商户
|
|
|
- MerNo = trade.MerNo, //渠道商户编号
|
|
|
- MerHelpFlag = 0, //是否属于扶持周期内商户
|
|
|
- HelpMonthCount = 0, //扶持第几个月
|
|
|
- MerBuddyType = user.MerchantType, //商户创客类型
|
|
|
- SnNo = trade.TradeSnNo, //渠道SN号
|
|
|
- // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
|
|
|
- TradeSerialNo = trade.ChannelSerial, //交易流水号
|
|
|
- TradeAmount = TradeAmount, //交易金额
|
|
|
- BankCardType = BankCardType, //银行卡类型
|
|
|
- QrPayFlag = trade.TradeType == "02" ? 1 : 0, //云闪付标识
|
|
|
- BrandId = int.Parse(trade.ProductType), //品牌
|
|
|
- Remark = trade.Remark, //备注
|
|
|
- TopUserId = TopUserId, //顶级创客
|
|
|
- MerUserId = pos.UserId, //商户直属创客
|
|
|
- });
|
|
|
- if (BankCardType == 1)
|
|
|
- {
|
|
|
- pos.CreditTrade += TradeAmount;
|
|
|
- }
|
|
|
- else if (BankCardType == 0)
|
|
|
- {
|
|
|
- pos.DebitCardTrade += TradeAmount;
|
|
|
- }
|
|
|
- if (pos.CreditTrade < 1000)
|
|
|
+ PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
|
|
|
+ int TopUserId = 0;
|
|
|
+ if (!string.IsNullOrEmpty(user.ParentNav))
|
|
|
{
|
|
|
- pos.IsPurchase = 99;
|
|
|
+ TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
|
|
|
}
|
|
|
- else if(pos.CreditTrade >= 1000 && pos.ActivationState == 0 && pos.TransferTime > DateTime.Now.AddDays(-20))
|
|
|
+ bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
|
|
|
+ if (!check)
|
|
|
{
|
|
|
- pos.IsPurchase = 0;
|
|
|
- pos.ActivationState = 1;
|
|
|
- pos.ActivationTime = DateTime.Now;
|
|
|
- PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
|
|
|
- if (merchant != null)
|
|
|
+ decimal TradeAmount = trade.TradeAmount / 100;
|
|
|
+ int BankCardType = int.Parse(trade.BankCardType);
|
|
|
+ db.TradeRecord.Add(new PxcModels.TradeRecord()
|
|
|
{
|
|
|
- merchant.ActiveStatus = 1;
|
|
|
- merchant.MerStandardDate = DateTime.Now;
|
|
|
- db.SaveChanges();
|
|
|
- RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
|
|
|
+ CreateDate = trade.CreateDate,
|
|
|
+ UpdateDate = trade.UpdateDate,
|
|
|
+ RecordNo = trade.TradeSerialNo, //单号
|
|
|
+ UserId = pos.UserId, //创客
|
|
|
+ MerchantId = pos.BindMerchantId, //商户
|
|
|
+ MerNo = trade.MerNo, //渠道商户编号
|
|
|
+ MerHelpFlag = 0, //是否属于扶持周期内商户
|
|
|
+ HelpMonthCount = 0, //扶持第几个月
|
|
|
+ MerBuddyType = user.MerchantType, //商户创客类型
|
|
|
+ SnNo = trade.TradeSnNo, //渠道SN号
|
|
|
+ // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
|
|
|
+ TradeSerialNo = trade.ChannelSerial, //交易流水号
|
|
|
+ TradeAmount = TradeAmount, //交易金额
|
|
|
+ BankCardType = BankCardType, //银行卡类型
|
|
|
+ QrPayFlag = trade.TradeType == "02" ? 1 : 0, //云闪付标识
|
|
|
+ BrandId = int.Parse(trade.ProductType), //品牌
|
|
|
+ Remark = trade.Remark, //备注
|
|
|
+ TopUserId = TopUserId, //顶级创客
|
|
|
+ MerUserId = pos.UserId, //商户直属创客
|
|
|
+ });
|
|
|
+ if (BankCardType == 1)
|
|
|
+ {
|
|
|
+ pos.CreditTrade += TradeAmount;
|
|
|
+ }
|
|
|
+ else if (BankCardType == 0)
|
|
|
+ {
|
|
|
+ pos.DebitCardTrade += TradeAmount;
|
|
|
+ }
|
|
|
+ if (pos.CreditTrade < 1000)
|
|
|
+ {
|
|
|
+ pos.IsPurchase = 99;
|
|
|
+ }
|
|
|
+ else if (pos.CreditTrade >= 1000 && pos.ActivationState == 0 && pos.TransferTime > DateTime.Now.AddDays(-20))
|
|
|
+ {
|
|
|
+ pos.IsPurchase = 0;
|
|
|
+ pos.ActivationState = 1;
|
|
|
+ pos.ActivationTime = DateTime.Now;
|
|
|
+ PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
|
|
|
+ if (merchant != null)
|
|
|
+ {
|
|
|
+ merchant.ActiveStatus = 1;
|
|
|
+ merchant.MerStandardDate = DateTime.Now;
|
|
|
+ db.SaveChanges();
|
|
|
+ RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
|
|
|
+ }
|
|
|
}
|
|
|
+ db.SaveChanges();
|
|
|
}
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
|
|
|
- if (edit != null)
|
|
|
- {
|
|
|
- edit.Status = 2;
|
|
|
+ TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
|
|
|
+ if (edit != null)
|
|
|
+ {
|
|
|
+ edit.Status = 2;
|
|
|
+ }
|
|
|
+ spdb.SaveChanges();
|
|
|
}
|
|
|
- spdb.SaveChanges();
|
|
|
}
|
|
|
}
|
|
|
}
|