/// <summary> /// Cancel the order by operator /// </summary> /// <param name="id">The order's id</param> /// <returns></returns> public ActionResult CancelOrder(int id) { OrderItem oi = OrderManager.GetOrderInfo(id); if (oi == null) { return(Content("error-order no found!")); } if (oi.Status == OrderStatus.Cancel || oi.Status == OrderStatus.Received) { return(Content(WebResult <string> .NormalErrorResult.ResponseString)); } SolemartUser user = SolemartUserCache.GetUser(oi.UserID); if (OrderManager.CancelOrder(oi.OrderID)) { //由于退货,扣除积分 if (!user.IsAnonymous) { user.TakeOffPoint((int)oi.TotalPrice); } return(Content(WebResult <string> .SuccessResult.ResponseString)); } return(Content(WebResult <string> .NormalErrorResult.ResponseString)); }
/// <summary>用户写产品评论的处理 /// </summary> /// <param name="id">要编写评论的产品ID</param> /// <returns>编写评论的结果View</returns> public ActionResult PostComment(int id) { string content = Request["cnt"]; int level = 5; SolemartUser user = Session["user"] as SolemartUser; //if (user == null || user == MyUser.Anonymous) { // Response.Write("/login.aspx?ReturnUrl=" + Server.UrlEncode("/p/pd.aspx?pid=") + CurrentProduct.ProductID); //} if (Request["level"] == null || !int.TryParse(Request["level"], out level)) { return(Content("error")); } SaledProductItem CurrentProduct = ProductManager.GetSaledProductByID(id); if (ProductManager.CommentProduct(user.UserID, CurrentProduct.ProductID, (EvaluteGrade)level, content)) { var comm_json = new { Name = user.UserName, Time = DateTime.Now.ToLongDateString(), Level = level, Content = content, IsSuccess = true }; return(Json(comm_json)); } else { return(Json(new { IsSuccess = false, Message = "error" })); } }
public ActionResult ModifyBirthDay(DateTime birthDay) { SolemartUser user = User as SolemartUser; user.SetBirthDay(birthDay); return(Content(WebResult <string> .SuccessResult.ResponseString)); }
/// <summary>用户修改密码操作 /// </summary> private ActionResult ModifyPassword(string oldpwd, string newpwd) { SolemartUser user = User as SolemartUser; user.ChangePassword(newpwd, oldpwd); return(Content(WebResult <string> .SuccessResult.ResponseString)); }
/// <summary> /// Modify the user's information /// </summary> /// <param name="id">要修改的类型</param> /// <param name="newVal">the new value</param> /// <returns>修改结果的View</returns> public ActionResult Modify(string id, string newVal) { SolemartUser user = User as SolemartUser; switch (id) { case "UserName": user.SetUserName(newVal); break; case "Sex": int sex = int.Parse(newVal); user.SetSex((Sex)sex); break; case "Phone": user.SetPhone(newVal); break; case "Email": user.SetEmail(newVal); break; case "Address": user.SetAddress(newVal); break; } return(Content(WebResult <string> .SuccessResult.ResponseString)); }
/// <summary>用户请求收藏页的处理 /// </summary> /// <returns>用户收藏页面的视图</returns> public ActionResult Favorite() { SolemartUser user = User as SolemartUser; //IList<FavoriteItem> MyFavorites = UserManager.GetUserFavoriteList(user.UserID); return(View("")); }
/// <summary>用户请求进行结帐的处理 /// </summary> /// <returns>用户进行结帐的视图</returns> public ActionResult CheckOut() { SolemartUser user = User as SolemartUser; if (user.Cart.CartItems == null || user.Cart.CartItems.Count == 0) { return(RedirectToAction("", "Home")); } return(View(user.Cart)); }
public ActionResult SaveAddrInfo(SendAddressItem addrInfo) { SolemartUser user = User as SolemartUser; addrInfo.DeliverWay = DeliverWay.ByManual; addrInfo.UserID = user.UserID; user.SendAddressInfo = addrInfo; return(Content(WebResult <string> .SuccessResult.ResponseString)); }
/// <summary>用户加入购物车操作 /// </summary> /// <param name="id">加入购物车的物品ID</param> /// <returns>加入购物车后的View</returns> public ActionResult TotalAmount() { SolemartUser user = this.User as SolemartUser; //商品添加到购物车中(购物车显示商品的信息) decimal totalAmount = (int)user.Cart.CartItems.Sum(i => (i.Amount * i.UnitPrice)); string resultData = JsonConvert.SerializeObject((new { TotalAmount = totalAmount.ToString("c") })); return(Content((new WebResult <string> { ResultCode = WebResultCode.Success, ResultData = resultData }).ResponseString)); }
/// <summary> /// </summary> public ActionResult OnQQLogin() { string nickname = Request["nickname"]; string openid = Request["openid"]; if (openid == null || openid == "") { return(Content("error")); } UserItem user = UserManager.OnQQLogin(openid, nickname); if (user != null) { if (Session["user"] == null) { Session.Add("user", user); } else { SolemartUser preuser = Session["user"] as SolemartUser; if (preuser.UserID != user.UserID) { Session["user"] = user; } } DateTime expire_time = DateTime.Now.AddYears(1); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, "QQ&" + openid, DateTime.Now, expire_time, true, "member"); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)); cookie.Expires = expire_time; Response.Cookies.Add(cookie); } if (user != null) { string redirect_url = FormsAuthentication.GetRedirectUrl("QQ@" + openid, true); if (redirect_url == null || redirect_url == "") { redirect_url = "/"; } return(Content(redirect_url)); } else { return(Content("error")); } }
/// <summary>判断当前用户是否是注册用户的处理 /// </summary> /// <returns>判断当前用户是否是注册用户的结果:ok - 是注册用户, error - 是匿名用户</returns> public ActionResult IsAuthenticate() { SolemartUser user = Session["user"] as SolemartUser; if (user != null && !user.IsAnonymous) { return(Content("ok")); } else { return(Content("error")); } }
public ActionResult Info() { SolemartUser user = User as SolemartUser; string imgUrl = "/Images/common/anonymous_header_image_small.jpg"; if (!string.IsNullOrEmpty(user.HeaderImageUrl)) { imgUrl = user.HeaderImageUrl; } var userInfo = new { UserName = user.UserName, HeadImage = imgUrl, Point = user.PointAmount }; return(Json(userInfo, JsonRequestBehavior.AllowGet)); }
/// <summary>用户提出新建议的处理 /// </summary> /// <returns>返回处理结果</returns> public ActionResult NewAdvise() { string content = Request["content"]; SolemartUser user = User as SolemartUser; if (AdviseManager.NewAdvise(user.UserID, content)) { return(Content("ok")); } else { return(Content("error")); } }
/// <summary> /// 用户直接登陆系统(已经是系统的用户) /// </summary> /// <param name="user"></param> public static void Login(SolemartUser user) { if (user == null) { return; } FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.UserName, DateTime.Now, DateTime.Now.AddMinutes(30), false, user.UserID.ToString()); string encTicket = FormsAuthentication.Encrypt(ticket); HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); HttpContext.Current.Response.Cookies.Add(authCookie); HttpContext.Current.User = user; }
/// <summary> /// Login util for the user with id(used for weixin client). /// </summary> /// <param name="openID">The user's openID of weixin.</param> /// <remarks> /// /// </remarks> public static void WeixinLogin(string accessToken, string openID) { SolemartUser user = new SolemartUser(openID, LoginType.Weixin); if (string.IsNullOrEmpty(user.UserName)) { OAuthUserInfo userInfo = OAuthApi.GetUserInfo(accessToken, openID); user.SetUserName(userInfo.nickname); user.SetHeadImage(userInfo.headimgurl); } Log.Instance.WriteLog(string.Format("AccountUtil::WeixinLogin userid[{0}], username[{1}]", user.UserID, user.UserName)); //use Login to make user session. Login(user); }
public ActionResult AddToFovarite(int productID) { SolemartUser user = User as SolemartUser; SaledProductItem CurrentProduct = ProductManager.GetSaledProductByID(productID); if (user != null && !user.IsAnonymous && CurrentProduct != null) { if (UserManager.AddNewFavorite(user.UserID, CurrentProduct.ProductID)) { return(Content("ok")); } } return(Content("error")); }
/// <summary> /// The user view the orders /// </summary> /// <returns>用户的订单页面视图</returns> public ActionResult Order(int?p) { SolemartUser user = User as SolemartUser; int pageIndex = p ?? 0; int totalCount = 0; List <OrderItem> MyOrders = OrderManager.GetPagedUserOrder(user.UserID, pageIndex, 10, out totalCount); OrderListViewModel model = new OrderListViewModel(); model.PageIndex = pageIndex; model.TotalPageCount = (totalCount + 9) / 10; model.OrderList = MyOrders; return(View(model)); }
public static void Logout() { SolemartUser user = HttpContext.Current.User as SolemartUser; if (user != null) { HttpCookie authCookie = HttpContext.Current.Request.Cookies.Get(FormsAuthentication.FormsCookieName); if (authCookie != null) { authCookie.Expires = DateTime.Now.AddYears(-1); HttpContext.Current.Response.Cookies.Add(authCookie); } HttpContext.Current.Session.Abandon(); FormsAuthentication.SignOut(); } }
void Session_End(object sender, EventArgs e) { // Code that runs when a session ends. // Note: The Session_End event is raised only when the sessionstate mode // is set to InProc in the Web.config file. If session mode is set to StateServer // or SQLServer, the event is not raised. //初始化会话用户的购物车对象 //如果用户之前有未处理的购物车的商品项 SolemartUser user = HttpContext.Current.User as SolemartUser; if (user.Cart.CartItems.Count > 0) { user.SaveCart(); } AccountUtil.Logout(); }
/// <summary> /// 用户通过Email和密码登陆系统 /// </summary> /// <param name="email"></param> /// <param name="pwdmd5"></param> /// <param name="isPersist"></param> public static bool Login(string email, string pwd, bool isPersist) { HttpContext ctx = HttpContext.Current; SolemartUser user = UserManager.OnLogin(email, pwd); if (user != null) { FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, "LC@" + email, DateTime.Now, DateTime.Now.AddMinutes(30), isPersist, user.UserID.ToString()); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)); if (isPersist) { cookie.Expires = DateTime.Now.AddYears(1); } ctx.User = user; ctx.Response.Cookies.Add(cookie); return(true); } return(false); }
/// <summary> /// The user comment the product /// </summary> /// <param name="id">要评论的商品的ID</param> /// <returns>评论结果</returns> public ActionResult MakeComment(int id) { SaledProductItem CurrentProduct = ProductManager.GetSaledProductByID(id); string content = Request["cnt"]; int level = 5; if (Request["level"] == null || !int.TryParse(Request["level"], out level) || CurrentProduct == null) { return(Content("error")); } SolemartUser user = User as SolemartUser; if (ProductManager.CommentProduct(user.UserID, CurrentProduct.ProductID, (EvaluteGrade)level, content)) { var comm_json = new { Name = user.UserName, Time = DateTime.Now.ToLongDateString(), Level = level, Content = content }; return(Json(comm_json)); } else { return(Content("error")); } }
/// <summary>用户加入购物车操作 /// </summary> /// <param name="id">加入购物车的物品ID</param> /// <returns>加入购物车后的View</returns> public ActionResult Add(int id) { SolemartUser user = this.User as SolemartUser; //商品添加到购物车中(购物车显示商品的信息) ProductItem product = ProductManager.GetProductByID(id); user.Cart.AddToCart(product, 1); decimal totalAmount = (int)user.Cart.CartItems.Sum(i => (i.Amount * i.UnitPrice)); CartItem cartItem = user.Cart.CartItems.FirstOrDefault(i => i.ProductID == id); decimal theCount = 0; decimal theAmount = 0M; if (cartItem != null) { theCount = cartItem.Amount; theAmount = cartItem.Amount * cartItem.UnitPrice; } string theCountString = string.Empty; if (product.Unit == "斤") { theCountString = theCount.ToString(); } else { theCountString = string.Format("{0:d}", (int)theCount); } string resultData = JsonConvert.SerializeObject((new { TotalAmount = totalAmount.ToString("c"), TheCount = theCountString, TheAmount = theAmount.ToString("c") })); return(Content((new WebResult <string> { ResultCode = WebResultCode.Success, ResultData = resultData }).ResponseString)); }
/// <summary>用户修改购物车操作 /// </summary> /// <param name="id">要修改的购物车的物品ID</param> /// <returns>修改后返回的View</returns> public ActionResult Modify(int id, decimal amount) { SolemartUser user = this.User as SolemartUser; if (user.Cart.ModifyCartItem(id, amount)) { decimal totalAmount = (int)user.Cart.CartItems.Sum(i => (i.Amount * i.UnitPrice)); ProductItem product = ProductManager.GetProductByID(id); decimal theCount = 0; decimal theAmount = 0M; if (amount > 0) { CartItem cartItem = user.Cart.CartItems.FirstOrDefault(i => i.ProductID == id); theCount = cartItem.Amount; theAmount = cartItem.Amount * cartItem.UnitPrice; } string theCountString = string.Empty; if (product.Unit == "斤") { theCountString = theCount.ToString(); } else { theCountString = string.Format("{0:d}", (int)theCount); } string resultData = JsonConvert.SerializeObject((new { TotalAmount = totalAmount.ToString("c"), TheCount = theCountString, TheAmount = theAmount.ToString("c") })); return(Content((new WebResult <string> { ResultCode = WebResultCode.Success, ResultData = resultData }).ResponseString)); } return(Content(WebResult <string> .NormalErrorResult.ResponseString)); }
public ActionResult CheckoutOrder(SendAddressItem addrInfo, string remark) { SolemartUser user = User as SolemartUser; if (string.IsNullOrWhiteSpace(addrInfo.Address) || string.IsNullOrWhiteSpace(addrInfo.Phone)) { return(Content(WebResult <string> .IncompleteInputResult.ResponseString)); } addrInfo.DeliverWay = DeliverWay.ByManual; addrInfo.UserID = user.UserID; user.SendAddressInfo = addrInfo; if (user.Cart.CartItems.Count == 0) { return(Content(WebResult <string> .ParameterErrorResult.ResponseString)); } OrderItem oi = new OrderItem(); if (user.IsAnonymous) { oi.UserID = SolemartUser.DefaultAnonymousUserID; } else { oi.UserID = user.UserID; } oi.Receiver = addrInfo.Receiver; oi.Phone = addrInfo.Phone; oi.PaymentType = addrInfo.PaymentType; oi.PostCode = addrInfo.PostCode; oi.Address = addrInfo.Address; oi.DeliverWay = addrInfo.DeliverWay; oi.TotalPrice = user.Cart.TotalPrice; oi.Remark = remark; foreach (CartItem item in user.Cart.CartItems) { oi.OrderDetails.Add(new OrderDetailItem { ProductID = item.ProductID, Amount = item.Amount, UnitPrice = item.UnitPrice }); } if (!OrderManager.NewOrder(oi)) { return(Content("error")); } //Clear the user's cart. //user.ClearCart(); //新订单产生后,刷新最受欢迎的产品列表 //ProductManager.RefleshMostPopularProducts(); if (oi.OrderID > 0) { // 已进入订单后,临时购物车上物品需要清除 user.Cart.ClearAndSave(user.UserID); //先保存用户的积分(目前的积分按购物的价格计算)。 if (!user.IsAnonymous) { user.AddPoint((int)oi.TotalPrice); } #if false //支付宝暂时不支持 if (oi.PaymentType == PaymentType.OnLine) { #region 填写支付宝参数 //支付类型 string payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 //string notify_url = "http://www.solemart.com/Cart/CheckOutComplete/"+orderid; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 string return_url = ConfigurationManager.AppSettings["website"] + "Cart/CheckOutComplete/" + oi.OrderID; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ //卖家支付宝帐户 string seller_email = "18065911899"; //必填 //商户订单号 string out_trade_no = oi.OrderID.ToString("000000"); //商户网站订单系统中唯一订单号,必填 //订单名称 string subject = "叟玛特订单"; //必填 //付款金额 string price = oi.TotalPrice.ToString("#0.00"); //必填 //商品数量 string quantity = "1"; //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品 //物流费用 string logistics_fee = "0.00"; //必填,即运费 //物流类型 string logistics_type = "EXPRESS"; //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS) //物流支付方式 string logistics_payment = "SELLER_PAY"; //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) //订单描述 //string body = ""; //商品展示地址 //string show_url = ""; //需以http://开头的完整路径,如:http://www.Solemart.com/myorder.html //收货人姓名 string receive_name = oi.Receiver; //如:张三 //收货人地址 string receive_address = oi.Address; //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号 //收货人邮编 string receive_zip = oi.PostCode == null ? "350600" : oi.PostCode; //如:123456 //收货人电话号码 string receive_phone = oi.Phone; //如:0571-88158090 //收货人手机号码 string receive_mobile = oi.Phone; //如:13312341234 //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组 SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>(); sParaTemp.Add("partner", Config.Partner); sParaTemp.Add("_input_charset", Config.Input_charset.ToLower()); sParaTemp.Add("service", "trade_create_by_buyer"); sParaTemp.Add("payment_type", payment_type); //sParaTemp.Add("notify_url", notify_url); sParaTemp.Add("return_url", return_url); sParaTemp.Add("seller_email", seller_email); sParaTemp.Add("out_trade_no", out_trade_no); sParaTemp.Add("subject", subject); sParaTemp.Add("price", price); sParaTemp.Add("quantity", quantity); sParaTemp.Add("logistics_fee", logistics_fee); sParaTemp.Add("logistics_type", logistics_type); sParaTemp.Add("logistics_payment", logistics_payment); //sParaTemp.Add("body", body); sParaTemp.Add("receive_name", receive_name); sParaTemp.Add("receive_address", receive_address); sParaTemp.Add("receive_zip", receive_zip); sParaTemp.Add("receive_phone", receive_phone); sParaTemp.Add("receive_mobile", receive_mobile); #endregion //建立请求 string sHtmlText = Submit.BuildRequest(sParaTemp, "get", "确认"); return(Content("ok-alipay-" + sHtmlText)); } else { return(Content("ok-" + oi.OrderID)); } } else { #endif return(Content(new WebResult <string> { ResultCode = WebResultCode.Success, ResultData = oi.OrderID.ToString() }.ResponseString)); }
/// <summary> /// Display the product list. /// </summary> public ActionResult Index(int?p, string code) { Stopwatch watch = new Stopwatch(); watch.Start(); ProductListViewModel model = null; if (this.HttpContext.Cache["index_model"] != null) { model = HttpRuntime.Cache["index_model"] as ProductListViewModel; } else { int pi = p ?? 0; //表示页索引 int totalPageCount = 0; List <SaledProductItem> products = ProductManager.GetPagedSaledProducts(pi, 50, out totalPageCount); model = new ProductListViewModel(); model.PageIndex = pi; model.TotalPageCount = totalPageCount; foreach (SaledProductItem product in products) { ProductForListViewModel pmodel = new ProductForListViewModel(); ProductItem productItem = product.Product; ProductImageItem imageItem = ProductManager.GetProductLogoImage(product.ProductID); pmodel.ProductID = product.ProductID; pmodel.ProductName = product.Product.ProductName; pmodel.Price = product.Price; pmodel.Discount = product.Discount; pmodel.IsSpecial = product.SpecialFlag; pmodel.Specification = product.Product.Specification; pmodel.Unit = product.Product.Unit; pmodel.IsOutOfStock = (product.Product.StockCount - product.Product.ReserveCount) == 0; pmodel.ProductImageName = productItem.ProductName; if (imageItem != null) { pmodel.ProductImageUrl = imageItem.ImageUrl; } else { pmodel.ProductImageUrl = "no-img.png"; } //如果是推荐销售物品,就放置在推荐销售列表 if (product.SetTop) { model.TopSaledProductList.Add(pmodel); } else { model.NormalProductList.Add(pmodel); } } HttpRuntime.Cache.Add("index_model", model, null, DateTime.Now.AddSeconds(600), TimeSpan.Zero, CacheItemPriority.Default, null); } watch.Stop(); Log.Instance.WriteLog(string.Format("Index log for time[{0}]", watch.ElapsedMilliseconds)); SolemartUser user = User as SolemartUser; //之前没有访问过 if (!string.IsNullOrEmpty(code) && !user.IsLoginWeixin) { Log.Instance.WriteLog(string.Format("Request from weixin, code[{0}]", code)); OAuthAccessTokenResult ret = OAuthApi.GetAccessToken(ConfigSettings.WeixinAppID, ConfigSettings.WeixinAppSecret, code); Log.Instance.WriteLog(string.Format("Reqeust GetAccessToken return[errcode[{0}], openid[{1}]]", ret.errcode, ret.openid)); if (ret.errcode == WeixinReturnCode.Success) { AccountUtil.WeixinLogin(ret.access_token, ret.openid); } } return(View(model)); }
// // GET: /Account/ public ActionResult Index() { SolemartUser user = User as SolemartUser; return(View(user)); }
// // GET: /Cart/ public ActionResult Index() { SolemartUser user = this.User as SolemartUser; return(View(user.Cart)); }