```javapackagecom.xxshop.controller;
importcom.xxshop.domain.XxUser;importcom.xxshop.service.UserService;importcom.xxshop.utils.CookieUtils;importcom.xxshop.utils.SendSmsUtil;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.*;
@Controller@RequestMappingpublicclassLoginController{
@ResourceprivateUserServiceuserService;
@ResourceprivateRedisTemplateredisTemplate;
@Autowired
@GetMapping("login")publicStringlogin(){return"login";}
if(user!=null){session.setAttribute("user",user);if(remember!=null){Cookiecookie=newCookie("user",user.getPhone()+"_"+user.getPassword());cookie.setMaxAge(60*60*24);cookie.setPath("login");response.addCookie(cookie);return"redirect:/index";}return"redirect:/index";}else{model.addAttribute("message","用户名或密码错误");return"login";}}
@PostMapping("remember")@ResponseBodypublicStringremember(HttpSessionsession,HttpServletRequestrequest){Objectuser=session.getAttribute("user");Stringvalue=CookieUtils.getCookieValByKey("user",request);if(user!=null&&!value.equals("")&&value!=null){returnvalue;}else{return"";}}
@GetMapping("register")publicStringtoregister(){return"register";}
/***注册*@paramrealname*@paramphone*@paramusername*@parampassword*@paramrepassword*@return*/@PostMapping("register")publicStringregister(Stringrealname,Stringphone,Stringusername,Stringpassword,Stringrepassword){if(!password.equals(repassword)){return"redirect:/register";}userService.register(realname,phone,username,password);return"login";}
/***验证用户名是否存在*@paramphone*@return*/@GetMapping("verPhone/{phone}")@ResponseBodypublicBooleanverPhone(@PathVariableStringphone){booleanflag=userService.verPhone(phone);returnflag;}
/***登出*@paramrequest*@return*/@GetMapping("logout")publicStringlogout(HttpServletRequestrequest){request.getSession().invalidate();return"redirect:/index";}
/***@Function:短信验证接口*/@GetMapping("sendCode/{phone}")@ResponseBodypublicStringSmsVerification(@PathVariableStringphone){Stringcode=SendSmsUtil.sendSms(phone);////将验证码放入Redis//Stringkey="user_"+code;//ValueOperations