⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userserviceimp.java

📁 java论坛
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -