userlogin.java
来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 222 行
JAVA
222 行
/*
* Created on 2007-2-10
* Last modified on 2007-11-9
* Powered by YeQiangWei.com
*/
package com.yeqiangwei.club.service.user;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.model.Admin;
import com.yeqiangwei.club.model.ManageLog;
import com.yeqiangwei.club.model.User;
import com.yeqiangwei.club.model.UserSettings;
import com.yeqiangwei.club.service.util.BasicInfoService;
import com.yeqiangwei.club.service.util.ManageLogService;
import com.yeqiangwei.club.util.BeanUtils;
import com.yeqiangwei.club.util.MessageUtils;
import com.yeqiangwei.club.util.PostUtils;
import com.yeqiangwei.util.Validator;
import com.yeqiangwei.club.controller.form.UserLoginForm;
import com.yeqiangwei.club.exception.ClubException;
import com.yeqiangwei.club.view.model.UserView;
import com.yeqiangwei.util.FormatDateTime;
import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.TypeChange;
/**
*
* @author yeqiangwei
*/
public class UserLogin {
private static final Logger logger = Logger.getLogger(UserLogin.class);
public static UserSettings getUserSettings(HttpServletRequest request){
return UserLogin.getUserSettingsService().getUserSettings(UserLogin.getUserId(request));
}
public static Admin getAdmin(HttpServletRequest request){
return ParamUtils.getSessionObject(request,"Admin",null);
}
public static int getUserId(HttpServletRequest request){
User user = getUser(request);
if(!Validator.isEmpty(user)){
return user.getUserId();
}else{
return 0;
}
}
public static String getUserName(HttpServletRequest request) {
User user = getUser(request);
if(!Validator.isEmpty(user)){
return user.getUserName();
}else{
return null;
}
}
public static User getUser(HttpServletRequest request) {
return UserLogin.getUserService().findById(ParamUtils.getSessionInt(request,"userId", 0));
}
public static void setUserId(HttpServletRequest request, HttpServletResponse response, User user) {
if(user==null)return ;
UserLogin.setUserId(request, user.getUserId());
UserLogin.setCookies(request, response, user, 365);
}
public static void setUserId(HttpServletRequest request, int userId)
{
ParamUtils.setSession(request,"userId",userId);
}
public static void setCookies(HttpServletRequest request
,HttpServletResponse response, User model, int days)
{
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserId",String.valueOf(model.getUserId()), days);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserName",model.getUserName(), days);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWpassword",model.getPassword(), days);
UserLogin.setUserId(request, model.getUserId());
}
/**
* 登录失效后初始化登录
* @param service
*/
public static User loginInit(HttpServletRequest request, UserService service){
User model = UserLogin.getUser(request);
if(Validator.isEmpty(model)){
int userId = TypeChange.stringToInt(ParamUtils.getCookieValue(request, "YQWuserId",null));
String userName = ParamUtils.getCookieValue(request, "YQWuserName",null);
String password = ParamUtils.getCookieValue(request, "YQWpassword",null);
if(Validator.isEmpty(userName)||Validator.isEmpty(password)){
return null;
}
model = new User();
model.setUserId(userId);
model.setUserName(userName);
model.setPassword(password);
model.setLastLoginDateTime(FormatDateTime.now());
model.setLastLoginIp(request.getRemoteAddr());
try {
model = service.findByUserNameAndPassword(model,false);
if(!Validator.isEmpty(model)){
UserLogin.setUserId(request, model.getUserId());
}
} catch (ClubException e) {
logger.error(e.toString());
}
}
return model;
}
/**
* 登录成功后数据SET
* @param user
* @param days
*/
public static User login(HttpServletRequest request,HttpServletResponse response
, UserService service, UserLoginForm f){
int days = f.getRemember();
User model = new User();
BeanUtils.copyProperties(model,f);
int num = ParamUtils.getSessionInt(request,"loginPosts",0);
String rand = ParamUtils.getSessionString(request,"rand","");
if(num>=3){
if(!f.getRand().equals(rand)){
request.setAttribute("message",MessageUtils.getMessage("error_post_rand"));
return null;
}
}
try {
model = service.findByUserNameAndPassword(model,true);
if(!Validator.isEmpty(model)){
ManageLog log = new ManageLog();
log.setTopicId(0);
log.setTitle("");
log.setByUserId(model.getUserId());
log.setByUserName(model.getUserName());
log.setByUserIp(request.getRemoteAddr());
log.setCreateDateTime(FormatDateTime.now());
log.setForumId(0);
service.ruleUtils(log,0,1);
log.setUserName(model.getUserName());
log.setUserId(model.getUserId());
log.setIsList(true);
log.setListByUserName(true);
log.setMemo("登录社区");
log.setContent(model.getUserName()+"晃晃荡荡的进了社区...");
getManageLogService().create(log);
}
} catch (ClubException e) {
logger.error(e.toString());
}
if(!Validator.isEmpty(model)){
setCookies(request,response,model,days);
PostUtils.removeNumber(request,"loginPosts");
}
return model;
}
public static User getUser(String userName, String password){
User model = new User();
model.setUserName(userName);
model.setPassword(password);
try {
return getUserService().findByUserNameAndPassword(model);
} catch (ClubException e) {
logger.error(e.toString());
}
return null;
}
public static User getInstance(HttpServletRequest request){
return UserLogin.getUser(request);
}
public static UserView getInstanceV(HttpServletRequest request){
User user = UserLogin.getInstance(request);
if(!Validator.isEmpty(user)){
UserView view = new UserView();
BeanUtils.copyProperties(view,user);
return view;
}else{
return null;
}
}
public static void logout(HttpServletRequest request,HttpServletResponse response){
UserLogin.setUserId(request, 0);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserId",null, 0);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserName",null, 0);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWpassword",null, 0);
logger.info("loginOut");
}
public static BasicInfoService getBasicInfoService() {
return ServiceWrapper.<BasicInfoService>getSingletonInstance(ServiceLocator.BASICINFO);
}
public static ManageLogService getManageLogService() {
return ServiceWrapper.<ManageLogService>getSingletonInstance(ServiceLocator.MANAGELOG);
}
public static UserSettingsService getUserSettingsService() {
return ServiceWrapper.<UserSettingsService>getSingletonInstance(ServiceLocator.USERSETTINGS);
}
public static UserService getUserService() {
return ServiceWrapper.<UserService>getSingletonInstance(ServiceLocator.USER);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?