package com.fr.plugin.web.hander; import com.fr.base.ServerConfig; import com.fr.decision.authority.data.User; import com.fr.decision.fun.impl.BaseHttpHandler; import com.fr.decision.webservice.v10.login.LoginService; import com.fr.json.JSONObject; import com.fr.plugin.beans.MyUserBean; import com.fr.plugin.config.YituanPri; import com.fr.plugin.yt.MyUserSyncManager; import com.fr.plugin.utils.MyUtils; import com.fr.plugin.utils.WebUtils; import com.fr.stable.StringUtils; import com.fr.third.springframework.web.bind.annotation.RequestMethod; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ScanLoginHandler extends BaseHttpHandler { @Override public RequestMethod getMethod() { return null; } @Override public String getPath() { return "/yt/scan_login"; } @Override public boolean isPublic() { return true; } @Override public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { String ticket = httpServletRequest.getParameter("ticket"); YituanPri instance = YituanPri.getInstance(); String secret = instance.getScanSecret(); String appId = instance.getScanId(); JSONObject jsonObject = new JSONObject(); String appAccessToken = WebUtils.getAppAccessToken(appId, secret); if (!MyUtils.isLicenseAvailable()) { jsonObject.put("status", -1); jsonObject.put("message", "请购买授权后使用"); com.fr.web.utils.WebUtils.flushSuccessMessageAutoClose(httpServletRequest, httpServletResponse, jsonObject); return; } if (StringUtils.isNotBlank(appAccessToken)) { try { LoginUserModel userInfo = WebUtils.getUserInfo(appId, appAccessToken, ticket); if (userInfo != null) { String openid = userInfo.getOpenid(); MyUserSyncManager userSyncManager = MyUserSyncManager.getInstance(); MyUserBean userBean = userSyncManager.getUserByOpenId(openid); if (userBean == null) { jsonObject.put("status", -1); jsonObject.put("message", userInfo.getUsername() + "登陆成功,但是未绑定帆软系统用户"); com.fr.web.utils.WebUtils.flushSuccessMessageAutoClose(httpServletRequest, httpServletResponse, jsonObject); return; } String fsUserName=""; String match = instance.getMatch(); if("1".equals(match)){//手机号 User byMobile = MyUserSyncManager.getFSUserByPhone(userBean.getPhone()); if (byMobile != null) { fsUserName=byMobile.getUserName(); } }else{ fsUserName=userBean.getFsUserName(); } if (StringUtils.isBlank(fsUserName)) { jsonObject.put("status", -1); jsonObject.put("message", userInfo.getUsername() + "登陆成功,但是未绑定帆软系统用户"); com.fr.web.utils.WebUtils.flushSuccessMessageAutoClose(httpServletRequest, httpServletResponse, jsonObject); return; } String callBack = httpServletRequest.getParameter("callBack"); LoginService.getInstance().login(httpServletRequest, httpServletResponse, fsUserName, "", ""); if (StringUtils.isNotBlank(callBack)) { httpServletResponse.sendRedirect(callBack); } else { // jsonObject.put("status", 0); // jsonObject.put("message", userInfo.getUsername() + "登陆成功, 绑定帆软系统用户" + userBean.getFsUserName()); String servletName = ServerConfig.getInstance().getServletName(); String url = instance.getUrl()+servletName; httpServletResponse.sendRedirect(url); // com.fr.web.utils.WebUtils.flushSuccessMessageAutoClose(httpServletRequest, httpServletResponse, jsonObject); } return; } } catch (Exception e) { e.printStackTrace(); } } jsonObject.put("status", -1); jsonObject.put("message", "登陆失败"); com.fr.web.utils.WebUtils.flushSuccessMessageAutoClose(httpServletRequest, httpServletResponse, jsonObject); } }