/** * 验证用户登录。 * * @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"; }