/**
  * 验证用户登录。
  *
  * @param user 用户信息
  * @return 返回的视图
  */
 private String checkUserLogin(User user) {
   // 不成功,查询数据库,获取用户信息
   User query = new User();
   query.setUserAccount(user.getUserAccount());
   query = userServiceImpl.unique(query);
   // 和用户填写的登录信息进行比较
   if (query != null && passEqual(query.getPassword(), user.getPassword())) {
     // 如果成功,将信息保存到cookie中,跳转
     cookieServiceImpl.addUserToCookie(query);
     return "home/index";
   } else {
     // 不成功,返回登录页面,显示错误
     return "user/login";
   }
 }
  /**
   * 执行注册的业务逻辑。
   *
   * @param regUser 代注册的用户信息
   * @return
   */
  @RequestMapping("doRegister")
  public String doRegister(User regUser, Map<String, Object> maps) {
    // 对密码进行sha,不保存原始密码
    String password = shaPasswordEncoder.encodePassword(regUser.getPassword(), KeyValue.PASS_SALT);
    regUser.setPassword(password);
    regUser.setCreateDate(new Date());
    regUser.setId(ObjectId.get().toString());

    int result = userServiceImpl.save(regUser);
    if (result == 1) {
      return "home/index";
    } else {
      maps.put(MSG, "账号注册失败。");
      return "user/register";
    }
  }
  /**
   * 执行实际的新增操作
   *
   * @param model 要新增的数据
   * @return 新增页面逻辑视图
   */
  @RequestMapping("/doLogin")
  public String doLogin(User user) {
    // 检查当前是否有登录用户
    if (cookieServiceImpl.isUserLogin()) {
      // 如果有,和用户填写的登录信息进行比较
      User curUser = cookieServiceImpl.getCurrentUser();

      boolean passEqual = passEqual(curUser.getPassword(), user.getPassword());
      if (passEqual && user.getUserAccount().equals(curUser.getUserAccount())) {
        // 如果成功,直接跳转
        return "home/index";
      } else {
        return checkUserLogin(user);
      }
    } else { // 没有登录直接查询数据库,获取用户信息
      return checkUserLogin(user);
    }
  }
 /**
  * 跳转到编辑信息页面
  *
  * @param model 查询参数,携带ID
  * @return 编辑页面
  */
 @RequestMapping("/edit")
 public String edit(User model, Map<String, Object> maps) {
   model = userServiceImpl.get(model.getId());
   maps.put("model", model);
   return "user/edit";
 }
 /**
  * 查看用户信息详情页。
  *
  * @param model 查询参数,携带ID
  * @return 用户信息详情页
  */
 @RequestMapping("/detail")
 public String detail(User model, Map<String, Object> maps) {
   model = userServiceImpl.get(model.getId());
   maps.put("model", model); // 将model放入视图中,供页面视图使用
   return "user/detail";
 }