|
@@ -87,7 +87,7 @@ public class PosExpiredHelper
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- GoPay(db);
|
|
|
+ GoPay(db, int.Parse(content));
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch(Exception ex)
|
|
@@ -98,91 +98,87 @@ public class PosExpiredHelper
|
|
|
}
|
|
|
db.Dispose();
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Thread.Sleep(60000);
|
|
|
+ }
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "过期机具扣费异常");
|
|
|
}
|
|
|
function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "过期机具扣费日志");
|
|
|
- Thread.Sleep(60000);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void GoPay(WebCMSEntities db)
|
|
|
+ public void GoPay(WebCMSEntities db, int UserId)
|
|
|
{
|
|
|
+ UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId) ?? new UserAccount();
|
|
|
+ decimal BalanceAmount = account.BalanceAmount;
|
|
|
List<int> BrandIdList = new List<int>();
|
|
|
BrandIdList.Add(3);
|
|
|
BrandIdList.Add(5);
|
|
|
BrandIdList.Add(9);
|
|
|
- DateTime now = DateTime.Now;
|
|
|
- bool op = true;
|
|
|
+ DateTime now = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00").AddDays(-60);
|
|
|
Dictionary<int, decimal> UserList = new Dictionary<int, decimal>();
|
|
|
- while(op)
|
|
|
+ var PosList = db.PosMachinesTwo.Select(m => new { m.Id, m.BuyUserId, m.RecycEndDate, m.Status, m.BindingState, m.BrandId, m.ScanQrTrade }).Where(m => m.BuyUserId == UserId && m.RecycEndDate < now && m.Status > -1 && m.BindingState == 0 && m.ScanQrTrade < 999).OrderBy(m => m.Id).ToList();
|
|
|
+ if(PosList.Count > 0)
|
|
|
{
|
|
|
- var PosList = db.PosMachinesTwo.Select(m => new { m.Id, m.BuyUserId, m.RecycEndDate, m.Status, m.BindingState, m.BrandId, m.ScanQrTrade }).Where(m => m.RecycEndDate < now && m.Status > -1 && m.BindingState == 0 && m.ScanQrTrade < 999).OrderBy(m => m.Id).Take(50).ToList();
|
|
|
- if(PosList.Count > 0)
|
|
|
+ foreach(var Pos in PosList)
|
|
|
{
|
|
|
- foreach(var Pos in PosList)
|
|
|
+ decimal PayMoney = 200;
|
|
|
+ if(BrandIdList.Contains(Pos.BrandId))
|
|
|
{
|
|
|
- decimal PayMoney = 200;
|
|
|
- if(BrandIdList.Contains(Pos.BrandId))
|
|
|
+ PayMoney = 300;
|
|
|
+ }
|
|
|
+ PayMoney -= Pos.ScanQrTrade;
|
|
|
+ if(BalanceAmount > 0)
|
|
|
+ {
|
|
|
+ if(BalanceAmount > PayMoney)
|
|
|
{
|
|
|
- PayMoney = 300;
|
|
|
+ if(UserList.ContainsKey(Pos.BuyUserId))
|
|
|
+ {
|
|
|
+ UserList[Pos.BuyUserId] += PayMoney;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UserList.Add(Pos.BuyUserId, PayMoney);
|
|
|
+ }
|
|
|
+ BalanceAmount -= PayMoney;
|
|
|
}
|
|
|
- PayMoney -= Pos.ScanQrTrade;
|
|
|
- UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == Pos.BuyUserId) ?? new UserAccount();
|
|
|
- if(account.BalanceAmount > 0)
|
|
|
+ else
|
|
|
{
|
|
|
- if(account.BalanceAmount > PayMoney)
|
|
|
+ PayMoney = BalanceAmount;
|
|
|
+ if(UserList.ContainsKey(Pos.BuyUserId))
|
|
|
{
|
|
|
- if(UserList.ContainsKey(Pos.BrandId))
|
|
|
- {
|
|
|
- UserList[Pos.BrandId] += PayMoney;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UserList.Add(Pos.BrandId, PayMoney);
|
|
|
- }
|
|
|
- account.BalanceAmount -= PayMoney;
|
|
|
+ UserList[Pos.BuyUserId] += PayMoney;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- PayMoney = account.BalanceAmount;
|
|
|
- if(UserList.ContainsKey(Pos.BrandId))
|
|
|
- {
|
|
|
- UserList[Pos.BrandId] += PayMoney;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UserList.Add(Pos.BrandId, PayMoney);
|
|
|
- }
|
|
|
- account.BalanceAmount = 0;
|
|
|
+ UserList.Add(Pos.BuyUserId, PayMoney);
|
|
|
+ }
|
|
|
+ BalanceAmount = 0;
|
|
|
+ }
|
|
|
+ PosMachinesTwo EditPos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == Pos.Id);
|
|
|
+ if(EditPos != null)
|
|
|
+ {
|
|
|
+ EditPos.ScanQrTrade += PayMoney;
|
|
|
+ if(BrandIdList.Contains(Pos.BrandId) && EditPos.ScanQrTrade >= 300)
|
|
|
+ {
|
|
|
+ EditPos.ScanQrTrade = 999;
|
|
|
}
|
|
|
- PosMachinesTwo EditPos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == Pos.Id);
|
|
|
- if(EditPos != null)
|
|
|
+ else if(!BrandIdList.Contains(Pos.BrandId) && EditPos.ScanQrTrade >= 200)
|
|
|
{
|
|
|
- EditPos.ScanQrTrade += PayMoney;
|
|
|
- if(BrandIdList.Contains(Pos.BrandId) && EditPos.ScanQrTrade >= 150)
|
|
|
- {
|
|
|
- EditPos.ScanQrTrade = 999;
|
|
|
- }
|
|
|
- else if(!BrandIdList.Contains(Pos.BrandId) && EditPos.ScanQrTrade >= 100)
|
|
|
- {
|
|
|
- EditPos.ScanQrTrade = 999;
|
|
|
- }
|
|
|
+ EditPos.ScanQrTrade = 999;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- op = false;
|
|
|
}
|
|
|
+ db.SaveChanges();
|
|
|
}
|
|
|
- foreach(int UserId in UserList.Keys)
|
|
|
+ foreach(int UsrId in UserList.Keys)
|
|
|
{
|
|
|
- AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), UserId, -UserList[UserId], 124);
|
|
|
+ AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), UsrId, -UserList[UsrId], 124, "扣机具货款");
|
|
|
}
|
|
|
}
|
|
|
}
|