package com.fgkj.actions;
|
|
|
import java.net.URLEncoder;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.servlet.http.Cookie;
|
|
import com.fgkj.dao.BaseDAO;
|
import com.fgkj.dao.BaseDAOFactory;
|
import com.fgkj.db.DBUtil;
|
import com.fgkj.db.IDatabaseName;
|
import com.fgkj.dto.UserClient;
|
import com.fgkj.dto.User_inf;
|
import com.fgkj.dto.User_log;
|
import com.fgkj.services.ServiceModel;
|
import com.fgkj.services.User_infService;
|
import com.fgkj.services.User_logService;
|
import com.google.gson.reflect.TypeToken;
|
import com.opensymphony.xwork2.ActionSupport;
|
|
|
public class LoginAction extends ActionUtil{
|
private String json;
|
private String result;
|
private String identify;
|
private User_infService service=new User_infService();
|
|
|
//获取sessionid
|
public String serchSessionID(){
|
ServiceModel model=new ServiceModel();
|
model.setMsg(ActionUtil.getSession().getId());
|
model.setData((User_inf)ActionUtil.getUser());
|
result=ActionUtil.tojson(model);
|
return SUCCESS;
|
}
|
//web版登录
|
public String login() {
|
ServiceModel model=new ServiceModel();
|
//System.out.println(ActionUtil.getSession().getAttribute("sssss")+"sessionid"+ActionUtil.getSession().getId());
|
Map<String,String> map = ActionUtil.getGson().fromJson(ActionUtil.getSession().getAttribute("sssss").toString(), new TypeToken<HashMap<String, String>>(){}.getType());
|
//String identify_session=String.valueOf(ActionUtil.getSession().getAttribute("sssss"));
|
//System.out.println(identify_session+" "+identify);
|
String identify_session = map.get("sssss");
|
//System.out.println(identify_session.toLowerCase()+" "+identify.toLowerCase() );
|
if(!identify_session.toLowerCase().equals(identify.toLowerCase())){
|
model.setCode(0);
|
model.setMsg("验证码错误");
|
}else{
|
User_inf uinf=ActionUtil.getGson(ActionUtil.time_yyyyMMddHHmmss).fromJson(json, User_inf.class);
|
model=service.login(uinf);
|
if(model.code == 1){
|
User_inf u = (User_inf) ActionUtil.getUser();
|
if(u!=null){
|
recordUserlogin(u); //记录当前用户的登录记录
|
}
|
}
|
}
|
result=ActionUtil.tojson(model);
|
return SUCCESS;
|
}
|
|
|
|
/**
|
* 判断是否有另一同一账号登陆的用户
|
* @return
|
*/
|
public String check(){
|
ServiceModel model=service.checkUser();
|
User_inf uinf=(User_inf)ActionUtil.getSession().getAttribute("user");
|
if(model.code == 1){
|
ActionUtil.getSession().invalidate(); //清除当前的session; //清除session
|
}
|
result=ActionUtil.tojson(model);
|
return "success";
|
}
|
|
/**
|
* 退出登录
|
* @return
|
*/
|
|
public String exitUser(){
|
//将当前用户从所有的登陆用户中移除
|
Map<String, UserClient> map = (Map) ActionUtil.getApplication().getAttribute("users");
|
if(map!=null && map.size()>0){
|
User_inf user = (User_inf) ActionUtil.getSession().getAttribute("user");
|
if(user!=null){
|
//System.out.println(user);
|
UserClient client = map.get(user.getUName());
|
//System.out.println(client);
|
if(client!=null){
|
map.remove(user.getUName());
|
}
|
User_logService logservice= new User_logService();
|
User_log log = new User_log();
|
log.setuId(user.getUId());
|
log.setuOprateDay(new Date());
|
log.setuOprateMsg("登出系统");
|
log.setuOprateType(UserUtil.LOGOUT);
|
log.setuTerminalIp(ActionUtil.getRequest().getLocalAddr());
|
logservice.add(log);
|
}
|
ActionUtil.getSession().invalidate(); //清除session
|
}
|
|
return "success";
|
}
|
|
/**
|
* 记录用户的登录记录
|
* @param u
|
*/
|
public void recordUserlogin(User_inf u){
|
try {
|
User_logService logservice= new User_logService();
|
User_log log = new User_log();
|
log.setuId(u.getUId());
|
log.setuOprateDay(new Date());
|
log.setuOprateMsg("登录PC系统");
|
log.setuOprateType(UserUtil.LOGIN);
|
log.setuTerminalIp(ActionUtil.getRequest().getRemoteAddr());
|
logservice.add(log);
|
} catch (Exception e) {
|
System.out.println("记录用户的登录信息出错");
|
e.printStackTrace();
|
}
|
}
|
|
|
/**
|
* 退出登录
|
* @return
|
*/
|
public String exitVUser(){
|
ActionUtil.getSession().invalidate();
|
return SUCCESS;
|
}
|
|
//通过制定的字符串获取session
|
public String getSessionByString(){
|
Object obj = ActionUtil.getSession().getAttribute(json);
|
if(obj != null){
|
result = ActionUtil.tojson(obj);
|
}else{
|
result = "";
|
}
|
return SUCCESS;
|
}
|
|
/**
|
* 初始化数据库连接池
|
* @return
|
*/
|
public String initDBPool(){
|
DBUtil.initPool();
|
return SUCCESS;
|
}
|
|
public String getResult() {
|
return result;
|
}
|
|
|
|
public void setIdentify(String identify) {
|
this.identify = identify;
|
}
|
|
|
|
public void setJson(String json) {
|
this.json = json;
|
}
|
|
|
|
}
|