⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exchangevalid.cs

📁 动易SiteFactory&#8482 网上商店系统1.0源代码
💻 CS
字号:
namespace PowerEasy.WebSite.Admin.User
{
    using PowerEasy.Accessories;
    using PowerEasy.Common;
    using PowerEasy.Components;
    using PowerEasy.Controls;
    using PowerEasy.Enumerations;
    using PowerEasy.Model.Accessories;
    using PowerEasy.Model.UserManage;
    using PowerEasy.UserManage;
    using PowerEasy.Web.UI;
    using PowerEasy.WebSite.Controls;
    using System;
    using System.Web.UI.WebControls;

    public class ExchangeValid : AdminPage
    {
        protected DropDownList DropValidUnit;
        protected Button EBtnSubmit;
        protected HiddenField HdnUsersId;
        protected Label LblTitle;
        protected Label LblValid;
        protected RadioButton RadValidType;
        protected RadioButton RadValidType2;
        protected ShowUserInfo showUserInfo;
        protected ExtendedSiteMapPath SmpNavigator;
        protected TextBox TxtMoney;
        protected TextBox TxtValidNum;
        protected RegularExpressionValidator ValeMoney;
        protected PowerEasy.Controls.RequiredFieldValidator ValrMoney;

        private static DateTime? CalculationDate(double days, int validNum, UserInfo userInfo)
        {
            if ((days - validNum) > 0.0)
            {
                userInfo.EndTime = new DateTime?(userInfo.EndTime.Value.AddDays((double) validNum));
            }
            else
            {
                userInfo.EndTime = new DateTime?(DateTime.MaxValue);
            }
            return userInfo.EndTime;
        }

        protected void EBtnSubmit_Click(object sender, EventArgs e)
        {
            int userId = DataConverter.CLng(this.HdnUsersId.Value);
            decimal balance = DataConverter.CDecimal(this.TxtMoney.Text);
            int months = DataConverter.CLng(this.TxtValidNum.Text.Trim());
            int validUnit = DataConverter.CLng(this.DropValidUnit.SelectedValue);
            if (this.RadValidType.Checked && ((months <= 0) || (months > 0x270f)))
            {
                AdminPage.WriteErrMsg("<li>指定期限必须为数字并且必须大于0小于9999!</li>");
            }
            UserInfo userById = Users.GetUserById(userId);
            if (userById.IsNull)
            {
                AdminPage.WriteErrMsg("<li>该会员不存在!</li>");
            }
            if (userById.Balance < balance)
            {
                AdminPage.WriteErrMsg("<li>该会员的余额不足此次兑换!</li>");
            }
            if (this.RadValidType.Checked)
            {
                if (!userById.EndTime.HasValue)
                {
                    switch (validUnit)
                    {
                        case 1:
                            userById.EndTime = new DateTime?(DateTime.Now.AddDays((double) months));
                            goto Label_0150;

                        case 2:
                            userById.EndTime = new DateTime?(DateTime.Now.AddMonths(months));
                            goto Label_0150;

                        case 3:
                            userById.EndTime = new DateTime?(DateTime.Now.AddYears(months));
                            goto Label_0150;
                    }
                }
                else
                {
                    SetValid(months, validUnit, userById);
                }
            }
            else
            {
                userById.EndTime = new DateTime?(DateTime.MaxValue);
            }
        Label_0150:
            userById.Balance -= balance;
            if (Users.Update(userById))
            {
                this.SaveBankrollItemInfo(balance, userById);
                this.SaveUserValid(balance, months, userById);
                AdminPage.WriteSuccessMsg("<li>会员有效期兑换成功!</li>", "UserShow.aspx?UserID=" + userId.ToString());
            }
            else
            {
                AdminPage.WriteErrMsg("<li>会员有效期兑换失败!</li>");
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!base.IsPostBack)
            {
                this.HdnUsersId.Value = BasePage.RequestInt32("UserID").ToString();
            }
        }

        private void SaveBankrollItemInfo(decimal balance, UserInfo userInfo)
        {
            BankrollItemInfo bankrollItemInfo = new BankrollItemInfo();
            bankrollItemInfo.UserName = userInfo.UserName;
            bankrollItemInfo.MoneyType = 4;
            bankrollItemInfo.CurrencyType = 3;
            bankrollItemInfo.DateAndTime = new DateTime?(DateTime.Now);
            bankrollItemInfo.Inputer = PEContext.Current.Admin.AdminName;
            bankrollItemInfo.Bank = "";
            bankrollItemInfo.ClientName = "";
            bankrollItemInfo.IP = PEContext.Current.UserHostAddress;
            bankrollItemInfo.LogTime = new DateTime?(DateTime.Now);
            bankrollItemInfo.Money = decimal.op_UnaryNegation(balance);
            bankrollItemInfo.Remark = string.Concat(new object[] { "消费", balance, "资金,有效期截至日期为", userInfo.EndTime.Value.ToString() });
            bankrollItemInfo.Status = BankrollItemStatus.Confirm;
            BankrollItem.Add(bankrollItemInfo);
        }

        private void SaveUserValid(decimal balance, int validNum, UserInfo userInfo)
        {
            UserValidLogInfo userValidLogInfo = new UserValidLogInfo();
            userValidLogInfo.Inputer = PEContext.Current.Admin.AdminName;
            userValidLogInfo.IP = PEContext.Current.UserHostAddress;
            userValidLogInfo.UserName = userInfo.UserName;
            userValidLogInfo.LogTime = DateTime.Now;
            userValidLogInfo.Remark = string.Concat(new object[] { "消费", balance, "资金,有效期截至日期为", userInfo.EndTime.Value.ToString() });
            userValidLogInfo.IncomePayout = 1;
            userValidLogInfo.ValidNum = validNum;
            UserValidLog.Add(userValidLogInfo);
        }

        private static void SetValid(int validNum, int validUnit, UserInfo userInfo)
        {
            TimeSpan span = (TimeSpan) (DateTime.MaxValue - userInfo.EndTime.Value);
            switch (validUnit)
            {
                case 1:
                    userInfo.EndTime = CalculationDate(span.TotalDays, validNum, userInfo);
                    return;

                case 2:
                    userInfo.EndTime = CalculationDate(span.TotalDays * 30.0, validNum, userInfo);
                    return;

                case 3:
                    userInfo.EndTime = CalculationDate(span.TotalDays * 365.0, validNum, userInfo);
                    return;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -