|
|
@@ -71,15 +71,20 @@ public class AuthServiceImpl implements IAuthService {
|
|
|
/*运营端/企业端登录(PC/APP)*/
|
|
|
if (loginBase.getSystemType() == SystemTypeEnum.MANAGE.getCode()
|
|
|
|| loginBase.getSystemType() == SystemTypeEnum.COMPANY.getCode()) {
|
|
|
- return this.commonAuth(loginBase);
|
|
|
+ KwsUserResDto kwsUserResDto = systemService.queryByAccount(loginBase.getAccount());
|
|
|
+ if (Objects.nonNull(kwsUserResDto)) {
|
|
|
+ loginBase.setSystemType(SystemTypeEnum.COMPANY.getCode());
|
|
|
+ return this.commonAuth(loginBase);
|
|
|
+ }
|
|
|
+ return this.driverAuth(loginBase);
|
|
|
}
|
|
|
|
|
|
/*司机端*/
|
|
|
if (loginBase.getSystemType() == SystemTypeEnum.DRIVER.getCode()) {
|
|
|
KwsUserResDto kwsUserResDto = systemService.queryByAccount(loginBase.getAccount());
|
|
|
if (Objects.nonNull(kwsUserResDto)) {
|
|
|
- loginBase.setSystemType(SystemTypeEnum.COMPANY.getCode());
|
|
|
- return this.commonAuth(loginBase);
|
|
|
+ loginBase.setSystemType(loginBase.getSystemType());
|
|
|
+ return this.commonAppAuth(loginBase);
|
|
|
}
|
|
|
return this.driverAuth(loginBase);
|
|
|
}
|
|
|
@@ -272,6 +277,96 @@ public class AuthServiceImpl implements IAuthService {
|
|
|
return HttpResult.ok(loginRes);
|
|
|
}
|
|
|
|
|
|
+ public HttpResult commonAppAuth(LoginBase loginBase) {
|
|
|
+ /*查询用户信息**/
|
|
|
+ KwsUserResDto user = systemService.queryUserDetails(loginBase.getAccount(), SystemTypeEnum.COMPANY.getCode());
|
|
|
+
|
|
|
+ /*信息校验**/
|
|
|
+ if (user == null) {
|
|
|
+ return HttpResult.error(HttpStatus.QUERY_FAIL_CODE, "账号不存在,请检查并重新输入!");
|
|
|
+ }
|
|
|
+ boolean bool = PasswordUtils.validatePassword(loginBase.getAccount() + loginBase.getPassword(), user.getPassword(), user.getSalt());
|
|
|
+ if (loginBase.getLoginMethod() == LoginMethodEnum.ORDINARY.getValue() && !bool) {
|
|
|
+ return HttpResult.error(HttpStatus.CODE_10301, "密码不正确,请检查并重新输入!");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (loginBase.getLoginMethod() == LoginMethodEnum.SMS.getValue()) {
|
|
|
+ String key = StringUtils.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, DictEnum.SMS_LOGIN.getValue(), loginBase.getAccount());
|
|
|
+ String sms = RedissonUtils.getString(key);
|
|
|
+ if (!loginBase.getCaptcha().equals(sms)) {
|
|
|
+ throw new SystemException(HttpStatus.CODE_10301, HttpStatus.CAPTCHA_ERROR);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (user.getStatus() == Global.YES) {
|
|
|
+ return HttpResult.error(HttpStatus.CODE_10301, "您的账号已冻结,如需帮助,请致电平台客服!");
|
|
|
+ }
|
|
|
+
|
|
|
+ //企业信息
|
|
|
+ EntCacheResDto enterprise = systemService.queryEntDetails(user.getEntId());
|
|
|
+ if (enterprise == null) {
|
|
|
+ return HttpResult.error(HttpStatus.QUERY_FAIL_CODE, "账号没有归属企业,请检查并重新输入!");
|
|
|
+ }
|
|
|
+ if (enterprise != null && enterprise.getStatus() == Global.YES) {
|
|
|
+ return HttpResult.error(HttpStatus.QUERY_FAIL_CODE, "企业已冻结,如需帮助,请致电平台客服!");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /*生成token**/
|
|
|
+ String token = generateToken(loginBase, user.getId());
|
|
|
+ if (StringUtils.isBlank(token)) {
|
|
|
+ return HttpResult.error(HttpStatus.CODE_10301, "生成密钥失败,请联系系统管理员!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /*缓存信息**/
|
|
|
+// AsyncFactory.execute(new AsyncProcess(loginBase, user, null, enterprise, remoteUserService));
|
|
|
+ new AsyncProcess(loginBase, user, null, enterprise, remoteUserService).run();
|
|
|
+
|
|
|
+ /*生成refreshToken(记住密码时)**/
|
|
|
+ String refreshToken = null;
|
|
|
+ if (Boolean.TRUE.equals(loginBase.getRememberMe())) {
|
|
|
+ refreshToken = generateRefreshToken(loginBase, user.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /*数据组装**/
|
|
|
+
|
|
|
+ LoginResVo1 loginRes = new LoginResVo1();
|
|
|
+ loginRes.setId(user.getId());
|
|
|
+ loginRes.setName(user.getName());
|
|
|
+ loginRes.setAccount(user.getAccount());
|
|
|
+ loginRes.setPhone(user.getPhone());
|
|
|
+ loginRes.setPhoto(user.getPhoto());
|
|
|
+ loginRes.setIsMain(user.getIsMain());
|
|
|
+ loginRes.setStatus(user.getStatus());
|
|
|
+ loginRes.setDeptName(user.getDeptName());
|
|
|
+ loginRes.setClientId(user.getClientId());
|
|
|
+ loginRes.setEntId(user.getEntId());
|
|
|
+ loginRes.setFirmName(enterprise != null ? enterprise.getFirmName() : null);
|
|
|
+ loginRes.setApproval(enterprise != null ? enterprise.getApproval() : null);
|
|
|
+ loginRes.setEntTypes(enterprise != null ? enterprise.getEntTypes() : null);
|
|
|
+ loginRes.setEntTypeNames(enterprise != null ? enterprise.getEntTypeNames() : null);
|
|
|
+ loginRes.setClientType(loginBase.getClientType());
|
|
|
+ loginRes.setSystemType(user.getSystemType());
|
|
|
+ loginRes.setToken(token);
|
|
|
+ loginRes.setRefreshToken(refreshToken);
|
|
|
+ loginRes.setDeptId(user.getDeptId());
|
|
|
+ loginRes.setRoleId(user.getRoleId());
|
|
|
+ loginRes.setRoleName(user.getRoleName());
|
|
|
+ loginRes.setRoleList(user.getRoleInfoDto());
|
|
|
+ List<LoginResVo1.TabBarItem> tabBar = buildAppTabBar(loginBase, user.getRoleName(),0);
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tabBar)) {
|
|
|
+ loginRes.setTabBar(tabBar);
|
|
|
+ }
|
|
|
+ if (user.getSystemType().equals(SystemTypeEnum.MANAGE.getCode())) {
|
|
|
+ loginRes.setValid(true);
|
|
|
+ } else {
|
|
|
+ loginRes.setValid(!Objects.isNull(enterprise) && enterprise.getValid());
|
|
|
+ }
|
|
|
+
|
|
|
+ return HttpResult.ok(loginRes);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* @param params 登录参数
|
|
|
* @return 返回结构
|