/**
   * 网页授权回调
   *
   * @param request
   * @param response
   */
  @RequestMapping("oauth")
  public void oauth(HttpServletRequest request, HttpServletResponse response) {

    try {
      WxMpService wxService = BuildAndGetWxService.buildAndGetWxService();
      String state = request.getParameter("state");
      String openId = null;
      Owners owner = null;
      LogBuilder.writeToLog("error in oauth");
      if (request.getSession().getAttribute("openId") == null) {
        WxMpOAuth2AccessToken wxMpOAuth2AccessToken =
            wxService.oauth2getAccessToken(request.getParameter("code"));
        openId = wxMpOAuth2AccessToken.getOpenId();
        LogBuilder.writeToLog(openId);
        request.getSession().setAttribute("openId", openId);
      } else {
        openId = (String) request.getSession().getAttribute("openId");
        LogBuilder.writeToLog("error");
      }
      if (state.equals("1")) {
        response.sendRedirect("/owner/ownerBind?openId=" + openId);
        return;
      } else if (state.equals("2")) {
        owner = (Owners) request.getSession().getAttribute("owner");
        if (owner == null) {
          owner = ownerService.getOwnerByOpenId(openId);
        }
        if (owner != null) {
          request.getSession().setAttribute("owner", owner);
          response.sendRedirect("/owner/ownerProfile?openId=" + openId);
          return;
        } else {
          request.getSession().setAttribute("visitor", "visitor");
        }
        response.sendRedirect("/owner/ownerBind?openId=" + openId);
        return;
      } else if (state.equals("3")) {

        owner = (Owners) request.getSession().getAttribute("owner");
        if (owner == null) {
          owner = ownerService.getOwnerByOpenId(openId);
        }
        if (owner != null) {
          request.getSession().setAttribute("owner", owner);

        } else {
          request.getSession().setAttribute("visitor", "visitor");
        }
        response.sendRedirect("/custom/index.jsp");
        return;
      } else if (state.equals("4")) {
        owner = (Owners) request.getSession().getAttribute("owner");
        if (owner == null) {
          owner = ownerService.getOwnerByOpenId(openId);
        }
        if (owner != null) {
          request.getSession().setAttribute("owner", owner);
          response.sendRedirect("/custom/comment.jsp");
          return;
        } else {
          request.getSession().setAttribute("visitor", "visitor");
          response.sendRedirect("/owner/ownerBind?openId=" + openId);
          return;
        }

      } else if (state.equals("5")) {
        owner = (Owners) request.getSession().getAttribute("owner");
        if (owner == null) {
          owner = ownerService.getOwnerByOpenId(openId);
        }
        if (owner != null) {
          request.getSession().setAttribute("owner", owner);
          response.sendRedirect("/custom/repair.jsp");
          return;
        } else {
          request.getSession().setAttribute("visitor", "visitor");
          response.sendRedirect("/owner/ownerBind?openId=" + openId);
          return;
        }

      } else if (state.equals("6")) {
        owner = (Owners) request.getSession().getAttribute("owner");
        if (owner == null) {
          owner = ownerService.getOwnerByOpenId(openId);
        }
        if (owner != null) {
          request.getSession().setAttribute("owner", owner);
          response.sendRedirect("/owner/myChargeAndMessage?openId=" + openId);
          return;
        } else {
          request.getSession().setAttribute("visitor", "visitor");
          response.sendRedirect("/owner/ownerBind?openId=" + openId);
          return;
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
      LogBuilder.writeToLog(e.getMessage());
    }
  }