using MyCode.Project.Domain.Message.Response.Lxm; using MyCode.Project.Domain.Model; using MyCode.Project.Domain.Repositories; using MyCode.Project.Infrastructure.Exceptions; using MyCode.Project.Repositories.Lxm; using System; namespace MyCode.Project.Services.BLL { public class RechargeBLL { #region 初始化 private readonly LxmInfraRepository _lxmInfraRepository; private readonly IRepository _repository; public RechargeBLL(LxmInfraRepository lxmInfraRepository, IRepository repository) { _lxmInfraRepository = lxmInfraRepository; _repository = repository; } #endregion #region HandleRecharge(处理充值) /// /// 处理充值 /// /// public void HandleRecharge(ChangeRecordResp record) { var rechargeId = record.SheetId.ToString(); if (record.Flag != 100) { //_repository.DeleteQueue(p => p.Id == rechargeId); return; } var rechargeModel = new LxmRecharge() { Id = record.SheetId.ToString(), Amount = Math.Abs(record.RechargeAmount), CustomerId = record.CustomerId?.ToString(), CustomerName = record.CustomerName, ShopId = record.ShopId.ToString(), CreateTime = record.CreateTime, UpdateTime = DateTime.Now, EditTime = record.EditTime, }; //add by florent 2023-10-30 rechargeModel.IsNewMemberOrder = record.IsNewMemberOrder; rechargeModel.OrderClerkId = record.ClerkId?.ToString(); if (record.MemberId != null) { rechargeModel.MemberId = record.MemberId.ToString(); rechargeModel.MemberName = record.MemberName; rechargeModel.MemberMobile = record.MemberMobile; } if (record.ClerkId != null) { rechargeModel.OrderClerkId = record.ClerkId.ToString(); rechargeModel.OrderClerkName = record.ClerkName; rechargeModel.OrderClerkMobile = record.ClerkMobile; } if (record.PlatformSource != null) { rechargeModel.PlatformSource = record.PlatformSource; } var mssqlRecharge = _lxmInfraRepository.GetLxmRecharge(record.SheetId); if (mssqlRecharge == null) { throw new BaseException($"充值id={record.SheetId}在流行美MSSQL数据库BasMemberRecharge表中找不到数据"); } rechargeModel.Sheet = mssqlRecharge.Sheet; if (record.RechargeAmount < 0) { rechargeModel.Direct = -1; } else { rechargeModel.Direct = 1; } _repository.AddQueue(rechargeModel); } #endregion } }