Commit d6097a4e by 徐高华

login

parent aef43022
...@@ -16,6 +16,7 @@ import com.gic.haoban.common.anno.IgnoreLogin; ...@@ -16,6 +16,7 @@ import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.AuthWebRequestUtil; import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.EntityUtil; import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse; import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO;
import com.gic.haoban.manage.api.dto.LoginDTO; import com.gic.haoban.manage.api.dto.LoginDTO;
import com.gic.haoban.manage.api.dto.StaffDTO; import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.WxApplicationDTO; import com.gic.haoban.manage.api.dto.WxApplicationDTO;
...@@ -143,36 +144,26 @@ public class LoginController extends WebBaseController { ...@@ -143,36 +144,26 @@ public class LoginController extends WebBaseController {
*/ */
@IgnoreLogin @IgnoreLogin
@RequestMapping("yw-login") @RequestMapping("yw-login")
public HaobanResponse ywLogin(String wxEnterpriseId, String random, HttpServletResponse response) { public HaobanResponse ywLogin(String enterpriseId , String wxEnterpriseId, String random, HttpServletResponse response) {
//判断是否存在random //判断是否存在random
Object o = RedisUtil.getCache(random); Object o = RedisUtil.getCache(random);
if (o == null) { if (o == null) {
return resultResponse(HaoBanErrCode.ERR_4); return resultResponse(HaoBanErrCode.ERR_4);
} }
StaffDTO staff = staffApiService.getAndAddSupperAdmin(wxEnterpriseId); if(StringUtils.isBlank(enterpriseId)) {
if (staff == null) { List<EnterpriseDetailDTO> list = this.wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId) ;
logger.info("运维登录超级管理员不存在"); if(CollectionUtils.isEmpty(list)) {
return resultResponse(HaoBanErrCode.ERR_6); return resultResponse(HaoBanErrCode.ERR_4);
} }
LoginDTO loginVO = new LoginDTO(); enterpriseId = list.get(0).getEnterpriseId() ;
loginVO.setWxEnterpriseId(wxEnterpriseId);
loginVO.setStaffDTO(staff);
WebLoginDTO webLoginDTO = EntityUtil.changeEntityByOrika(WebLoginDTO.class, loginVO);
AuthWebRequestUtil.setSessionUser(webLoginDTO);
String redirectUri = config.getHost() + "index";
redirectUri = redirectUri.replace("haoban-manage3-web", "haoban-3/#");
String token = ToolUtil.randomUUID() + "-" + ToolUtil.randomStringByTime();
AuthWebRequestUtil.setAppLoginUser(token, webLoginDTO);
try {
Cookie cookie = new Cookie("token", token);
cookie.setPath("/");
response.addCookie(cookie);
response.sendRedirect(redirectUri);
response.setHeader("token", token);
} catch (IOException e) {
logger.error("好办登录失败",e);
} }
return resultResponse(HaoBanErrCode.ERR_1); String gicSuperPhone = clerkService.getSuperAdminPhoneNumber(enterpriseId) ;
logger.info("登录商户id={},超管手机={}",enterpriseId,gicSuperPhone);
String result = this.doLogin(wxEnterpriseId, enterpriseId, gicSuperPhone, response) ;
if(StringUtils.isNotBlank(result)) {
return resultResponse(HaoBanErrCode.ERR_4);
}
return null ;
} }
/** /**
...@@ -212,7 +203,13 @@ public class LoginController extends WebBaseController { ...@@ -212,7 +203,13 @@ public class LoginController extends WebBaseController {
return model; return model;
} }
StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(detailDTO.getWxEnterpriseId(), "86", loginPhoneNumber); String result = this.doLogin(wxEnterpriseId, gicEnterpriseId, loginPhoneNumber, response) ;
if(StringUtils.isNotBlank(result)) {
ModelAndView model = new ModelAndView(new RedirectView("/haoban-3/#/gic-error", false, false));
return model;
}
/* StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(detailDTO.getWxEnterpriseId(), "86", loginPhoneNumber);
if (null == staff) { if (null == staff) {
logger.info("登录用户手机号不存在!gicEnterpriseId:{}", gicEnterpriseId); logger.info("登录用户手机号不存在!gicEnterpriseId:{}", gicEnterpriseId);
ModelAndView model = new ModelAndView(new RedirectView("/haoban-3/#/gic-error", false, false)); ModelAndView model = new ModelAndView(new RedirectView("/haoban-3/#/gic-error", false, false));
...@@ -281,11 +278,84 @@ public class LoginController extends WebBaseController { ...@@ -281,11 +278,84 @@ public class LoginController extends WebBaseController {
response.setHeader("token", token); response.setHeader("token", token);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
}*/
return null;
}
private String doLogin(String wxEnterpriseId , String gicEnterpriseId , String loginPhoneNumber, HttpServletResponse response) {
StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId, "86", loginPhoneNumber);
if (null == staff) {
logger.info("登录用户手机号不存在!gicEnterpriseId:{}", gicEnterpriseId);
return "登录用户手机号不存在";
}
WxApplicationDTO application = wxApplicationApiService.selectByWxEnterpriseIdAndApplicationType(wxEnterpriseId, 2);
if (null == application) {
logger.info("登录企业应用 没授权!gicEnterpriseId:{}",gicEnterpriseId);
return "登录企业应用 没授权";
}
WxEnterpriseDTO enterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
if (null == enterprise) {
logger.info("登录失败,不存在对应企业:wxEnterpriseId{}", wxEnterpriseId);
return "登录失败,不存在对应企业";
}
//获取管理员列表
String corpid = enterprise.getCorpid();
String adminList = qywxSuiteApiService.getAdminList(corpid, application.getSiteId(), Integer.parseInt(application.getAgentId()));
List<String> userIds = new ArrayList<String>();
if (StringUtils.isNotBlank(adminList)) {
JSONArray jsonArr = JSON.parseArray(adminList);
for (Object object : jsonArr) {
JSONObject json = JSON.parseObject(JSON.toJSONString(object));
userIds.add(json.getString("userid"));
}
}
//兼容
if (corpid.length() > 20) {
if (!userIds.contains(staff.getWxOpenUseId())) {
logger.info("登录失败,当前用户不是管理员:{}", JSON.toJSONString(userIds));
return "登录失败,当前用户不是管理员";
}
} else {
if (!userIds.contains(staff.getWxUserId())) {
logger.info("登录失败,当前用户不是管理员:{}", JSON.toJSONString(userIds));
return "登录失败,当前用户不是管理员";
}
}
LoginDTO loginDTO = new LoginDTO();
loginDTO.setWxEnterpriseId(wxEnterpriseId);
loginDTO.setEnterpriseId(gicEnterpriseId);
//导购id
ClerkDTO clerk = clerkService.getClerkByPhoneNumber(loginPhoneNumber, gicEnterpriseId);
if (clerk != null) {
staff.setClerkId(clerk.getClerkId());
staff.setClerkName(clerk.getClerkName());
staff.setClerkCode(clerk.getClerkCode());
}
loginDTO.setStaffDTO(staff);
String redirectUri = config.getHost() + "index";
redirectUri = redirectUri.replace("haoban-manage3-web", "haoban-3/#");
String token = ToolUtil.randomUUID() + "-" + ToolUtil.randomStringByTime();
WebLoginDTO webLoginDTO = EntityUtil.changeEntityByOrika(WebLoginDTO.class, loginDTO);
AuthWebRequestUtil.setSessionUser(webLoginDTO);
AuthWebRequestUtil.setAppLoginUser(token, webLoginDTO);
try {
Cookie cookie = new Cookie("token", token);
cookie.setPath("/");
response.addCookie(cookie);
response.sendRedirect(redirectUri);
response.setHeader("token", token);
} catch (IOException e) {
e.printStackTrace();
} }
return null; return null;
} }
@RequestMapping("login_local") @RequestMapping("login_local")
@Deprecated @Deprecated
public HaobanResponse login() { public HaobanResponse login() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment