📄 userserviceimp.java
字号:
package com.laoer.bbscs.service.imp;
import java.io.*;
import java.util.*;
import org.apache.commons.io.*;
import org.apache.commons.lang.*;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.logging.*;
import com.laoer.bbscs.bean.*;
import com.laoer.bbscs.comm.*;
import com.laoer.bbscs.dao.*;
import com.laoer.bbscs.exception.*;
import com.laoer.bbscs.fio.*;
import com.laoer.bbscs.service.*;
import com.laoer.bbscs.service.config.*;
import com.laoer.comm.util.*;
import com.laoer.bbscs.service.web.*;
/**
* <p>Title: 天乙社区</p>
*
* <p>Description: BBSCS</p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: Laoer.com</p>
*
* @author Gong Tianyi
* @version 7.0
*/
public class UserServiceImp
implements UserService {
private static final Log logger = LogFactory.getLog(UserServiceImp.class);
private UserInfoDAO userInfoDAO;
private UserDetailDAO userDetailDAO;
private UserGroupDAO userGroupDAO;
private PermissionDAO permissionDAO;
private SysConfig sysConfig;
private String safePath;
private UserInfoFileIO userInfoFileIO;
public UserServiceImp() {
}
/**
* 创建用户
*
* @param userInfo UserInfo
* @param userDetail UserDetail
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
/*
public void createUserInfo(UserInfo userInfo, UserDetail userDetail) throws BbscsException {
try {
userInfo = this.getUserInfoDAO().saveUserInfo(userInfo);
userDetail.setUserID(userInfo.getId());
this.getUserDetailDAO().saveUserDetail(userDetail);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}*/
/**
* 根据用户ID取得UserDetail对象
*
* @param userID String
* @return UserDetail
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
/*
public UserDetail findUserDetailByUserID(String userID) {
return this.getUserDetailDAO().findUserDetailByUserID(userID);
}*/
/**
* 根据Email查找UserInfo对象
*
* @param email String
* @return UserInfo
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
public UserInfo findUserInfoByEmail(String email) {
return this.getUserInfoDAO().findUserInfoByEmail(email);
}
/**
* 根据主键查找UserInfo对象
*
* @param id String
* @return UserInfo
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
public UserInfo findUserInfoById(String id) {
return this.getUserInfoDAO().findUserInfoById(id);
}
/**
* 根据用户名查找UserInfo对象
*
* @param userName String
* @return UserInfo
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
public UserInfo findUserInfoByUserName(String userName) {
return this.getUserInfoDAO().findUserInfoByUserName(userName);
}
/**
* 取得用户分页列表
*
* @param orderby String
* @param ascordesc String
* @param pages Pages
* @return PageList
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
public PageList findUserInfoList(String orderby, String ascordesc, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getAllUserNum());
}
pages.executeCount();
List l = this.getUserInfoDAO().findUserInfoList(orderby, ascordesc,
pages.getSpage(), pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
/**
* 取得所有用户数量
*
* @return int
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
public int getAllUserNum() {
return this.getUserInfoDAO().getAllUserNum();
}
/**
* 保存或更新UserDetail对象
*
* @param userDetail UserDetail
* @return UserDetail
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
/*
public UserDetail saveUserDetail(UserDetail userDetail) throws BbscsException {
return null;
}*/
/**
* 保存或更新UserInfo对象
*
* @param userInfo UserInfo
* @return UserInfo
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.UserService method
*/
public UserInfo saveUserInfo(UserInfo userInfo) throws BbscsException {
try {
return this.getUserInfoDAO().saveUserInfo(userInfo);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
public Map[] getUserPermission(UserInfo userInfo) {
//创建Map组,Map[0]保存用户普通权限,Map[1]保存特殊权限
Map[] userPermission = {new HashMap(), new HashMap()};
UserGroup ug = this.getUserGroupDAO().findUserGroupByID(userInfo.getGroupID()); //取得用户属组
if (ug != null) {
Iterator it = ug.getRoles().iterator(); //取得角色列表
while (it.hasNext()) {
Role role = (Role) it.next();
List permissions = role.getPermissions(); //取得角色的权限ID列表
if (permissions != null && !permissions.isEmpty()) {
List permissionList = this.getPermissionDAO().findPermissionnIDs(permissions); //取得权限列表
for (int i = 0; i < permissionList.size(); i++) {
Permission permission = (Permission) permissionList.get(i);
if (permission.getTypeID() == 0) {
userPermission[0].put(permission.getResource() + "," + permission.getAction(),
permission);
}
else {
userPermission[1].put(permission.getId(), permission);
}
}
}
}
}
return userPermission;
}
public Map[] getUserPermission(int groupID) {
Map[] userPermission = {new HashMap(), new HashMap()};
UserGroup ug = this.getUserGroupDAO().findUserGroupByID(groupID); //取得用户属组
if (ug != null) {
Iterator it = ug.getRoles().iterator(); //取得角色列表
while (it.hasNext()) {
Role role = (Role) it.next();
List permissions = role.getPermissions(); //取得角色的权限ID列表
if (permissions != null && !permissions.isEmpty()) {
List permissionList = this.getPermissionDAO().findPermissionnIDs(permissions); //取得权限列表
for (int i = 0; i < permissionList.size(); i++) {
Permission permission = (Permission) permissionList.get(i);
if (permission.getTypeID() == 0) {
userPermission[0].put(permission.getResource() + "," + permission.getAction(),
permission);
}
else {
userPermission[1].put(permission.getId(), permission);
}
}
}
}
}
return userPermission;
}
public UserInfo saveAtLogin(UserInfo userInfo) throws BbscsException {
//如果本次登录时间距上次上次登录时间超过30分钟,才增加登录次数和经验值
try {
if ( (System.currentTimeMillis() - userInfo.getLastLoginTime().getTime()) > 30 * 60000) {
userInfo.setLoginTimes(userInfo.getLoginTimes() + 1);
userInfo.setExperience(userInfo.getExperience() + 1);
}
return this.getUserInfoDAO().saveUserInfo(userInfo);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
public String getUserFilePath(String userID) {
StringBuffer sb = new StringBuffer();
int num = Math.abs(userID.hashCode());
sb.append(this.getSafePath());
sb.append("user/");
sb.append(num % 100);
sb.append("/");
sb.append(userID);
sb.append("/");
File ft = new File(sb.toString());
if (!ft.exists()) {
ft.mkdirs();
}
return sb.toString();
}
public void writeUserFile(UserInfo userInfo) {
/*
StringBuffer sb = new StringBuffer();
sb.append(userInfo.getId());
sb.append("|");
sb.append(userInfo.getRegTime().getTime());
sb.append("|");
sb.append(userInfo.getLoginTime().getTime());
sb.append("|");
sb.append(userInfo.getArticleNum());
sb.append("|");
sb.append(userInfo.getArticleEliteNum());
sb.append("|");
sb.append(userInfo.getUserTitle());
sb.append("|");
sb.append(userInfo.getLifeForce());
sb.append("|");
sb.append(userInfo.getCoin());
sb.append("|");
sb.append(userInfo.getLiterary());
sb.append("|");
sb.append(userInfo.getUserKnow());
sb.append("|");
sb.append(userInfo.getExperience());
sb.append("|");
sb.append(userInfo.getHavePic());
sb.append("|");
if (StringUtils.isBlank(userInfo.getPicFileName())) {
sb.append("-");
}
else {
sb.append(userInfo.getPicFileName());
}
sb.append("|");
if (StringUtils.isBlank(userInfo.getUserFrom())) {
sb.append("-");
}
else {
sb.append(userInfo.getUserFrom());
}
sb.append("|");
FileIO.writeFile(sb.toString(), this.getUserFilePath(userInfo.getId()) + Constant.USER_PROFILE,
Constant.CHARSET);*/
this.getUserInfoFileIO().writeUserFile(userInfo);
}
public UserInfoSimple getUserInfoSimple(String userID) {
String userFileTxt = FileIO.readFile(this.getUserFilePath(userID) + Constant.USER_PROFILE,
Constant.CHARSET);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -