Esempio n. 1
0
 public WalletRecord SetPayStatusOfFail(WalletRecord walletRecord, string failReason = null)
 {
     walletRecord.PayStatus  = PayStatus.Fail;
     walletRecord.FailReason = failReason;
     WalletRecordRepository.Update(walletRecord);
     CurrentUnitOfWork.SaveChanges();
     return(walletRecord);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
            }
        }