Files
cms/src/main/java/com/fjy/spring/controller/LoginController.java
2018-04-25 22:02:00 +08:00

96 lines
3.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.fjy.spring.controller;
import com.fjy.spring.domain.TbAdmin;
import com.fjy.spring.domain.TbLog;
import com.fjy.spring.domain.TbUser;
import com.fjy.spring.properties.ServerProperties;
import com.fjy.spring.service.AdminService;
import com.fjy.spring.service.LogService;
import com.fjy.spring.service.UserService;
import com.fjy.spring.untils.CodingUtil;
import com.fjy.spring.untils.GetIPAddrUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Optional;
import static com.fjy.spring.constant.GlobalConstant.USER_SESSION_KEY;
@Controller
public class LoginController {
@Autowired
private ServerProperties serverProperties;
@Autowired
private UserService userService;
@Autowired
private LogService logService;
@Resource
HttpServletRequest request;
@PostMapping("/login/dologin")
public String doLogin(TbUser tbUser)throws Exception{
//加密用户密码
tbUser.setColpassword(new BigInteger(CodingUtil.encryptSHA(tbUser.getColpassword().getBytes())).toString(32));
TbUser user = userService.doLoginService(tbUser.getColname(),tbUser.getColpassword());
if (user!=null){
user.setColpassword(null);
request.getSession().setAttribute(USER_SESSION_KEY,user);
//写入日志信息
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNowStr = sdf.format(date);
//System.out.println("当前时间:"+dateNowStr);
TbLog log = new TbLog();
log.setUserid(user.getColuserid());
log.setColtime(dateNowStr);
log.setColheader(request.getHeader("user-agent"));
log.setRequestURL(request.getRequestURL().toString());
//解决nginx代理后IP地址获取问题
//log.setColip(request.getRemoteAddr());
log.setColip(GetIPAddrUtil.getIpAddr(request));
logService.addLogRec(log);
return "redirect:" + request.getScheme() + "://" + request.getServerName() + ":"
+ serverProperties.getPortNum() + request.getContextPath() + "/home";
}
return "login";
}
@PostMapping("/beforeLogin")
@ResponseBody
public boolean beforeLogin(TbUser tbUser)throws Exception{
tbUser.setColpassword(new BigInteger(CodingUtil.encryptSHA(tbUser.getColpassword().getBytes())).toString(32));
TbUser user = userService.doLoginService(tbUser.getColname(),tbUser.getColpassword());
return user!=null;
}
/**
* 登录时判断用户名是否存在若不存在则返回false
* @param name
* @return
* @throws Exception
*/
@GetMapping("/beforeLoginCheckNameExist")
@ResponseBody
public boolean beforeLoginCheckNameExist(@RequestParam(value = "name") String name)throws Exception{
Optional<TbUser> user = userService.findByColname(name);
return user.isPresent();
}
}