You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
4.7 KiB
101 lines
4.7 KiB
3 years ago
|
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);
|
||
|
}
|
||
|
}
|