/**
   * 获取用户信息
   *
   * @return
   */
  @RequestMapping(value = "/v1.0/users/{id}", method = RequestMethod.GET)
  @ResponseBody
  public ResultJSON getUserInfo(
      @PathVariable Long id, HttpServletRequest request, HttpServletResponse response) {
    // 返回json的结果对象
    ResultJSON result = new ResultJSON();
    // 异常
    CustomException exception = (CustomException) request.getAttribute(CustomException.request_key);
    // 当前登录用户id
    Long currentUserId = (Long) request.getAttribute("currentUserId");

    // 不同的子系统,使用不同的model参数
    String model = request.getParameter("model") == null ? " " : request.getParameter("model");

    // 返回
    Object data = null;

    try {
      if (currentUserId != null && exception == null) {
        data = userService.getUserSimpleById(id, model);
        exception = CustomException.SUCCESS;
      } else {
        exception = CustomException.INVALIDACCESSTOKEN;
      }
    } catch (Exception e) {
      exception = CustomException.getCustomExceptionByCode(e.getMessage());
      // 如果是普通的异常
      if (exception.getStatus() == 500) {
        e.printStackTrace();
      }
    } finally {
      result.setCode(exception.getCode());
      result.setMessage(exception.getMessage());
      result.setData(data == null ? "" : data);
      result.setSign("");
    }
    return result;
  }
  /**
   * 登陆、注销
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping("/v1.0/users/login")
  @ResponseBody
  public ResultJSON Login(HttpServletRequest request, HttpServletResponse response) {

    // 返回json的结果对象
    ResultJSON result = new ResultJSON();
    // 异常
    CustomException exception = (CustomException) request.getAttribute(CustomException.request_key);
    // 当前登录用户id
    Long currentUserId = (Long) request.getAttribute("currentUserId");

    String _method = request.getParameter("_method");

    // 不同的子系统,使用不同的model参数
    String model = request.getParameter("model") == null ? " " : request.getParameter("model");

    // 注销
    if (StringUtils.isNotEmpty(_method) && HttpMethod.DELETE.name().equals(_method)) {

      try {

        if (currentUserId != null && exception == null) {
          String token = request.getHeader("Authorization");
          userService.logout(token);
          exception = CustomException.SUCCESS;
        } else {
          exception = CustomException.INVALIDACCESSTOKEN;
        }
      } catch (Exception e) {
        exception = CustomException.getCustomExceptionByCode(e.getMessage());
        // 如果是普通的异常
        if (exception.getStatus() == 500) {
          e.printStackTrace();
        }
      } finally {
        result.setCode(exception.getCode());
        result.setMessage(exception.getMessage());
        result.setData("");
        result.setSign("");
      }
    } else {
      String userName = request.getParameter("user_name");
      String userPwd = request.getParameter("user_pwd");
      // 返回用户的信息
      //            UserLoginResultInfo data = new UserLoginResultInfo();
      UserSimple user = null;
      try {
        // 用户登录
        SRegister reg = registerService.login(userName, userPwd);
        // 获取用户信息
        user = userService.getUserSimpleById(reg.getId(), model);

        // 如果头像不是系统头像,而是在文件服务中保存的头像的话,需要修改userimage 为 (文件服务中保存的)头像的可访问路径
        if (user.getUserImage() != null
            && user.getUserImage().trim().contains(ZhlResourceCenterWrap.userimage_upload_prefix)) {
          // 获取文件服务器的访问url
          String resServiceLocal = (String) request.getAttribute("resServiceLocal");
          String currentResPath = (String) request.getAttribute("currentResPath");
          String temp = ZhlResourceCenterWrap.getDownUrl(resServiceLocal, user.getUserImage());
          temp = temp.replace(resServiceLocal, currentResPath);
          user.setUserImage(temp);
        }

        //                // 成功,增加用户的在线信息
        //                Boolean repeatLoginVaildFlag = false;//
        // repeatLoginVaildFlag资源中心不允许一个用户重复登录
        //                JOnlineUsers online = jOnlineUsersService.getUserOnlines(reg.getId(),
        // request, repeatLoginVaildFlag);

        //                BeanUtils.copyProperties(data, user);
        //                data.setToken(user.getToken());
        exception = CustomException.SUCCESS;
      } catch (Exception e) {
        exception = CustomException.getCustomExceptionByCode(e.getMessage());
        // 如果是普通的异常
        if (exception.getStatus() == 500) {
          e.printStackTrace();
        }
      } finally {
        result.setCode(exception.getCode());
        result.setMessage(exception.getMessage());
        result.setData(user == null ? "" : user);
        result.setSign("");
      }
    }
    return result;
  }