123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using MySystem.SpModels;
- using Library;
- using LitJson;
- using System.Threading;
- namespace MySystem
- {
- public class SycnSpChangeBindService
- {
- public readonly static SycnSpChangeBindService Instance = new SycnSpChangeBindService();
- private SycnSpChangeBindService()
- { }
- public void Start()
- {
- Thread th = new Thread(StartDo);
- th.IsBackground = true;
- th.Start();
- }
- public void StartDo()
- {
- while (true)
- {
- try
- {
- WebCMSEntities spdb = new WebCMSEntities();
- PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
- DateTime start = DateTime.Now.AddDays(-30);
- List<ChangeBindRecord> Binds = spdb.ChangeBindRecord.Where(m => m.ReBindTime >= start && m.Status == 1).OrderByDescending(m => m.Id).ToList();
- foreach (ChangeBindRecord Bind in Binds)
- {
- var tran = db.Database.BeginTransaction();
- try
- {
- string OldSnNum = Bind.MerSnNo;
- string NewSnNum = Bind.MerNewSnNo;
- string MerNo = Bind.MerNo;
- PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.PosMerchantInfo();
- PxcModels.MachineForSnNo oldForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == OldSnNum) ?? new PxcModels.MachineForSnNo();
- PxcModels.MachineForSnNo newForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == NewSnNum) ?? new PxcModels.MachineForSnNo();
- PxcModels.PosMachinesTwo oldpos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == oldForSnNo.SnId);
- PxcModels.PosMachinesTwo newpos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == newForSnNo.SnId);
- PxcModels.StoreHouse BackStore = db.StoreHouse.FirstOrDefault(m => m.Id == oldpos.StoreId) ?? new PxcModels.StoreHouse();
- PxcModels.StoreHouse OutStore = db.StoreHouse.FirstOrDefault(m => m.Id == newpos.StoreId) ?? new PxcModels.StoreHouse();
- string ChangeNo = "BMC" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(3);
- PxcModels.MachineChange add = db.MachineChange.Add(new PxcModels.MachineChange()
- {
- CreateDate = DateTime.Now,
- UpdateDate = DateTime.Now,
- ChangeNo = ChangeNo,
- UserId = 0,
- ChangeTime = DateTime.Now,
- BackStoreId = BackStore.Id,
- BackStoreName = BackStore.StoreName,
- Remark = "机具更换",
- BackStoreUserId = BackStore.UserId,
- OutProductType = int.Parse(OutStore.BrandId),
- OutProductName = OutStore.ProductName,
- OutStoreId = OutStore.Id,
- OutStoreName = OutStore.StoreName,
- OutStoreAreas = OutStore.Areas,
- OutStoreAddress = OutStore.Address,
- OutStoreManager = "",
- OutStoreManagerMobile = OutStore.ManageMobile,
- }).Entity;
- db.SaveChanges();
- int BackProductType = 0;
- string BackProductName = "";
- string ChangeDeviceName = "";
- string ChangeSnExpand = "";
- PxcModels.KqProducts oldPosBrand = db.KqProducts.FirstOrDefault(m => m.Id == oldpos.BrandId) ?? new PxcModels.KqProducts();
- PxcModels.KqProducts newPosBrand = db.KqProducts.FirstOrDefault(m => m.Id == newpos.BrandId) ?? new PxcModels.KqProducts();
- 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;
- newpos.IsFirst = oldpos.IsFirst;
-
-
-
- newpos.SeoKeyword = oldpos.SeoKeyword;
- newpos.PrizeParams = oldpos.PrizeParams;
- newpos.LeaderUserId= oldpos.LeaderUserId;
-
-
-
- oldpos.Status = -1;
- PxcModels.MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.KqMerNo);
- if (forMerNo != null)
- {
- forMerNo.SnId = newpos.Id;
- }
- merchant.KqSnNo = NewSnNum;
- db.MachineChangeDetail.Add(new PxcModels.MachineChangeDetail()
- {
- CreateDate = DateTime.Now,
- UpdateDate = DateTime.Now,
- ChangeNo = ChangeNo,
- ChangeId = add.Id,
- BackProductType = oldpos.BrandId,
- BackProductName = oldPosBrand.Name,
- UserId = 0,
- BackSnNo = oldpos.PosSn,
- OutProductType = newpos.BrandId,
- OutProductName = newPosBrand.Name,
- OutSnNo = newpos.PosSn,
- OutSnType = newpos.PosSnType,
- Remark = "机具更换",
- BackSnType = oldpos.PosSnType,
- });
- db.SaveChanges();
- BackProductType = oldpos.BrandId;
- BackProductName = newPosBrand.Name;
- ChangeDeviceName = oldpos.DeviceName;
- ChangeSnExpand = oldpos.PosSn;
- add.BackProductType = BackProductType;
- add.BackProductName = BackProductName;
- add.ChangeDeviceName = ChangeDeviceName;
- add.ChangeDeviceNum = 1;
- add.ChangeSnExpand = ChangeSnExpand;
- db.SaveChanges();
- ChangeBindRecord edit = spdb.ChangeBindRecord.FirstOrDefault(m => m.Id == Bind.Id);
- if (edit != null)
- {
- edit.Status = 2;
- spdb.SaveChanges();
- }
- tran.Commit();
- }
- catch (Exception ex)
- {
- tran.Rollback();
- function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n" + Bind.Id, "同步SP换绑数据到MAIN异常");
- }
- tran.Dispose();
- }
- spdb.Dispose();
- db.Dispose();
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP换绑数据到MAIN异常");
- }
- Thread.Sleep(1000);
- }
- }
- }
- }
|