public WalletRecord SetPayStatusOfSuccess(WalletRecord walletRecord) { walletRecord.PayStatus = PayStatus.Success; walletRecord.PayDateTime = DateTime.Now; Wallet wallet = GetWalletOfUser(walletRecord.GetUserIdentifier()); if (walletRecord.Type == WalletRecordType.Recharge) { wallet.Money += walletRecord.Money; } WalletRepository.Update(wallet); WalletRecordRepository.Update(walletRecord); CurrentUnitOfWork.SaveChanges(); return(walletRecord); }
public WalletRecord WithdrawNotify(WalletRecord walletRecord, bool success, string failReason = null) { using (CurrentUnitOfWork.SetTenantId(walletRecord.TenantId)) { string openid = WechatUserManager.GetOpenid(walletRecord.GetUserIdentifier()); User user = walletRecord.User; if (user == null) { user = UserRepository.Get(walletRecord.UserId); } if (success) { walletRecord.FetchStatus = FetchStatus.Success; walletRecord.FailReason = ""; WalletRecordRepository.Update(walletRecord); CurrentUnitOfWork.SaveChanges(); if (!string.IsNullOrEmpty(openid)) { Task.Run(async() => { WalletWithdrawTemplateMessageData data = new WalletWithdrawTemplateMessageData( new TemplateDataItem(L("WithdrawSuccessfully")), new TemplateDataItem(user.NickName), new TemplateDataItem((-walletRecord.Money).ToString()), new TemplateDataItem(L("ThankYouForYourPatronage")) ); await TemplateMessageManager.SendTemplateMessageOfWalletWithdrawAsync(walletRecord.TenantId, openid, null, data); }); } } else { if (string.IsNullOrEmpty(failReason)) { failReason = L("UnKnowFail"); } walletRecord.FetchStatus = FetchStatus.Fail; walletRecord.FailReason = failReason; WalletRecordRepository.Update(walletRecord); CurrentUnitOfWork.SaveChanges(); if (!string.IsNullOrEmpty(openid)) { Task.Run(async() => { WalletWithdrawTemplateMessageData data = new WalletWithdrawTemplateMessageData( new TemplateDataItem(L("WithdrawFailed") + ":" + failReason), new TemplateDataItem(user.NickName), new TemplateDataItem((-walletRecord.Money).ToString()), new TemplateDataItem(L("ThankYouForYourPatronage")) ); await TemplateMessageManager.SendTemplateMessageOfWalletWithdrawAsync(walletRecord.TenantId, openid, null, data); }); } } return(walletRecord); } }