Package com.etown.action

Source Code of com.etown.action.UserMngAction

package com.etown.action;

import java.util.Iterator;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.etown.dao.CommonDAO;
import com.etown.util.FileUtil;
import com.etown.util.RandomStr;
import com.etown.util.SqlMgr;
import com.etown.util.StringUtil;
import com.etown.util.email.EMailSender;
import com.etown.util.email.MailMessage;

/**
* 用户管理相关
* @author knight
*
*/
public class UserMngAction extends BaseAction{
  private String userName;
  private String password;
  private String nickName;
  private String email;
  private String blogTitle;
  private int gender;
  private int industry;
  private int country;
  private int province;
  private int city;
  private String validateCode;//邮箱验证时用的字符编码
 
  /**
   * 校验用户名是否占用
   * @return
   */
  public String validateUserId(){
    JSONObject result=CommonDAO.getSingle(SqlMgr.getSql("CHECK_USER_ID"), userName);
    if(result!=null){
      this.outJsonString("false");
    }else{
      this.outJsonString("true");
    }
    return null;
  }
 
  /**
   * 校验email是否占用
   * @return
   */
  public String validateEmail(){
    JSONObject result=CommonDAO.getSingle(SqlMgr.getSql("CHECK_USER_EMAIL"), email);
    if(result!=null){
      this.outJsonString("false");
    }else{
      this.outJsonString("true");
    }
    return null;
  }
 
  /**
   * 用户注册
   * @return
   */
  public String regist(){
    //插入用户记录
    if(StringUtil.isEmpty(blogTitle)){
      blogTitle=nickName+"的博客";
    }
    String ipAddr=this.getIpAddr();
    validateCode=RandomStr.random(32);
    CommonDAO.update(SqlMgr.getSql("ADD_USER"),userName,password,nickName,email,gender,province,city,blogTitle,industry,ipAddr,validateCode);
   
    //发送验证邮件
    EMailSender sender = new EMailSender();
    sender.setPort(25);
    sender.setUserName("damoqiongqiu");
    sender.setPassWord("xiaotao015001024");
    sender.setMailFrom("damoqiongqiu@126.com");
   
    MailMessage mail1 = new MailMessage();
    boolean mailSuccess=false;
    try {
      mail1.setMailFrom(sender.getMailFrom());
      mail1.setMailTo(email);
      mail1.setMaiSubject("来自忆唐的验证邮件");
     
      String filePath = System.getProperty("web.home")+System.getProperty("regTplHtml");
      String content=FileUtil.readAll(filePath);
      content=StringUtil.format(content, new String[]{nickName,userName,validateCode});
      mail1.setContent(content);
      mail1.saveChanges();
      mailSuccess=sender.send(mail1);
    } catch (Exception e) {
      log.error("发送验证邮件失败");
      mailSuccess=false;
    }
    if(!mailSuccess){
      this.setReqAttr("regMsg", "regFailure");
    }else{
      String mailAddr="mail."+email.substring(email.lastIndexOf("@")+1);
      this.setReqAttr("mailAddr",mailAddr);
      this.setReqAttr("regMsg", "regSuccess");
    }
    return "result";
  }
 
  /**
   * 邮箱激活
   * @return
   */
  public String emailCheck(){
    if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(validateCode)){
      return "failure";
    }
   
    //激活
    JSONObject result=CommonDAO.getSingle(SqlMgr.getSql("CHECK_USER_ID"), userName);
    JSONObject tempCode=result.getJSONObject("vcode");
    String temp=tempCode.toString();
    if(validateCode.equals(temp)){
      CommonDAO.update(SqlMgr.getSql("UPDATE_USER_STATE"),0,userName);
      this.setReqAttr("regMsg", "validateSuccess");
      CommonDAO.update(SqlMgr.getSql("DEL_VCODE"),userName);
    }else{
      this.setReqAttr("regMsg", "validateFailure");
    }
    return "result";
  }
 
  /**
   * 登录
   * @return
   */
  public String login(){
    //校验用户名和密码
    JSONObject result=CommonDAO.getSingle(SqlMgr.getSql("LOGIN_CHECK"), userName,password);
    if(result==null){
      this.setReqAttr("errorMsg", "登录失败,用户名或密码不正确。");
      return "error";
    }else if(result.getString("state").equals("-1")){//已注册,但尚未激活
      this.setReqAttr("regMsg", "EMAIL_NOT_CHECK");
      email=result.getString("email");
      String mailAddr="mail."+email.substring(email.lastIndexOf("@")+1);
      this.setReqAttr("mailAddr",mailAddr);
      return "checkEmail";
    }else if(result!=null){
      //更新用户状态为已登录,并更新IP地址、记录最后登录时间
      String ipAddr=this.getIpAddr();
      CommonDAO.update(SqlMgr.getSql("USER_LOGIN"),ipAddr,userName);
      //加载用户的权限代码
      JSONArray permissions=CommonDAO.getList(SqlMgr.getSql("GET_USER_PERMISSION"),userName);
      if(permissions!=null){
        Iterator<JSONObject> iter=permissions.iterator();
        while(iter.hasNext()){
          JSONObject jsonObj=iter.next();
          this.setSessionAttr(jsonObj.getString("permission_code"), jsonObj.getString("permission_desc"));
        }
      }
      //取用户资料
      JSONObject userInfo=CommonDAO.getSingle(SqlMgr.getSql("GET_USER_INFO"), userName);
      if(userInfo!=null){
        this.setSessionAttr("nickName",userInfo.get("nick_name"));
        this.setSessionAttr("gradeName",userInfo.get("grade_name"));
        this.setSessionAttr("gender",userInfo.get("gender").equals("0")?"男":"女");
        this.setSessionAttr("cityId",userInfo.get("city_id"));
        this.setSessionAttr("articles",userInfo.get("articles"));
        this.setSessionAttr("posts",userInfo.get("posts"));
        this.setSessionAttr("allTimes",userInfo.get("all_times"));
        this.setSessionAttr("money",userInfo.get("money"));
        this.setSessionAttr("state",userInfo.get("state"));
        this.setSessionAttr("examGrade",userInfo.get(""));
        this.setSessionAttr("qq",userInfo.get("qq"));
      }
      //加载个人主页相关信息
     
      //设置会话参数
      this.setSessionAttr("userName", userName);
      this.setSessionAttr("nickName",result.getString("nick_name"));
      this.setSessionAttr("blogTitle",result.getString("blog_title"));
      return "success";
    }
    return "error";
  }
 
  /**
   * 用户登出
   * @return
   */
  public String logout(){
    this.rmSessionAttr("userName");
    this.rmSessionAttr("nickName");
    this.rmSessionAttr("blogTitle");
    return "success";
  }
 
  /**
   * 获取所有行业列表
   * @return
   */
  public String getIndustry(){
    JSONArray depts=CommonDAO.getList(SqlMgr.getSql("GET_INDUSTY"));
    System.out.println(depts.toString());
    this.outJsonString(depts.toString());
    return null;
  }
 
  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }

  public String getBlogTitle() {
    return blogTitle;
  }

  public void setBlogTitle(String blogTitle) {
    this.blogTitle = blogTitle;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public int getGender() {
    return gender;
  }

  public void setGender(int gender) {
    this.gender = gender;
  }

  public String getNickName() {
    return nickName;
  }

  public void setNickName(String nickName) {
    this.nickName = nickName;
  }
 

  public int getCity() {
    return city;
  }

  public void setCity(int city) {
    this.city = city;
  }

  public int getProvince() {
    return province;
  }

  public void setProvince(int province) {
    this.province = province;
  }

  public void setIndustry(int industry) {
    this.industry = industry;
  }

  public int getCountry() {
    return country;
  }

  public void setCountry(int country) {
    this.country = country;
  }

  public String getValidateCode() {
    return validateCode;
  }

  public void setValidateCode(String validateCode) {
    this.validateCode = validateCode;
  }
}
TOP

Related Classes of com.etown.action.UserMngAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.