public bool Recharge(string typeCode, string userCode, decimal?money = 0, string storeCode = "") { IRechargeTypeService s = new RechargeTypeService(); IRecordsOfConsumptionService cs = new RecordsOfConsumptionService(); IUseWalletService us = new UseWalletService(); IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); var type = s.GetRechargeTypeByCode(typeCode); var explain = ""; decimal?donationAmount = 0; decimal?ratio = 0; if (money > 0 && type == null) { typeCode = "0"; ratio = 0; explain = "充值类型:任意金额,本金:" + money; } else { donationAmount = type.DonationAmount; money = type.Money; ratio = donationAmount / (money + donationAmount); explain = "充值类型" + type.RechargeTypeName + ",本金:" + money + ",赠送:+" + donationAmount; } UseWallet wallet = new UseWallet() { WalletCode = Guid.NewGuid().ToString(), UserCode = userCode, AccountPrincipal = money, DonationAmount = donationAmount, Ratio = decimal.Round(decimal.Parse(ratio.ToString()), 4).ToString(), Status = true, Sort = 1, IsMissionGiveaway = false }; using (var scope2 = new TransactionScope())//创建事务 { var fs = _financialStatementsService.getDataRechargeRecord(userCode, typeCode, wallet, storeCode, ratio, "微信"); LogHelper.WriteLog("报表表数据更新完成"); _financialStatementsService.Insert(fs); //钱包 us.InsertUseWallet(wallet); //消费记录 cs.InsertRecore(typeCode, userCode, decimal.Parse(money.ToString()), explain, null, null, null); scope2.Complete(); } //充值 //InsertRechargeRecord(record); return(true); }
public string PayOrder(string productCode, string userCode, string peopleCount, DateTime dateTime, decimal money, string storeId, string orderCode = "", string couponCode = "") { string msg = "SUCCEED"; IProductInfoService _productInfoService = new ProductInfoService(); DateTime now = DateTime.Now; ICouponService _couponService = new CouponService(); IOrderService _orderService = new OrderService(); IUserInfo _userService = new UserInfo(); IStoreService _storeService = new StoreService(); IUserStoreService _userStoreService = new UserStoreService(); IRecordsOfConsumptionService _recordsOfConsumption = new RecordsOfConsumptionService(); IUseWalletService _useWalletService = new UseWalletService(); IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); ICouponTypeService _couponTypeService = new CouponTypeService(); var u = _userService.GetUserByCode(userCode); var p = _productInfoService.GetProductInfo(productCode); var s = _storeService.GetStore(storeId); var uw = _useWalletService.GetUseWalletCountMoney(userCode); var accountPrincipal = _useWalletService.GetUseAccountPrincipalByUserCode(userCode); Order order = new Order(); order.Money = money; int ss = 0; if (int.TryParse(peopleCount, out ss)) { order.Number = ss; } order.PayTime = now; order.StoreCode = storeId; order.UserCode = userCode; order.ProductCode = productCode; order.CreateTime = now; order.ExperienceVoucherCode = couponCode; order.AppointmentTime = dateTime; order.WxPrepayId = string.Empty; financialStatements fs = _financialStatementsService.getData(userCode, order, "会员卡"); using (var scope = new TransactionScope())//创建事务 { if (!string.IsNullOrEmpty(orderCode)) { var temporder = _orderService.GetOrderByCode(orderCode); if (temporder != null && temporder.UserCode == userCode) { order.OrderCode = temporder.OrderCode; order.CreateTime = temporder.CreateTime; order.OrderNO = temporder.OrderNO; _orderService.UpdateOrder(order); msg = temporder.OrderCode; } else { if (string.IsNullOrEmpty(order.OrderCode)) { order.OrderCode = Guid.NewGuid().ToString(); order.OrderNO = WxPayApi.GenerateOutTradeNo().ToString(); orderCode = order.OrderCode; } msg = _orderService.InsertOrder(order); } } else { if (string.IsNullOrEmpty(order.OrderCode)) { order.OrderCode = Guid.NewGuid().ToString(); order.OrderNO = WxPayApi.GenerateOutTradeNo().ToString(); orderCode = order.OrderCode; } msg = _orderService.InsertOrder(order); } fs.OrderNo = order?.OrderNO; if (money == 0) { LogHelper.WriteLog("会员支付0元 " + money); LogHelper.WriteLog("couponCode " + couponCode); _couponService.UsedUpdate(couponCode, userCode, orderCode); LogHelper.WriteLog("financialStatements " + fs.Code); _financialStatementsService.Insert(fs); } else { LogHelper.WriteLog("couponCode " + couponCode); _couponService.UsedUpdate(couponCode, userCode, orderCode); LogHelper.WriteLog("会员支付金额 " + money); decimal?recordsaccountPrincipalTemp = 0m; _useWalletService.UpdateData(userCode, money, orderCode, out recordsaccountPrincipalTemp); LogHelper.WriteLog("会员支付金额 accountPrincipal " + accountPrincipal); LogHelper.WriteLog("会员支付金额 aecordsdonationAmountTemp " + recordsaccountPrincipalTemp); fs.UseWalletAccountPrincipal = accountPrincipal - recordsaccountPrincipalTemp; LogHelper.WriteLog("financialStatements " + fs.Code); _financialStatementsService.Insert(fs); } scope.Complete();//这是最后提交事务 } return(msg); }