package com.fgkj.services;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Locale;
|
import java.util.Map;
|
import java.util.ResourceBundle;
|
|
import javax.servlet.ServletContext;
|
import javax.servlet.http.HttpSession;
|
|
import org.apache.commons.io.FileUtils;
|
|
import com.fgkj.actions.ActionUtil;
|
import com.fgkj.dao.BaseDAO;
|
import com.fgkj.dao.BaseDAOFactory;
|
import com.fgkj.dao.impl.UserDAOImpl;
|
import com.fgkj.dto.Roles;
|
import com.fgkj.dto.ServiceModel;
|
import com.fgkj.dto.User;
|
import com.fgkj.dto.UserClient;
|
import com.fgkj.dto.UserRole;
|
import com.fgkj.report.FileUtil;
|
import com.opensymphony.xwork2.ActionSupport;
|
import com.opensymphony.xwork2.LocaleProvider;
|
import com.opensymphony.xwork2.TextProvider;
|
import com.opensymphony.xwork2.util.ValueStack;
|
|
public class UserService extends ActionUtil{
|
private BaseDAO dao;
|
private ServiceModel model;
|
|
public UserService(){
|
dao = BaseDAOFactory.getBaseDAO(BaseDAO.USER);
|
model = new ServiceModel();
|
}
|
|
// 添加员工
|
public ServiceModel addUser(User user) {
|
if (dao.add(user)) {
|
user = (User) dao.serchByCondition(user).get(0);
|
dao = BaseDAOFactory.getBaseDAO(BaseDAO.USERROLE);
|
UserRole userrole = new UserRole(user, new Roles(user.getPid()));
|
if (dao.add(userrole)) {
|
model.setCode(1);
|
model.setMsg("添加成功");
|
}
|
} else {
|
model.setMsg("添加失败");
|
}
|
return model;
|
}
|
|
public ServiceModel delUser(User user) {
|
if (dao.del(user)) {
|
model.setCode(1);
|
model.setMsg("删除成功");
|
} else {
|
model.setMsg("删除失败");
|
}
|
return model;
|
}
|
|
public ServiceModel updateUser(User user) {
|
if (dao.update(user)) {
|
dao = BaseDAOFactory.getBaseDAO(BaseDAO.USERROLE);
|
boolean flag = dao.update(new UserRole(user, new Roles(user.getPid())));
|
if (flag) {
|
model.setCode(1);
|
model.setMsg("修改成功");
|
}
|
} else {
|
model.setMsg("修改成功");
|
}
|
return model;
|
}
|
|
public ServiceModel findUser(User user) {
|
List list = dao.serchByCondition(user);
|
if (list != null && list.size() > 0) {
|
model.setData(list);
|
model.setCode(1);
|
} else {
|
model.setMsg("查询失败");
|
}
|
return model;
|
}
|
|
public ServiceModel findUserAll() {
|
List list = dao.searchAll();
|
if (list != null && list.size() > 0) {
|
FileUtil.WriterFile(list);
|
model.setCode(1);
|
model.setData(list);
|
}
|
return model;
|
}
|
|
public ServiceModel findByInfo(Object obj) {
|
User user = (User) obj;
|
List list = dao.serchByInfo(user);
|
if (list == null || list.size() < 1) {
|
model.setMsg("没有匹配的员工");
|
} else {
|
model.setData(list);
|
model.setCode(1);
|
}
|
return model;
|
}
|
|
public ServiceModel updatePass(Object obj) {
|
boolean flag = new UserDAOImpl().updatePass(obj);
|
if (!flag) {
|
model.setMsg("修改失败");
|
} else {
|
model.setCode(1);
|
List list = dao.serchByCondition(obj);
|
if (list != null && list.size() > 0) {
|
User u = (User) list.get(0);
|
ActionUtil.getSession().setAttribute("user", u);
|
}
|
}
|
return model;
|
}
|
|
public ServiceModel findByAge(int currentPage, int PageSize) {
|
List list = new UserDAOImpl().serchByPage(currentPage, PageSize);
|
if (list != null && list.size() > 0) {
|
model.setCode(1);
|
model.setData(list);
|
} else {
|
model.setMsg("查询失败");
|
}
|
return model;
|
}
|
|
// public ServiceModel login(Object obj) {
|
// User user = (User) obj;
|
// List list = dao.serchByCondition(user);
|
// if (list == null || list.size() < 1) {
|
// model.setMsg(this.getText("Username_error"));
|
// // System.out.println("用户名不存在");
|
// } else {
|
// User u = (User) list.get(0);
|
//
|
// if (!user.getUpass().equals(u.getUpass())) {
|
// model.setMsg(getText("Password_error"));
|
// } else {
|
// model.setCode(1);
|
// // 将登陆成功的用户存入session
|
// ActionUtil.getSession().setAttribute("user", u);
|
// ActionUtil.getSession().setAttribute("ip",
|
// ActionUtil.getRequest().getRemoteAddr());
|
// // 将新登录的用户存入application
|
// setApplication(u);
|
// }
|
// }
|
// return model;
|
// }
|
|
// public void setApplication(User user) {
|
// ServletContext application = ActionUtil.getApplication();
|
// Map<String, UserClient> map = (Map) application.getAttribute("users");
|
// if (map == null) {
|
// map = new HashMap<String, UserClient>();
|
// } else {
|
// UserClient client = map.get(user.getUname());
|
// if (client != null) {
|
// map.remove(user.getUname());
|
// }
|
// }
|
// //map.put(user.getUname(), new UserClient(ActionUtil.getRequest().getRemoteAddr(), user));
|
// application.setAttribute("users", map);
|
// }
|
|
/**
|
* 开始查看application中是否有另一用使用该账号登陆
|
*
|
* @return
|
*/
|
public ServiceModel checkUser() {
|
Map<String, UserClient> map = (Map) ActionUtil.getApplication()
|
.getAttribute("users");
|
//System.out.println(map);
|
if (map != null && map.size()>0) {
|
User user = (User) ActionUtil.getSession().getAttribute("user");
|
if(user!=null){
|
UserClient client = map.get(user.getUname());
|
if(client!=null){
|
if (!ActionUtil.getRequest().getRemoteAddr().equals(client.getIp())) {
|
model.setCode(1);
|
model.setMsg(getText("The landing on the account in another host, please log in again"));
|
}
|
}
|
}else{
|
model.setCode(1);
|
model.setMsg(getText("You are not logged in, please log in"));
|
}
|
} else {
|
model.setCode(1);
|
model.setMsg(getText("You are not logged in, please log in"));
|
}
|
return model;
|
}
|
}
|