package com.cqjtu.lexian.controller.web;
import com.cqjtu.lexian.domain.*;
import com.cqjtu.lexian.exception.CustomerServiceException;
import com.cqjtu.lexian.service.CustomerService;
import com.cqjtu.lexian.service.GoodsService;
import com.cqjtu.lexian.service.OrderService;
import com.cqjtu.lexian.util.ImageUtil;
import com.cqjtu.lexian.util.ServletUtil;
import org.apache.log4j.Logger;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.datetime.DateFormatter;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* CustomerController 顾客控制器
*
* @author suwen
*/
@RestController
public class CustomerController {
@Autowired private CustomerService customerService;
@Autowired private OrderService orderService;
@Autowired private GoodsService goodsService;
// 记住密码自动登录的cookie最大生命时长
private final int UPCOOKIELIFE = 60 * 60 * 24 * 3;
// 修改密码验证码Cookie最大生命时长
private final int MODIFYPSWCOOKIELIFE = 60 * 10;
/** 编码 UTF-8 */
private final String ENCODING = "utf-8";
@InitBinder
public void intDate(WebDataBinder dataBinder) {
dataBinder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
}
/**
* 顾客注册
*
* @param customer 顾客信息
*/
@RequestMapping(
value = "/customerRegister",
method = {RequestMethod.POST})
public void register(
Customer customer, HttpServletRequest request, HttpServletResponse response) {
try {
try {
customerService.register(customer);
} catch (CustomerServiceException e) {
switch (e.getErrorCode()) {
case 0:
request.setAttribute("registerFail", "邮箱不存在");
request
.getRequestDispatcher("/page/foreground/user/Register.jsp")
.forward(request, response);
return;
case 1:
request.setAttribute("registerFail", "此用户名已被注册");
request
.getRequestDispatcher("/page/foreground/user/Register.jsp")
.forward(request, response);
return;
case 2:
request.setAttribute("registerFail", "服务器内部错误");
request
.getRequestDispatcher("/page/foreground/user/Register.jsp")
.forward(request, response);
default:
break;
}
}
request.getRequestDispatcher("/page/foreground/user/Login.jsp").forward(request, response);
return;
} catch (IOException | ServletException e) {
e.printStackTrace();
}
}
/**
* 顾客登录
*
* @param username 用户名
* @param password 密码
* @param rempsw 记住密码
* @param autoLogin 自动登录
* @return 登录成功返回个人中心页面,登录失败返回登录页面,并显示失败信息
*/
@RequestMapping(
value = "/customerLogin",
method = {RequestMethod.GET, RequestMethod.POST})
public void login(
HttpSession session,
HttpServletRequest request,
HttpServletResponse response,
String username,
String password,
String verification,
String rempsw,
String autoLogin)
throws ServletException, IOException {
Customer getCustomer = null;
// 校验验证码
// 调试关闭验证码
/* Object verifyCode = request.getSession().getAttribute("imageCode");
if (verification == null || !verification.equals(verifyCode)) {
request.setAttribute("verifyWrong", "验证码错误");
request.getRequestDispatcher("/page/foreground/user/Login.jsp").forward(request, response);
return;
}*/
// 封装数据
Customer customer = new Customer();
customer.setUsername(username);
customer.setPassword(password);
try {
// 登录事务
getCustomer = customerService.login(customer);
session.setAttribute("customer", getCustomer);
Cookie remPswCookie = null;
Cookie autoLoginCookie = null;
// 记住密码
if ("1".equals(rempsw)) {
remPswCookie = new Cookie("remPsw", "true");
remPswCookie.setMaxAge(UPCOOKIELIFE);
response.addCookie(remPswCookie);
} else { // 没有选择记住密码则把记住密码的Cookie删除
Cookie cookie = ServletUtil.getCookieByName(request.getCookies(), "remPsw");
if (cookie != null) {
cookie.setMaxAge(0);
}
}
// 自动登录
if ("1".equals(autoLogin)) {
autoLoginCookie = new Cookie("autoLogin", "true");
autoLoginCookie.setMaxAge(UPCOOKIELIFE);
response.addCookie(autoLoginCookie);
} else { // 没有选择自动登录,则把自动登录的Cookie删除
Cookie cookie = ServletUtil.getCookieByName(request.getCookies(), "autoLogin");
if (cookie != null) {
cookie.setMaxAge(0);
}
}
if (remPswCookie != null || autoLoginCookie != null) {
Cookie usernameCookie = new Cookie("username", username);
Cookie passwordCookie = new Cookie("password", password);
usernameCookie.setMaxAge(UPCOOKIELIFE);
passwordCookie.setMaxAge(UPCOOKIELIFE);
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
}
} catch (CustomerServiceException cse) {
switch (cse.getErrorCode()) {
case 0:
// 用户不存在
request.setAttribute("usernameWrong", "此用户名不存在");
request
.getRequestDispatcher("/page/foreground/user/Login.jsp")
.forward(request, response);
return;
case 1:
// 密码错误
request.setAttribute("passwordWrong", "密码错误");
request
.getRequestDispatcher("/page/foreground/user/Login.jsp")
.forward(request, response);
return;
case 2:
// 顾客帐号被禁用
request.setAttribute("loginFail", "您的帐号已被禁用");
request
.getRequestDispatcher("/page/foreground/user/Login.jsp")
.forward(request, response);
return;
case 3: // 数据访问错误
case 4: // 其他异常
request.setAttribute("loginFail", "服务器内部错误");
request
.getRequestDispatcher("/page/foreground/user/Login.jsp")
.forward(request, response);
return;
default:
break;
}
}
// 将存在Cookie中的浏览记录转储到数据库
List<BrowseRecord> browseRecords = (List<BrowseRecord>) session.getAttribute("browsedGoods");
if (browseRecords != null) {
for (BrowseRecord each : browseRecords) {
customerService.browseGoods(getCustomer, each.getGoods(), each.getTime());
}
// 清除
session.removeAttribute("browsedGoods");
}
response.sendRedirect("/page/foreground/user/UserCenter.jsp");
}
/** 退出登录 */
@RequestMapping(
value = "/logout",
method = {RequestMethod.GET})
public void logout(HttpServletRequest request, HttpServletResponse response) {
request.getSession().removeAttribute("customer");
try {
requ
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于Java springboot的B2C电子商务平台.zip (2000个子文件)
controller.ashx 3KB
ASPJson.class.asp 9KB
Uploader.Class.asp 6KB
MultiformProcessor.class.asp 4KB
PathFormatter.class.asp 3KB
action_list.asp 2KB
controller.asp 1KB
action_upload.asp 896B
action_crawler.asp 828B
config_loader.asp 543B
action_config.asp 161B
Web.config 453B
UploadHandler.cs 5KB
CrawlerHandler.cs 3KB
ListFileHandler.cs 3KB
PathFormater.cs 2KB
Handler.cs 1KB
Config.cs 1KB
NotSupportedHandler.cs 455B
ConfigHandler.cs 332B
amazeui.flat.css 339KB
amazeui.css 338KB
ace.min.css 311KB
amazeui.flat.min.css 242KB
amazeui.min.css 241KB
bootstrap.css 151KB
bootstrap.min.css 94KB
style.css 66KB
easyui.css 60KB
hmstyle.css 59KB
ueditor.css 43KB
font-awesome-ie7.min.css 37KB
ace-rtl.min.css 36KB
font-awesome.css 34KB
ueditor.min.css 34KB
font-awesome.min.css 28KB
ace-skins.min.css 26KB
bootstrap-theme.css 26KB
jquery-ui-1.10.3.full.min.css 24KB
style.css 23KB
video-js.css 22KB
font-awesome.min.css 22KB
bootstrap-editable.css 21KB
select2.css 19KB
image.css 18KB
demo.css 17KB
video.css 15KB
layer.css 14KB
attachment.css 14KB
ui.jqgrid.css 14KB
chosen.css 14KB
personal.css 14KB
webuploader.css 14KB
icheck.css 13KB
systyle.css 13KB
jsstyle.css 12KB
dropzone.css 12KB
fullcalendar.css 11KB
video-js.min.css 11KB
datepicker.css 10KB
orstyle.css 10KB
infstyle.css 10KB
seastyle.css 9KB
cartstyle.css 9KB
codemirror.css 8KB
echartsHome.css 8KB
product.css 7KB
zTreeStyle.css 7KB
shCoreDefault.css 7KB
laydate.css 7KB
ace-ie.min.css 7KB
dlstyle.css 6KB
optstyle.css 6KB
amazeui.datetimepicker.css 6KB
admin.css 5KB
footstyle.css 5KB
daterangepicker.css 5KB
datepicker-dev.css 5KB
addstyle.css 5KB
colorbox.css 5KB
scrawl.css 5KB
colstyle.css 4KB
datepicker.css 4KB
login.css 4KB
laydate.css 4KB
laydate.css 4KB
laydate.css 4KB
main.css 4KB
datepicker.css 3KB
datepicker.css 3KB
easyui_style.css 3KB
codemirror.css 3KB
appstyle.css 3KB
bootstrap-timepicker.css 3KB
layer.ext.css 3KB
jquery-ui-1.10.3.custom.min.css 3KB
background.css 3KB
stepstyle.css 3KB
colorpicker.css 3KB
charts.css 3KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
智慧安全方案
- 粉丝: 3650
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功