Procházet zdrojové kódy

提交员工管理

chenxiaofei před 2 měsíci
rodič
revize
79593b0e36

+ 98 - 3
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -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 返回结构