diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/LoginController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/LoginController.java index 4e8f30c89..a413f0275 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/LoginController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/LoginController.java @@ -88,6 +88,18 @@ public class LoginController { return Result.success(resultMap); } + @OperLog(operModul = "用户登录", operType = "用户id登录", operDesc = "用户id登录") + @ApiOperation(value = "用户id登录", notes = "用户id登录", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userId", required = true, value = "用户id", paramType = "body"), + @ApiImplicitParam(name = "projectSn", required = false, value = "新用户账号类型需要传此参数", paramType = "body"), + }) + @PostMapping(value = "/userId/login") + public Result> userIdLogin(@RequestBody Map map) { + Map resultMap = systemUserService.userIdLogin(map); + return Result.success(resultMap); + } + @OperLog(operModul = "人员/设备登录", operType = "人员/设备登录", operDesc = "人员/设备登录") @ApiOperation(value = "人员/设备登录", notes = "人员/设备登录", httpMethod = "POST") @ApiImplicitParams({ diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java index 586fcfca2..5e3ac6496 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java @@ -212,6 +212,13 @@ public interface ISystemUserService extends IService { */ Map md5Login(Map map); + /** + * 用户id登录 + * @param map + * @return + */ + Map userIdLogin(Map map); + /** * 星纵修改密码 * diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java index aea34b11d..dc5136671 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java @@ -298,6 +298,7 @@ public class SystemUserServiceImpl extends ServiceImpl result = new HashMap<>(16); + String account = systemUser.getAccount(); if ((Objects.equals(systemUser.getAccountType(), SystemUserAccountTypeEnum.NEW_USER.getValue()) || Objects.equals(systemUser.getAccountType(), SystemUserAccountTypeEnum.SUPPLIER.getValue())) && StringUtils.isBlank(MapUtils.getString(map, "headquartersSn"))) { try { @@ -306,7 +307,7 @@ public class SystemUserServiceImpl extends ServiceImpl menuAuthority = new HashMap<>(16); - menuAuthority.put("moduleList", new ArrayList<>()); - menuAuthority.put("menuList", new ArrayList<>()); - result.put("menuAuthority", menuAuthority); + String projectSn = MapUtils.getString(map, "projectSn"); + if (StrUtil.isNotBlank(projectSn)) { + CompanyConfig companyConfig = companyConfigMapper.getCompanyConfigByProject(projectSn); + if (companyConfig.getExpireTime() == null) { + throw new OpenAlertException(MessageUtil.get("loginEnabledErr")); + } else { + DateTime expireTime = DateUtil.parse(companyConfig.getExpireTime(), "yyyy-MM-dd"); + DateTime currentDate = new DateTime(); + + if (expireTime.getTime() < currentDate.getTime()) { + throw new OpenAlertException(MessageUtil.get("loginExpiredErr")); + } else { + companyConfig.setDiffDay((int) DateUtil.between(currentDate, DateUtil.offset(expireTime, DateField.DAY_OF_MONTH, 1), DateUnit.DAY)); + } + } + if (companyConfig == null || companyConfig.getIsEnable() == 0) { + throw new OpenAlertException(MessageUtil.get("loginEnabledErr")); + } + if (companyConfig.getDiffDay() == 0) { + throw new OpenAlertException(MessageUtil.get("loginExpiredErr")); + } + if (companyConfig.getEffectiveTime() == null) { + companyConfig.setEffectiveTime(60 * 60 * 24 * 30 * 12); + } + Map menuAuthority = getUserAuthority(null, SystemUserAccountTypeEnum.PROJECT_ACCOUNT.getValue(), projectSn, null, companyConfig.getStyleType()); + result.put("menuAuthority", menuAuthority); + } else { + Map menuAuthority = new HashMap<>(16); + menuAuthority.put("moduleList", new ArrayList<>()); + menuAuthority.put("menuList", new ArrayList<>()); + result.put("menuAuthority", menuAuthority); + } result.put("scope", scope); result.put("expire", false); result.put("personMail", systemUser.getPersonMail()); @@ -410,7 +439,7 @@ public class SystemUserServiceImpl extends ServiceImpl userIdLogin(Map map) { + try { + SystemUser systemUser = systemUserMapper.selectById(MapUtils.getString(map, "userId")); + if (systemUser == null || systemUser.getUserId() == null) { + throw new OpenAlertException("账号不存在"); + } + authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(systemUser.getAccount(), systemUser.getShowPassword())); + return doLogin(map, systemUser); + } catch (AuthenticationException e) { + log.error("error:", e); + throw new CustomException("Invalid username/password supplied", HttpStatus.UNPROCESSABLE_ENTITY); + } + } + @Override public void xzUpdatePw(SystemUser systemUser) { Integer isCheckCode = systemUser.getIsCheckCode();