Package com.ourlinc.activity.web

Source Code of com.ourlinc.activity.web.UserController

package com.ourlinc.activity.web;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.ourlinc.activity.MyCookie;
import com.ourlinc.activity.Page;
import com.ourlinc.activity.WebUtils;
import com.ourlinc.activity.domain.Activity;
import com.ourlinc.activity.domain.User;
import com.ourlinc.activity.service.IActivityService;
import com.ourlinc.activity.service.IUserService;

@Controller
@RequestMapping(value = "/user")
public class UserController {
  @Resource
  private IUserService userService;
  @Resource
  private IActivityService activityService;

  /**
   * 用户注册
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/register.jspx")
  String register(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    String email = request.getParameter("email");
    String password = request.getParameter("password");
    String repassword = request.getParameter("repassword");
    String username = request.getParameter("username");
    String department = request.getParameter("department");
    String birthday = request.getParameter("birthday");
    String entryDate = request.getParameter("entryDate");
    if (null == email || null == password || null == repassword
        || null == username || null == department || null == birthday
        || null == entryDate) {
      return "user/register";
    }
    // 检查邮箱是否重复的功能
    User user = userService.getUserByEmail(email);
    if (null != user) {
      request.setAttribute("errorMsg", "邮箱已经被注册");
      request.setAttribute("password", password);
      request.setAttribute("repassword", repassword);
      request.setAttribute("username", username);
      request.setAttribute("department", department);
      request.setAttribute("birthday", birthday);
      request.setAttribute("entryDate", entryDate);
      return "user/register";
    }
    Date dBirthday = WebUtils.strFormatDate(birthday);
    Date dEntryDate = WebUtils.strFormatDate(entryDate);
    user.setUsername(username.trim());
    user.setPassword(WebUtils.MD5(password.trim()));
    user.setDepartment(department.trim());
    user.setEmail(email.trim().toLowerCase());
    user.setBirthday(dBirthday);
    user.setEntryDate(dEntryDate);
    user = userService.registerUser(user);
    request.getSession().setAttribute("userLogin", user);
    response.sendRedirect("/activity/index.jspx");
    return null;

  }

  /**
   * 用户退出
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/userlogout.jspx")
  String userlogout(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    request.getSession().setAttribute("userLogin", null);
    MyCookie.clearCookie(response);
    response.sendRedirect("/activity/index.jspx");
    return null;
  }

  /**
   * 用户登陆
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/userlogin.jspx")
  String userlogin(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    String email = request.getParameter("email");
    String password = request.getParameter("password");
    String autoLogin = request.getParameter("autoLogin");
    if (null == email || null == password) {
      return "user/userlogin";
    }
    User user = new User();
    user.setEmail(email.trim().toLowerCase());
    user.setPassword(WebUtils.MD5(password.trim()));
    user = userService.login(user);
    if (null == user) {
      request.setAttribute("errorMsg", "你的email和密码不符,请再试一次");
      request.setAttribute("email", email);
      request.setAttribute("password", password);
      return "user/userlogin";
    }
    // 设置cookie
    if ("true".equals(autoLogin)) {
      try {
        MyCookie.keepUserLogin(email.trim().toLowerCase(),
            WebUtils.MD5(password.trim()), response);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    request.getSession().setAttribute("userLogin", user);
    response.sendRedirect("/activity/index.jspx");
    return null;
  }

  /**
   * 参加活动
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/join.jspx")
  String join(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    User user = (User) request.getSession().getAttribute("userLogin");
    String actId = request.getParameter("actId");
    int actIdI = Integer.valueOf(actId);
    Activity act = activityService.getActivity(actIdI);
    if (null == act) {
      request.setAttribute("errorMsg", "找不到id=" + actId + "的活动");
      return "error";
    }
    // 检查这个活动能不能参加
    if (activityService.isEditEnable(act.getId())) {
      // 用户能不能参加这个活动
      userService.joinActivity(user.getId(), actIdI);
      response.sendRedirect("/user/myact.jspx");
      return null;
    }
    request.setAttribute("errorMsg", "你不能参加这个活动,原因可能是你离职了或者已经参加了");
    return "error";
  }

  /**
   * 取消参加活动
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/canceljoin.jspx")
  String canceljoin(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    User user = (User) request.getSession().getAttribute("userLogin");
    String actId = request.getParameter("actId");
    int actIdI = Integer.valueOf(actId);
    Activity act = activityService.getActivity(actIdI);
    if (null == act) {
      request.setAttribute("errorMsg", "找不到id=" + actId + "的活动");
      return "error";
    }
    userService.cancelJoinActivity(user.getId(), actIdI);
    response.sendRedirect("/activity/index.jspx");
    return null;
  }

  /**
   * 管理员登陆
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/adminlogin.jspx")
  String adminlogin(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    String email = request.getParameter("email");
    String password = request.getParameter("password");
    if (null == email || null == password) {
      return "user/adminlogin";
    }
    User admin = new User();
    admin.setEmail(email.trim().toLowerCase());
    admin.setPassword(WebUtils.MD5(password.trim()));
    admin = userService.login(admin);
    if (null == admin || User.ADMIN != admin.getPrivilege()) {
      request.setAttribute("errorMsg", "你的email和密码不符,请再试一次");
      request.setAttribute("email", email);
      request.setAttribute("password", password);
      return "user/adminlogin";
    }
    request.getSession().setAttribute("userLogin", admin);
    response.sendRedirect("/activity/index.jspx");
    return null;
  }

  /**
   * 修改用户信息
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/userinfo.jspx")
  String userinfo(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    User user = (User) request.getSession().getAttribute("userLogin");
    String email = request.getParameter("email");
    String password = request.getParameter("password");
    String repassword = request.getParameter("repassword");
    String username = request.getParameter("username");
    String department = request.getParameter("department");
    String birthday = request.getParameter("birthday");
    String entryDate = request.getParameter("entryDate");
    String leaveDate = request.getParameter("leaveDate");
    String editUserId = request.getParameter("editUserId");
    // 返回页面展示
    if (null == email || null == username || null == department
        || null == birthday || null == entryDate) {
      String id = request.getParameter("id");
      int idI = Integer.valueOf(id);

      User u = userService.getUserById(idI);
      if (null == u) {
        return "error";
      }
      List<Activity> list = userService.listActivities(u.getId());
      request.setAttribute("actList", list);
      request.setAttribute("editUser", u);
      return "user/userinfo";
    }
    // 真正修改
    int editUserIdI = Integer.valueOf(editUserId);
    User editUser = userService.getUserById(editUserIdI);
    List<Activity> list0 = userService.listActivities(editUser.getId());
    if ("".equals(email) || "".equals(username) || "".equals(department)
        || "".equals(birthday) || "".equals(entryDate)) {
      request.setAttribute("editUser", editUser);
      request.setAttribute("actList", list0);
      request.setAttribute("errorMsg", "请填写必填的信息!");
      return "user/userinfo";
    }
    // 管理员不能修改管理员
    if (editUser.getPrivilege() == User.ADMIN
        && editUser.getId() != user.getId()) {
      request.setAttribute("errorMsg", "你不能修改其他管理员的信息");
      request.setAttribute("editUser", editUser);
      request.setAttribute("actList", list0);
      return "user/userinfo";
    }

    // 检查邮箱相同
    if (!email.equals(editUser.getEmail())) {
      User u = userService.getUserByEmail(email);
      if (null != u) {
        request.setAttribute("errorMsg", "邮箱已经被注册");
        request.setAttribute("editUser", editUser);
        request.setAttribute("actList", list0);
        return "user/userinfo";
      }
    }

    if (!password.equals(repassword)) {
      request.setAttribute("editUser", editUser);
      request.setAttribute("actList", list0);
      request.setAttribute("errorMsg", "两次密码不一样");
      return "user/userinfo";
    }

    Date dBirthday = WebUtils.strFormatDate(birthday);
    Date dEntryDate = WebUtils.strFormatDate(entryDate);
    Date dLeaveDate = WebUtils.strFormatDate(leaveDate);

    editUser.setUsername(username.trim());
    editUser.setDepartment(department.trim());
    editUser.setEmail(email.toLowerCase().trim());
    editUser.setBirthday(dBirthday);
    editUser.setEntryDate(dEntryDate);
    editUser.setLeaveDate(dLeaveDate);
    editUser.setOnJob("".equals(leaveDate) ? 1 : 0);

    userService.updateUser(editUser);

    if (!"".equals(password)) {
      userService.updatePassw(editUser.getId(),
          WebUtils.MD5(password.trim()));
    }

    response.sendRedirect("/user/manager.jspx");
    return null;

  }

  /**
   * 修改个人信息
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/editaccount.jspx")
  String editaccount(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    User user = (User) request.getSession().getAttribute("userLogin");
    String email = request.getParameter("email");
    String password = request.getParameter("password");
    String repassword = request.getParameter("repassword");
    String department = request.getParameter("department");
    String birthday = request.getParameter("birthday");
    // 返回页面进行展示
    if (null == email || null == password || null == repassword
        || null == department || null == birthday) {
      request.setAttribute("userLogin", user);
      return "user/editaccount";
    }
    // 修改个人信息
    Date dBirthday = WebUtils.strFormatDate(birthday);
    if (!email.equals(user.getEmail())) {
      // 检查邮件是否重复
      User u = userService.getUserByEmail(email);
      if (null != u) {
        request.setAttribute("userLogin", user);
        request.setAttribute("errorMsg", "邮箱已经被注册");
        return "user/editaccount";
      }
    }
    user.setDepartment(department.trim());
    user.setEmail(email.trim().toLowerCase());
    user.setBirthday(dBirthday);
    userService.updateUser(user);
    if (!"".equals(password)) {
      userService
          .updatePassw(user.getId(), WebUtils.MD5(password.trim()));
    }
    response.sendRedirect("/activity/index.jspx");
    return null;
  }

  /**
   * 用户管理
   *
   * @param request
   * @return
   */
  @RequestMapping(value = "/manager.jspx")
  String manager(HttpServletRequest request) {
    String p = request.getParameter("p");
    int intp = WebUtils.toInt(p);
    Page rp = userService.listAllUser(intp);
    request.setAttribute("list", rp);
    return "user/manager";
  }

  /**
   * 查看我已报名的活动
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/myact.jspx")
  String myact(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    User user = (User) request.getSession().getAttribute("userLogin");
    String p = request.getParameter("p");
    int intp = WebUtils.toInt(p);
    Page rp = userService.listActNormal(user.getId(), intp);
    request.setAttribute("list", rp);
    request.setAttribute("act", "listNow");
    return "user/myact";
  }

  /**
   * 查看我的已参加活动
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/myactover.jspx")
  String myactover(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    User user = (User) request.getSession().getAttribute("userLogin");
    String p = request.getParameter("p");
    int intp = WebUtils.toInt(p);
    Page rp = userService.listActOver(user.getId(), intp);
    request.setAttribute("list", rp);
    request.setAttribute("act", "listOver");
    return "user/myact";
  }

  /**
   * 查看我的已参加但被取消的活动
   *
   * @param request
   * @return
   * @throws IOException
   */
  @RequestMapping(value = "/myactcancel.jspx")
  String myactcancel(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    User user = (User) request.getSession().getAttribute("userLogin");
    String p = request.getParameter("p");
    int intp = WebUtils.toInt(p);
    Page rp = userService.listActCancel(user.getId(),intp);
    request.setAttribute("list", rp);
    request.setAttribute("act", "listCancel");
    return "user/myact";
  }

  /**
   * 测试ajax验证用户名有没有重复
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/checkemail_aj.jspx")
  String checkemail_aj(HttpServletRequest request,
      HttpServletResponse response) {
    String email = WebUtils.toString(request.getParameter("email")).trim()
        .toLowerCase();
    if (email.length() > 0) {
      User user = userService.getUserByEmail(email);
      response.setContentType("text/plain;charset=UTF-8");
      response.setHeader("Cache-Control", "no-cache");
      String htmlDoc = (null != user) ? "邮箱已经存在!" : "用户名可以使用!";
      try {
        response.getWriter().write(htmlDoc);
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    return null;
  }
}
TOP

Related Classes of com.ourlinc.activity.web.UserController

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.