Files
love-nav/src/main/java/com/lovenav/controller/UserController.java

152 lines
5.4 KiB
Java

package com.lovenav.controller;
import com.alibaba.fastjson2.JSONObject;
import com.lovenav.entity.UrlList;
import com.lovenav.entity.User;
import com.lovenav.service.UserService;
import com.lovenav.utils.MD5Utils;
import com.lovenav.utils.RandomValidateCode;
import com.lovenav.utils.TokenUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
@RestController
public class UserController {
@Autowired
UserService userService;
@Autowired
TokenUtils tokenUtils;
//发送邮箱验证码
@GetMapping("/sendActiveCode")
public String sendActiveCode(HttpSession session, User user){
String activecode=userService.sendEmailActivecode(user);
session.setAttribute(user.getUserEmail(),activecode);
return "发送验证码成功!";
}
@RequestMapping("/register")
public String userRegister(HttpSession session,User user){
// 比较验证码
if (!user.getActiveCode().equals((String) session.getAttribute(user.getUserEmail()))) {
return "验证码不正确";
}
System.out.println(user.getUserLogin());
System.out.println(user.getUserEmail());
// 用户注册之前根据用户名称查询该用户是否存在如果不存在的情况下才可以注册 如果存在的话就无法注册
User user1=userService.selectUserAlreadyExist(user);
if (user1 != null) {
return "用户名: " + user1.getUserEmail() + "已被注册!";
}
//用户数据注册
int register = userService.UserRegister(user);
if (register <= 0) {
// 注册失败了 //转发到错误页面
return "注册失败!";
}
return "注册成功!";
}
@RequestMapping(value = "/login",produces = {"application/json;charset=UTF-8"})
public Map<String,Object>login(User user,String code,HttpSession session){
Map<String,Object> map=new HashMap<>();
String sessionCode = (String) session.getAttribute(RandomValidateCode.RANDOMVALIDATECODE);
if (sessionCode==null){
map.put("msg","验证码空的");
return map;
}
if (!sessionCode.equals(code)){
map.put("msg","验证码错误");
return map;
}
if(StringUtils.isEmpty(user.getUserLogin())||StringUtils.isEmpty(user.getUserPassword())){
map.put("msg","用户或密码为空!");
return map;
}
User user1 = userService.userLogin(user);
if(user1!=null){
map.put("code",200);
String token= tokenUtils.sign(user1);
map.put("userEmail",user1.getUserEmail());
map.put("userLogin",user1.getUserLogin());
map.put("user",user1.getUserEmail());
map.put("userStatus",user1.getUserStatus());
map.put("Id",user1.getId());
map.put("nickname",user1.getNickname());
map.put("roleId",user1.getRoleId());
map.put("userRegistered",user1.getUserRegistered());
map.put("token",token);
}else {
map.put("msg","用户名或密码错误!");
}
return map;
}
/*图片验证码*/
@RequestMapping("/verifyCode")
public void verifyCode(HttpServletRequest request,HttpServletResponse response){
response.setContentType("image/jpeg");//设置相应类型,告诉浏览器输出的内容为图片
response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容
response.setDateHeader("Expire", 0);
RandomValidateCode randomValidateCode = new RandomValidateCode();
try {
randomValidateCode.getRandcode( request, response);//输出图片方法
} catch (Exception e) {
e.printStackTrace();
}
}
//找回妈咪
@RequestMapping("/findThePassword")
public Map<String,Object> findThePassword(User user,HttpSession session){
Map<String,Object> map=new HashMap<>();
User user1=userService.selectUserAlreadyExist(user);
System.out.println(user1);
if (user1==null){
map.put("msg","无此邮箱");
return map;
}
// 比较验证码
if (!user.getActiveCode().equals((String) session.getAttribute(user.getUserEmail()))) {
map.put("msg","验证码不正确") ;
return map;
}
if (user1 != null) {
int result=userService.updatePassword(user1);
if(result==1){
map.put("Data",user1.getUserLogin());
map.put("Data",user1.getUserEmail());
map.put("msg","重置成功");
return map;
}else {
map.put("msg","重置失败");
return map;
}
}
return map;
}
}