diff --git a/mhd-auth/src/main/java/com/mhd/auth/app/application/service/TokenLoginApplicationService.java b/mhd-auth/src/main/java/com/mhd/auth/app/application/service/TokenLoginApplicationService.java index 9843203d6..0814d4546 100644 --- a/mhd-auth/src/main/java/com/mhd/auth/app/application/service/TokenLoginApplicationService.java +++ b/mhd-auth/src/main/java/com/mhd/auth/app/application/service/TokenLoginApplicationService.java @@ -40,6 +40,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -156,7 +157,8 @@ public class TokenLoginApplicationService { }else { userDTO.setBusinessType(4); } - userDTO.setOrganizationName(sysTenantsPo.getOrganizationName()); + userDTO.setOrganizationName(StringUtils.isNotBlank(loginDTO.getOrganizationName()) + ? loginDTO.getOrganizationName() : sysTenantsPo.getOrganizationName()); userResult = userServiceFeign.registerAddUser(userDTO, SecurityConstants.INNER); userInfo = userResult.getData(); } else { @@ -572,4 +574,29 @@ public class TokenLoginApplicationService { sysPasswordService.validateByWms(userPo, verificationCode, 1); return userInfo; } + + /** + * 根据域名获取组织信息(免Token,供司机APP注册时选择组织用) + */ + public AjaxResult getOrganizationByPath(String path) { + if (StringUtils.isBlank(path)) { + return AjaxResult.error("域名不能为空"); + } + try { + AjaxResult result = organizationServiceFeign.getOrganizationByPath(path); + if (ObjectUtil.isNull(result) || ObjectUtil.isNull(result.get("data"))) { + return AjaxResult.error("未找到对应组织"); + } + SysTenantsPo sysTenantsPo = JSON.parseObject(JSON.toJSONString(result.get("data")), SysTenantsPo.class); + Long topOrganizationId = sysTenantsPo.getOrganizationId(); + // 返回一级组织ID和名称,前端可据此展示组织选择 + Map data = new java.util.HashMap<>(); + data.put("organizationId", topOrganizationId); + data.put("organizationName", sysTenantsPo.getOrganizationName()); + return AjaxResult.success(data); + } catch (Exception e) { + log.error("获取组织信息失败, path={}", path, e); + return AjaxResult.error("获取组织信息失败:" + e.getMessage()); + } + } } diff --git a/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/dto/LoginDTO.java b/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/dto/LoginDTO.java index 010a16a8f..bbd7dbf08 100644 --- a/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/dto/LoginDTO.java +++ b/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/dto/LoginDTO.java @@ -37,4 +37,7 @@ public class LoginDTO { @ApiModelProperty(name = "组织ID(司机选择组织,不传默认一级组织)") private Long organizationId; + @ApiModelProperty(name = "组织名称(司机选择组织时传入)") + private String organizationName; + } diff --git a/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/facade/AppTokenController.java b/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/facade/AppTokenController.java index a7d62da14..ff4654e0b 100644 --- a/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/facade/AppTokenController.java +++ b/mhd-auth/src/main/java/com/mhd/auth/app/interfaces/facade/AppTokenController.java @@ -9,11 +9,13 @@ import com.mhd.common.core.domain.po.UserPo; import com.mhd.common.core.utils.JwtUtils; import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.annotation.RepeatSubmit; import com.mhd.common.security.auth.AuthUtil; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.system.api.model.LoginUser; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -75,6 +77,15 @@ public class AppTokenController extends BaseController { return R.ok(); } + /** + * 根据域名获取组织信息(免Token,供司机APP注册时选择组织用) + */ + @ApiOperation("根据域名获取组织信息") + @GetMapping("/getOrganizationByPath/{path}") + public AjaxResult getOrganizationByPath(@PathVariable("path") String path) { + return tokenLoginApplicationService.getOrganizationByPath(path); + } + /** * @Description wms 新登录接口