public void ConfirmApplyWithDraw(ApplyWithDrawInfo info) { var model = Context.ApplyWithDrawInfo.FirstOrDefault(e => e.Id == info.Id); using (TransactionScope scope = new TransactionScope()) { model.ApplyStatus = info.ApplyStatus; model.OpUser = info.OpUser; model.Remark = info.Remark; model.ConfirmTime = info.ConfirmTime.HasValue ? info.ConfirmTime.Value : DateTime.Now; Context.SaveChanges(); if (info.ApplyStatus == ApplyWithDrawInfo.ApplyWithDrawStatus.WithDrawSuccess) { model.PayNo = info.PayNo; model.PayTime = info.PayTime.HasValue ? info.PayTime.Value : DateTime.Now; CapitalDetailModel capitalDetail = new CapitalDetailModel { Amount = -info.ApplyAmount, UserId = model.MemId, PayWay = info.Remark, SourceType = CapitalDetailInfo.CapitalDetailType.WithDraw, SourceData = info.Id.ToString() }; AddCapital(capitalDetail); } scope.Complete(); } }
public void ConfirmApplyWithDraw(ApplyWithDrawInfo info) { ApplyWithDrawInfo applyStatus = context.ApplyWithDrawInfo.FirstOrDefault((ApplyWithDrawInfo e) => e.Id == info.Id); using (TransactionScope transactionScope = new TransactionScope()) { applyStatus.ApplyStatus = info.ApplyStatus; applyStatus.OpUser = info.OpUser; applyStatus.Remark = info.Remark; applyStatus.ConfirmTime = new DateTime?((info.ConfirmTime.HasValue ? info.ConfirmTime.Value : DateTime.Now)); context.SaveChanges(); if (info.ApplyStatus == ApplyWithDrawInfo.ApplyWithDrawStatus.WithDrawSuccess) { applyStatus.PayNo = info.PayNo; applyStatus.PayTime = new DateTime?((info.PayTime.HasValue ? info.PayTime.Value : DateTime.Now)); CapitalDetailModel capitalDetailModel = new CapitalDetailModel() { Amount = -info.ApplyAmount, UserId = applyStatus.MemId, PayWay = info.Remark, SourceType = CapitalDetailInfo.CapitalDetailType.WithDraw, SourceData = info.Id.ToString() }; AddCapital(capitalDetailModel); } transactionScope.Complete(); } }
//平台红包存储 private void DepositToRegister(MemberOpenIdInfo openInfo, Entities efContext) { //获取某个OpenId对应的红包记录 var receives = efContext.BonusReceiveInfo.Where(p => p.OpenId == openInfo.OpenId && !p.IsTransformedDeposit); var list = receives.ToList(); List <CapitalDetailModel> capitals = new List <CapitalDetailModel>(); //存在数据则证明有可用红包,可以存到预存款里 if (list.Count > 0) { foreach (var model in list) { model.IsTransformedDeposit = true; model.Himall_Members = efContext.UserMemberInfo.FirstOrDefault(p => p.Id == openInfo.UserId); CapitalDetailModel capital = new CapitalDetailModel() { UserId = openInfo.UserId, SourceType = CapitalDetailInfo.CapitalDetailType.RedPacket, Amount = model.Price, CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; new MemberCapitalService().AddCapital(capital); } efContext.SaveChanges(); } IMemberCapitalService capitalServicer = Himall.ServiceProvider.Instance <IMemberCapitalService> .Create; foreach (var c in capitals) { capitalServicer.AddCapital(c); } }
private void DepositToMember(string openId, decimal price) { Entities entity = new Entities(); MemberOpenIdInfo memberOpenIdInfo = ( from p in entity.MemberOpenIdInfo where p.OpenId == openId select p).FirstOrDefault(); if (memberOpenIdInfo != null) { BonusReceiveInfo bonusReceiveInfo = ( from p in entity.BonusReceiveInfo where (p.OpenId == openId) && !p.IsTransformedDeposit select p).FirstOrDefault(); bonusReceiveInfo.IsTransformedDeposit = true; bonusReceiveInfo.ChemCloud_Members = entity.UserMemberInfo.FirstOrDefault((UserMemberInfo p) => p.Id == memberOpenIdInfo.UserId); entity.SaveChanges(); IMemberCapitalService create = Instance <IMemberCapitalService> .Create; CapitalDetailModel capitalDetailModel = new CapitalDetailModel() { UserId = memberOpenIdInfo.UserId, //SourceType = CapitalDetailInfo.CapitalDetailType.RedPacket, Amount = price, CreateTime = bonusReceiveInfo.ReceiveTime.Value.ToString("yyyy-MM-dd HH:mm:ss") }; create.AddCapital(capitalDetailModel); } entity.Dispose(); }
private void DepositToRegister(MemberOpenIdInfo openInfo, Entities efContext) { IQueryable <BonusReceiveInfo> bonusReceiveInfo = from p in efContext.BonusReceiveInfo where (p.OpenId == openInfo.OpenId) && !p.IsTransformedDeposit select p; List <BonusReceiveInfo> list = bonusReceiveInfo.ToList(); List <CapitalDetailModel> capitalDetailModels = new List <CapitalDetailModel>(); if (list.Count > 0) { foreach (BonusReceiveInfo bonusReceiveInfo1 in list) { bonusReceiveInfo1.IsTransformedDeposit = true; bonusReceiveInfo1.ChemCloud_Members = efContext.UserMemberInfo.FirstOrDefault((UserMemberInfo p) => p.Id == openInfo.UserId); CapitalDetailModel capitalDetailModel = new CapitalDetailModel() { UserId = openInfo.UserId, //SourceType = CapitalDetailInfo.CapitalDetailType.RedPacket, Amount = bonusReceiveInfo1.Price, CreateTime = bonusReceiveInfo1.ReceiveTime.Value.ToString("yyyy-MM-dd HH:mm:ss") }; capitalDetailModels.Add(capitalDetailModel); } efContext.SaveChanges(); } IMemberCapitalService create = Instance <IMemberCapitalService> .Create; foreach (CapitalDetailModel capitalDetailModel1 in capitalDetailModels) { create.AddCapital(capitalDetailModel1); } }
public void UpdateChargeDetail(ChargeDetailInfo model) { //var oldmodel = Context.ChargeDetailInfo.FirstOrDefault(e => e.Id == model.Id); var oldmodel = DbFactory.Default.Get <ChargeDetailInfo>().Where(e => e.Id == model.Id).FirstOrDefault(); //using (TransactionScope scope = new TransactionScope()) //{ var flag = DbFactory.Default.InTransaction(() => { //oldmodel.ChargeStatus = model.ChargeStatus; //oldmodel.ChargeTime = model.ChargeTime.Value; //oldmodel.ChargeWay = model.ChargeWay; //Context.SaveChanges(); DbFactory.Default.Set <ChargeDetailInfo>().Set(n => n.ChargeStatus, model.ChargeStatus) .Set(n => n.ChargeTime, model.ChargeTime.Value).Set(n => n.ChargeWay, model.ChargeWay).Where(e => e.Id == oldmodel.Id).Succeed(); CapitalDetailModel capitalDetail = new CapitalDetailModel { Amount = oldmodel.ChargeAmount, UserId = oldmodel.MemId, PayWay = model.ChargeWay, SourceType = CapitalDetailInfo.CapitalDetailType.ChargeAmount, SourceData = oldmodel.Id.ToString(), PresentAmount = oldmodel.PresentAmount }; AddCapital(capitalDetail); //scope.Complete(); return(true); }); }
/// <summary> /// 充值成功 /// </summary> /// <param name="chargeDetailId"></param> public void ChargeSuccess(long chargeDetailId, string remark = "") { var chargeDetail = DbFactory.Default.Get <ChargeDetailInfo>().Where(p => p.Id == chargeDetailId).FirstOrDefault(); if (chargeDetail == null) { return; } chargeDetail.ChargeStatus = ChargeDetailInfo.ChargeDetailStatus.ChargeSuccess; var capitalDetail = DbFactory.Default.Get <CapitalDetailInfo>().Where(e => e.SourceData == chargeDetailId.ToString() && e.SourceType == CapitalDetailInfo.CapitalDetailType.ChargeAmount).FirstOrDefault(); if (capitalDetail != null)//已经处理过直接返回 { return; } DbFactory.Default.Update(chargeDetail); CapitalDetailModel detail = new CapitalDetailModel { Id = CreateCode(CapitalDetailInfo.CapitalDetailType.ChargeAmount), UserId = chargeDetail.MemId, Amount = chargeDetail.ChargeAmount, CreateTime = DateTime.Now.ToString(), SourceType = CapitalDetailInfo.CapitalDetailType.ChargeAmount, SourceData = chargeDetailId.ToString(), Remark = remark, PresentAmount = chargeDetail.PresentAmount }; AddCapital(detail); }
/// <summary> /// 将红包金额存到预存款里 (领取红包时执行) /// 只会出现一条红包记录 /// </summary> private void DepositToMember(string openId, decimal price, string unionId = "") { //查看用户、OpenId关联表里是否存在数据,存在则证明已经绑定过OpenId MemberOpenIdInfo model = DbFactory.Default.Get <MemberOpenIdInfo>().Where(p => p.OpenId.ToLower() == openId.ToLower()).FirstOrDefault(); if (model == null && !string.IsNullOrEmpty(unionId)) { model = DbFactory.Default.Get <MemberOpenIdInfo>().Where(p => p.UnionId.ToLower() == unionId.ToLower()).FirstOrDefault(); } if (model != null) { var receive = DbFactory.Default.Get <BonusReceiveInfo>().Where(p => (p.OpenId.ToLower() == openId.ToLower() || p.OpenId.ToLower() == model.UnionId.ToLower()) && p.IsTransformedDeposit == false).FirstOrDefault(); if (receive == null || receive.Id <= 0) { return;//没有未领取红包提前跳出 } receive.IsTransformedDeposit = true; receive.UserId = model.UserId; DbFactory.Default.Update(receive); IMemberCapitalService capitalServicer = Mall.ServiceProvider.Instance <IMemberCapitalService> .Create; CapitalDetailModel capita = new CapitalDetailModel { UserId = model.UserId, SourceType = Mall.Entities.CapitalDetailInfo.CapitalDetailType.RedPacket, Amount = price, CreateTime = ((DateTime)receive.ReceiveTime).ToString("yyyy-MM-dd HH:mm:ss") }; capitalServicer.AddCapital(capita); } }
/// <summary> /// 将红包金额存到预存款里 (领取红包时执行) /// 只会出现一条红包记录 /// </summary> private void DepositToMember(string openId, decimal price) { Entities efContext = new Entities(); //查看用户、OpenId关联表里是否存在数据,存在则证明已经绑定过OpenId MemberOpenIdInfo model = efContext.MemberOpenIdInfo.Where(p => p.OpenId == openId).FirstOrDefault(); if (model != null) { var receive = efContext.BonusReceiveInfo.Where(p => p.OpenId == openId && !p.IsTransformedDeposit).FirstOrDefault(); receive.IsTransformedDeposit = true; receive.Himall_Members = efContext.UserMemberInfo.FirstOrDefault(p => p.Id == model.UserId); efContext.SaveChanges(); IMemberCapitalService capitalServicer = Himall.ServiceProvider.Instance <IMemberCapitalService> .Create; CapitalDetailModel capita = new CapitalDetailModel { UserId = model.UserId, SourceType = CapitalDetailInfo.CapitalDetailType.RedPacket, Amount = price, CreateTime = ((DateTime)receive.ReceiveTime).ToString("yyyy-MM-dd HH:mm:ss") }; capitalServicer.AddCapital(capita); } efContext.Dispose(); }
//平台红包存储 private void DepositToRegister(MemberOpenIdInfo openInfo) { //获取某个OpenId对应的红包记录(在Mall3.3版本,考虑到小程序首页配置了现金红包跳转到红包页面的情况,将之前的openId改为UnionId,并兼容以前的数据) var receives = DbFactory.Default.Get <BonusReceiveInfo>().Where(p => (p.OpenId.ToLower() == openInfo.OpenId.ToLower() || p.OpenId.ToLower() == openInfo.UnionId.ToLower()) && p.IsTransformedDeposit == false); var list = receives.ToList(); List <CapitalDetailModel> capitals = new List <CapitalDetailModel>(); //存在数据则证明有可用红包,可以存到预存款里 if (list.Count > 0) { foreach (var model in list) { model.IsTransformedDeposit = true; model.UserId = openInfo.UserId; DbFactory.Default.Update(model); CapitalDetailModel capital = new CapitalDetailModel() { UserId = openInfo.UserId, SourceType = Mall.Entities.CapitalDetailInfo.CapitalDetailType.RedPacket, Amount = model.Price, CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; new MemberCapitalService().AddCapital(capital); } } IMemberCapitalService capitalServicer = Mall.ServiceProvider.Instance <IMemberCapitalService> .Create; foreach (var c in capitals) { capitalServicer.AddCapital(c); } }
public void Execute(IJobExecutionContext context) { Entity.Entities entity = new Entities(); var settings = new SiteSettingService().GetSiteSettings(); var expried = settings.SalesReturnTimeout; var now = DateTime.Now; var exday = now.AddDays(-expried); var t = entity.BrokerageIncomeInfo.Where(a => a.Status == Model.BrokerageIncomeInfo.BrokerageStatus.NotSettled); var order = entity.OrderInfo.Where(b => b.OrderStatus == Model.OrderInfo.OrderOperateStatus.Finish && b.FinishDate.Value <= exday); var models = t.Join(order, a => a.OrderId, b => b.Id, (a, b) => new { a.Id, a.OrderId, a.OrderTime, a.OrderItemId, a.Brokerage, a.Himall_BrokerageRefund, a.ProductID, a.UserId, b.FinishDate, b.OrderStatus, }).ToList(); foreach (var model in models) { using (TransactionScope transaction = new TransactionScope()) { IMemberCapitalService capitalServicer = Himall.ServiceProvider.Instance <IMemberCapitalService> .Create; CapitalDetailModel capita = new CapitalDetailModel { UserId = model.UserId, SourceType = CapitalDetailInfo.CapitalDetailType.Brokerage, CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; capita.Amount = model.Brokerage; var refund = model.Himall_BrokerageRefund.FirstOrDefault(); if (refund != null) { capita.Amount = model.Brokerage - refund.Brokerage; } var paid = entity.ProductBrokerageInfo.Where(a => a.ProductId == model.ProductID).FirstOrDefault(); var b = entity.BrokerageIncomeInfo.Where(a => a.OrderItemId == model.OrderItemId && a.Status == BrokerageIncomeInfo.BrokerageStatus.NotSettled).FirstOrDefault(); if (b != null) { b.Status = BrokerageIncomeInfo.BrokerageStatus.Settled; b.SettlementTime = DateTime.Now; paid.BrokerageAmount += capita.Amount; capita.Remark = "分佣佣金,预约单Id:" + model.OrderId + ",诊疗项目ID:" + model.ProductID; capita.SourceData = model.OrderId.HasValue ? model.OrderId.Value.ToString() : ""; capitalServicer.AddCapital(capita); //已结算累加 entity.SaveChanges(); transaction.Complete(); } } } }
public void ConfirmApplyWithDraw(ApplyWithdrawInfo info) { var model = DbFactory.Default.Get <ApplyWithdrawInfo>().Where(e => e.Id == info.Id).FirstOrDefault(); var flag = DbFactory.Default.InTransaction(() => { model.ApplyStatus = info.ApplyStatus; model.OpUser = info.OpUser; model.Remark = info.Remark; model.ConfirmTime = info.ConfirmTime.HasValue ? info.ConfirmTime.Value : DateTime.Now; //Context.SaveChanges(); DbFactory.Default.Update(model); if (info.ApplyStatus == ApplyWithdrawInfo.ApplyWithdrawStatus.WithDrawSuccess) { //model.PayNo = info.PayNo; //model.PayTime = info.PayTime.HasValue ? info.PayTime.Value : DateTime.Now; //DbFactory.Default.Update(model); DbFactory.Default.Set <ApplyWithdrawInfo>().Set(n => n.PayNo, info.PayNo).Set(n => n.PayTime, info.PayTime.HasValue ? info.PayTime.Value : DateTime.Now).Where(p => p.Id == model.Id).Succeed(); CapitalDetailModel capitalDetail = new CapitalDetailModel { Amount = -info.ApplyAmount, UserId = model.MemId, PayWay = info.Remark, SourceType = CapitalDetailInfo.CapitalDetailType.WithDraw, SourceData = info.Id.ToString() }; AddCapital(capitalDetail, false); } //scope.Complete(); return(true); }); if (flag) { //发送消息 var member = DbFactory.Default.Get <MemberInfo>(m => m.Id == model.MemId).FirstOrDefault(); var message = new MessageWithDrawInfo(); message.UserName = model.NickName; message.UserName = member != null ? member.UserName : ""; message.Amount = model.ApplyAmount; message.ApplyType = model.ApplyType.GetHashCode(); message.ApplyTime = model.ApplyTime; message.Remark = model.Remark; message.SiteName = SiteSettingApplication.SiteSettings.SiteName; if (info.ApplyStatus == ApplyWithdrawInfo.ApplyWithdrawStatus.WithDrawSuccess) { Task.Factory.StartNew(() => ServiceProvider.Instance <IMessageService> .Create.SendMessageOnMemberWithDrawSuccess(model.MemId, message)); } if (info.ApplyStatus == ApplyWithdrawInfo.ApplyWithdrawStatus.Refuse) { Task.Factory.StartNew(() => ServiceProvider.Instance <IMessageService> .Create.SendMessageOnMemberWithDrawFail(model.MemId, message)); } } }
public JsonResult ChageCapital(long userId, decimal amount, string remark) { var result = new Result { msg = "错误的会员编号" }; var _user = MemberApplication.GetMember(userId); if (_user != null) { if (string.IsNullOrWhiteSpace(remark)) { result.msg = "请填写备注信息"; } else { if (amount < 0) { var balance = MemberCapitalApplication.GetBalanceByUserId(userId); if (balance < Math.Abs(amount)) { throw new HimallException("用户余额不足相减"); } } if (amount < 0) { CapitalDetailModel capita = new CapitalDetailModel { UserId = userId, SourceType = CapitalDetailType.ChargeAmount, Amount = amount, CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Remark = remark, PayWay = "管理员操作" }; _iMemberCapitalService.AddCapital(capita); } else { var detail = new Entities.ChargeDetailInfo() { ChargeAmount = amount, ChargeStatus = Entities.ChargeDetailInfo.ChargeDetailStatus.WaitPay, CreateTime = DateTime.Now, MemId = userId, ChargeWay = "管理员操作" }; long id = _iMemberCapitalService.AddChargeApply(detail); _iMemberCapitalService.ChargeSuccess(id, remark + " 管理员操作"); } result.success = true; result.msg = "操作成功"; } } return(Json(result)); }
/// <summary> /// 微信活动 将红包金额存到预存款里 (领取红包时执行) /// 只会出现一条红包记录 /// </summary> private void WeiDepositToMember(long userId, decimal price) { IMemberCapitalService capitalServicer = Mall.ServiceProvider.Instance <IMemberCapitalService> .Create; CapitalDetailModel capita = new CapitalDetailModel { UserId = userId, SourceType = Mall.Entities.CapitalDetailInfo.CapitalDetailType.RedPacket, Amount = price, CreateTime = (DateTime.Now).ToString("yyyy-MM-dd HH:mm:ss") }; capitalServicer.AddCapital(capita); }
public void UpdateChargeDetail(ChargeDetailInfo model) { ChargeDetailInfo chargeStatus = context.ChargeDetailInfo.FirstOrDefault((ChargeDetailInfo e) => e.Id == model.Id); using (TransactionScope transactionScope = new TransactionScope()) { chargeStatus.ChargeStatus = model.ChargeStatus; chargeStatus.ChargeTime = new DateTime?(model.ChargeTime.Value); chargeStatus.ChargeWay = model.ChargeWay; context.SaveChanges(); CapitalDetailModel capitalDetailModel = new CapitalDetailModel() { Amount = chargeStatus.ChargeAmount, UserId = chargeStatus.MemId, PayWay = model.ChargeWay, SourceType = CapitalDetailInfo.CapitalDetailType.ChargeAmount, SourceData = chargeStatus.Id.ToString() }; AddCapital(capitalDetailModel); transactionScope.Complete(); } }
public void UpdateChargeDetail(ChargeDetailInfo model) { var oldmodel = Context.ChargeDetailInfo.FirstOrDefault(e => e.Id == model.Id); using (TransactionScope scope = new TransactionScope()) { oldmodel.ChargeStatus = model.ChargeStatus; oldmodel.ChargeTime = model.ChargeTime.Value; oldmodel.ChargeWay = model.ChargeWay; Context.SaveChanges(); CapitalDetailModel capitalDetail = new CapitalDetailModel { Amount = oldmodel.ChargeAmount, UserId = oldmodel.MemId, PayWay = model.ChargeWay, SourceType = CapitalDetailInfo.CapitalDetailType.ChargeAmount, SourceData = oldmodel.Id.ToString() }; AddCapital(capitalDetail); scope.Complete(); } }
public void AddCapital(CapitalDetailModel model, bool isAccrualRecharge = true) { //var capital = Context.CapitalInfo.FirstOrDefault(e => e.MemId == model.UserId); var capital = DbFactory.Default.Get <CapitalInfo>().Where(e => e.MemId == model.UserId).FirstOrDefault(); decimal balance = 0; decimal presentAmount = 0; //充值赠送 if (model.PresentAmount.HasValue && model.PresentAmount > 0) { presentAmount = model.PresentAmount.Value; } decimal chargeAmount = model.Amount; decimal freezeAmount = 0; StringBuilder strBuilder = new StringBuilder(); if (presentAmount > 0) { strBuilder.Append("充" + model.Amount + "元赠送" + presentAmount + "元"); } else { //备注、支付方式保存到remark //strBuilder.Append(model.PayWay);//BUG 40384 //strBuilder.Append(" "); strBuilder.Append(model.Remark); } switch (model.SourceType) { case CapitalDetailInfo.CapitalDetailType.ChargeAmount: balance = chargeAmount + presentAmount; break; case CapitalDetailInfo.CapitalDetailType.WithDraw: freezeAmount = model.Amount; break; default: balance = chargeAmount + presentAmount; break; } if (capital == null) { capital = new CapitalInfo { MemId = model.UserId, Balance = balance, ChargeAmount = chargeAmount, FreezeAmount = freezeAmount, PresentAmount = presentAmount }; if (!isAccrualRecharge) { capital.ChargeAmount = 0; } DbFactory.Default.Add(capital); var capitalDetail = new CapitalDetailInfo { Id = CreateCode(model.SourceType), CapitalID = capital.Id, Amount = balance, PresentAmount = presentAmount, CreateTime = DateTime.Parse(model.CreateTime), SourceType = model.SourceType, SourceData = model.SourceData, Remark = strBuilder.ToString() }; DbFactory.Default.Add(capitalDetail); if (string.IsNullOrWhiteSpace(capitalDetail.SourceData) && capitalDetail.SourceType == CapitalDetailInfo.CapitalDetailType.ChargeAmount && model.PayWay == "管理员操作") { capitalDetail.SourceData = capitalDetail.Id.ToString(); DbFactory.Default.Update(capitalDetail); } } else { var capitalDetail = DbFactory.Default.Get <CapitalDetailInfo>().Where(e => e.Id == model.Id && e.Id != 0).FirstOrDefault(); if (capitalDetail == null) { capitalDetail = new CapitalDetailInfo() { Id = CreateCode(model.SourceType), Amount = model.Amount, PresentAmount = model.PresentAmount.HasValue ? model.PresentAmount.Value : 0, CreateTime = DateTime.Parse(model.CreateTime), CapitalID = capital.Id, SourceType = model.SourceType, SourceData = model.SourceData, Remark = strBuilder.ToString() }; DbFactory.Default.Add(capitalDetail); if (string.IsNullOrWhiteSpace(capitalDetail.SourceData) && capitalDetail.SourceType == CapitalDetailInfo.CapitalDetailType.ChargeAmount && model.PayWay == "管理员操作") { capitalDetail.SourceData = capitalDetail.Id.ToString(); DbFactory.Default.Update(capitalDetail); } capital.Balance += balance; capital.PresentAmount += presentAmount; if (isAccrualRecharge) { capital.ChargeAmount += chargeAmount; } capital.FreezeAmount += freezeAmount; DbFactory.Default.Update(capital); } } }
public void AddCapital(CapitalDetailModel model) { decimal? nullable; decimal? nullable1; decimal? nullable2; CapitalInfo capitalInfo = context.CapitalInfo.FirstOrDefault((CapitalInfo e) => e.MemId == model.UserId); decimal num = new decimal(0); decimal num1 = new decimal(0); decimal amount = new decimal(0); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(model.Remark); stringBuilder.Append(" "); stringBuilder.Append(model.PayWay); switch (model.SourceType) { case CapitalDetailInfo.CapitalDetailType.ChargeAmount: { decimal amount1 = model.Amount; num1 = amount1; num = amount1; break; } case CapitalDetailInfo.CapitalDetailType.WithDraw: { amount = model.Amount; break; } default: { num = model.Amount; break; } } if (capitalInfo == null) { CapitalInfo capitalInfo1 = new CapitalInfo() { MemId = model.UserId, Balance = new decimal?(num), ChargeAmount = new decimal?(num1), FreezeAmount = new decimal?(amount) }; List <CapitalDetailInfo> capitalDetailInfos = new List <CapitalDetailInfo>(); CapitalDetailInfo capitalDetailInfo = new CapitalDetailInfo() { Id = CreateCode(model.SourceType), Amount = num, CreateTime = new DateTime?(DateTime.Parse(model.CreateTime)), SourceType = model.SourceType, SourceData = model.SourceData, Remark = stringBuilder.ToString() }; capitalDetailInfos.Add(capitalDetailInfo); capitalInfo1.ChemCloud_CapitalDetail = capitalDetailInfos; capitalInfo = capitalInfo1; context.CapitalInfo.Add(capitalInfo); } else if (context.CapitalDetailInfo.FirstOrDefault((CapitalDetailInfo e) => e.Id == model.Id && e.Id != 0) == null) { CapitalDetailInfo capitalDetailInfo1 = new CapitalDetailInfo() { Id = CreateCode(model.SourceType), Amount = model.Amount, CreateTime = new DateTime?(DateTime.Parse(model.CreateTime)), CapitalID = capitalInfo.Id, SourceType = model.SourceType, SourceData = model.SourceData, Remark = stringBuilder.ToString() }; context.CapitalDetailInfo.Add(capitalDetailInfo1); CapitalInfo capitalInfo2 = capitalInfo; decimal? balance = capitalInfo2.Balance; decimal num2 = num; if (balance.HasValue) { nullable = new decimal?(balance.GetValueOrDefault() + num2); } else { nullable = null; } capitalInfo2.Balance = nullable; CapitalInfo capitalInfo3 = capitalInfo; decimal? chargeAmount = capitalInfo3.ChargeAmount; decimal num3 = num1; if (chargeAmount.HasValue) { nullable1 = new decimal?(chargeAmount.GetValueOrDefault() + num3); } else { nullable1 = null; } capitalInfo3.ChargeAmount = nullable1; CapitalInfo capitalInfo4 = capitalInfo; decimal? freezeAmount = capitalInfo4.FreezeAmount; decimal num4 = amount; if (freezeAmount.HasValue) { nullable2 = new decimal?(freezeAmount.GetValueOrDefault() + num4); } else { nullable2 = null; } capitalInfo4.FreezeAmount = nullable2; } context.SaveChanges(); }
public void AddCapital(CapitalDetailModel model) { Log.Debug("AddCapital:" + model.UserId); var capital = Context.CapitalInfo.FirstOrDefault(e => e.MemId == model.UserId); decimal balance = 0; decimal chargeAmount = 0; decimal freezeAmount = 0; StringBuilder strBuilder = new StringBuilder(); //备注、支付方式保存到remark strBuilder.Append(model.Remark); strBuilder.Append(" "); strBuilder.Append(model.PayWay); switch (model.SourceType) { case CapitalDetailInfo.CapitalDetailType.ChargeAmount: balance = chargeAmount = model.Amount; break; case CapitalDetailInfo.CapitalDetailType.WithDraw: freezeAmount = model.Amount; break; default: balance = model.Amount; break; } if (capital == null) { capital = new CapitalInfo { MemId = model.UserId, Balance = balance, ChargeAmount = chargeAmount, FreezeAmount = freezeAmount, Himall_CapitalDetail = new List <CapitalDetailInfo> { new CapitalDetailInfo { Id = CreateCode(model.SourceType), Amount = balance, CreateTime = DateTime.Parse(model.CreateTime), SourceType = model.SourceType, SourceData = model.SourceData, Remark = strBuilder.ToString() } } }; Context.CapitalInfo.Add(capital); } else { var capitalDetail = Context.CapitalDetailInfo.FirstOrDefault(e => e.Id == model.Id && e.Id != 0); if (capitalDetail == null) { capitalDetail = new CapitalDetailInfo() { Id = CreateCode(model.SourceType), Amount = model.Amount, CreateTime = DateTime.Parse(model.CreateTime), CapitalID = capital.Id, SourceType = model.SourceType, SourceData = model.SourceData, Remark = strBuilder.ToString() }; Context.CapitalDetailInfo.Add(capitalDetail); capital.Balance += balance; capital.ChargeAmount += chargeAmount; capital.FreezeAmount += freezeAmount; } } Context.SaveChanges(); }
/// <summary> /// 添加会员资产 /// </summary> /// <param name="capitalModel"></param> public static void AddCapital(CapitalDetailModel model) { _iMemberCapitalService.AddCapital(model); }
/// <summary> /// 添加会员资产 /// </summary> /// <param name="capitalModel"></param> public static void AddCapital(CapitalDetailModel model) { Service.AddCapital(model); }