123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- using System;
- using System.Collections.Generic;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Linq;
- using Microsoft.Extensions.Hosting;
- using MySystem;
- using MySystem.PxcModels;
- using LitJson;
- using Library;
- public class ChangePosTimer
- {
- public readonly static ChangePosTimer Instance = new ChangePosTimer();
- private ChangePosTimer()
- {
- }
-
- public void Start()
- {
- Thread th = new Thread(DoWorks);
- th.IsBackground = true;
- th.Start();
- }
- private void DoWorks()
- {
- while (true)
- {
- string content = RedisDbconn.Instance.RPop<string>("ChangePosTimerQueue");
- if (!string.IsNullOrEmpty(content))
- {
- JsonData jsonObj = JsonMapper.ToObject(content);
- string OldSnNum = jsonObj["OldSn"].ToString();
- string NewSnNum = jsonObj["NewSn"].ToString();
- string MerNo = jsonObj["MerNo"].ToString();
- WebCMSEntities db = new WebCMSEntities();
- MachineForSnNo oldForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == OldSnNum) ?? new MachineForSnNo();
- MachineForSnNo newForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == NewSnNum) ?? new MachineForSnNo();
- PosMachinesTwo oldpos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == oldForSnNo.SnId);
- if (oldpos == null)
- {
- return;
- }
- if (oldpos.BindingState != 1)
- {
- return;
- }
- PosMachinesTwo newpos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == newForSnNo.SnId);
- if (oldpos == null)
- {
- return;
- }
- KqProducts oldPosBrand = db.KqProducts.FirstOrDefault(m => m.Id == oldpos.BrandId) ?? new KqProducts();
- KqProducts newPosBrand = db.KqProducts.FirstOrDefault(m => m.Id == newpos.BrandId) ?? new KqProducts();
- PosMerchantInfo merchant = new PosMerchantInfo();
- if (!string.IsNullOrEmpty(MerNo))
- {
- merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PosMerchantInfo();
- }
- else
- {
- merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == oldpos.BindMerchantId) ?? new PosMerchantInfo();
- }
- newpos.BindMerchantId = merchant.Id;
- newpos.BuyUserId = oldpos.BuyUserId;
- newpos.UserId = oldpos.UserId;
- newpos.RecycEndDate = oldpos.RecycEndDate;
- newpos.ScanQrTrade = oldpos.ScanQrTrade;
- newpos.DebitCardTrade = oldpos.DebitCardTrade;
- newpos.CreditTrade = oldpos.CreditTrade;
- newpos.PosSnType = oldpos.PosSnType;
- newpos.TransferTime = oldpos.TransferTime;
- newpos.IsPurchase = oldpos.IsPurchase;
- newpos.BindingState = oldpos.BindingState;
- newpos.ActivationState = oldpos.ActivationState;
- newpos.BindingTime = oldpos.BindingTime;
- newpos.ActivationTime = oldpos.ActivationTime;
- bool checkActReward = db.ActiveReward.Any(m => m.KqMerNo == merchant.KqMerNo);
- if (!checkActReward)
- {
- newpos.SeoKeyword = oldpos.SeoKeyword;
- }
- oldpos.UserId = 0;
- MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.KqMerNo);
- if (forMerNo != null)
- {
- forMerNo.SnId = newpos.Id;
- }
- merchant.KqSnNo = NewSnNum;
- RedisDbconn.Instance.Clear("PosMachinesTwo:" + oldpos.Id);
- RedisDbconn.Instance.Clear("PosMachinesTwo:" + newpos.Id);
- RedisDbconn.Instance.Clear("PosMerchantInfo:" + merchant.Id);
- db.SaveChanges();
- db.Dispose();
- }
- else
- {
- Thread.Sleep(5000);
- }
- }
- }
- }
|