|
@@ -19,26 +19,22 @@ import org.dromara.common.core.utils.MapstructUtils;
|
|
|
import org.dromara.common.core.utils.MessageUtils;
|
|
|
import org.dromara.common.core.utils.StreamUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
+import org.dromara.common.redis.utils.RedisUtils;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
import org.dromara.common.social.config.properties.SocialLoginConfigProperties;
|
|
|
import org.dromara.common.social.config.properties.SocialProperties;
|
|
|
import org.dromara.common.social.utils.SocialUtils;
|
|
|
import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
-import org.dromara.system.domain.app.AppletLoginForm;
|
|
|
import org.dromara.system.domain.SysClient;
|
|
|
+import org.dromara.system.domain.app.AppletLoginForm;
|
|
|
import org.dromara.system.domain.bo.SysTenantBo;
|
|
|
import org.dromara.system.domain.school.bo.SysSchoolNameBo;
|
|
|
import org.dromara.system.domain.school.vo.SysSchoolNameVo;
|
|
|
-import org.dromara.system.domain.vo.FormalParentsStudentVo;
|
|
|
import org.dromara.system.domain.vo.SysRoleVo;
|
|
|
import org.dromara.system.domain.vo.SysTenantVo;
|
|
|
import org.dromara.system.domain.vo.SysUserVo;
|
|
|
-import org.dromara.system.mapper.FormalParentsStudentMapper;
|
|
|
import org.dromara.system.mapper.SysUserMapper;
|
|
|
-import org.dromara.system.service.ISysClientService;
|
|
|
-import org.dromara.system.service.ISysConfigService;
|
|
|
-import org.dromara.system.service.ISysSocialService;
|
|
|
-import org.dromara.system.service.ISysTenantService;
|
|
|
+import org.dromara.system.service.*;
|
|
|
import org.dromara.system.service.school.ISysSchoolNameService;
|
|
|
import org.dromara.web.domain.vo.LoginTenantVo;
|
|
|
import org.dromara.web.domain.vo.LoginVo;
|
|
@@ -53,7 +49,6 @@ import java.net.URL;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -78,8 +73,6 @@ public class AuthController {
|
|
|
private final ISysClientService clientService;
|
|
|
private final ISysSchoolNameService sysSchoolNameService;
|
|
|
private final SysUserMapper sysUserMapper;
|
|
|
- private final FormalParentsStudentMapper formalParentsStudentMapper;
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* 登录方法
|
|
@@ -98,6 +91,14 @@ public class AuthController {
|
|
|
log.info("客户端id: {} 认证类型:{} 异常!.", clientId, grantType);
|
|
|
return R.fail(MessageUtils.message("auth.grant.type.error"));
|
|
|
}
|
|
|
+ //去redis中查询当前账号登录租户id = loginBody.get
|
|
|
+ Object tenantId = RedisUtils.getCacheObject(loginBody.getUsername() + ":login");
|
|
|
+ if (ObjectUtil.isEmpty(tenantId)) {
|
|
|
+ //如果是空,则去查询
|
|
|
+ SysUserVo sysUserVo = sysUserMapper.selectUserByUserName(loginBody.getUsername());
|
|
|
+ tenantId = sysUserVo.getTenantId();
|
|
|
+ }
|
|
|
+ loginBody.setTenantId(tenantId.toString());
|
|
|
// 校验租户
|
|
|
loginService.checkTenant(loginBody.getTenantId());
|
|
|
// 登录
|
|
@@ -107,27 +108,36 @@ public class AuthController {
|
|
|
/**
|
|
|
* 微信登录方法
|
|
|
*
|
|
|
- * @param form 登录信息
|
|
|
+ * @param form 登录信息
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@SaIgnore
|
|
|
@PostMapping("/weChatLogin")
|
|
|
- public R<LoginVo> weChatLogin(@Validated @RequestBody AppletLoginForm form){
|
|
|
+ public R<LoginVo> weChatLogin(@Validated @RequestBody AppletLoginForm form) {
|
|
|
LoginBody loginBody = new LoginBody();
|
|
|
String clientId = "428a8310cd442757ae699df5d894f051";
|
|
|
String grantType = "password";
|
|
|
loginBody.setClientId(clientId);
|
|
|
loginBody.setGrantType(grantType);
|
|
|
- loginBody.setTenantId(form.getTenantId());
|
|
|
+
|
|
|
SysClient client = clientService.queryByClientId(clientId);
|
|
|
// 查询不到 client 或 client 内不包含 grantType
|
|
|
if (ObjectUtil.isNull(client) || !StringUtils.contains(client.getGrantType(), grantType)) {
|
|
|
log.info("客户端id: {} 认证类型:{} 异常!.", clientId, grantType);
|
|
|
return R.fail(MessageUtils.message("auth.grant.type.error"));
|
|
|
}
|
|
|
+ LoginVo loginVo = IAuthStrategy.weChatLogin(form, loginBody, client);
|
|
|
+ //去redis中查询当前账号登录租户id = loginBody.get
|
|
|
+ Object tenantId = RedisUtils.getCacheObject(loginBody.getUsername() + ":login");
|
|
|
+ if (ObjectUtil.isEmpty(tenantId)) {
|
|
|
+ //如果是空,则去查询
|
|
|
+ SysUserVo sysUserVo = sysUserMapper.selectUserByUserName(loginBody.getUsername());
|
|
|
+ tenantId = sysUserVo.getTenantId();
|
|
|
+ }
|
|
|
+ loginBody.setTenantId(tenantId.toString());
|
|
|
// 校验租户
|
|
|
loginService.checkTenant(loginBody.getTenantId());
|
|
|
- return R.ok(IAuthStrategy.weChatLogin(form,loginBody,client));
|
|
|
+ return R.ok(loginVo);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -244,12 +254,12 @@ public class AuthController {
|
|
|
for (SysUserVo sysUserVo : userList) {
|
|
|
boolean bl = false;
|
|
|
for (SysRoleVo role : sysUserVo.getRoles()) {
|
|
|
- if("parents".equals(role.getRoleKey())){
|
|
|
- bl = true ;
|
|
|
+ if ("parents".equals(role.getRoleKey())) {
|
|
|
+ bl = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if(bl){
|
|
|
+ if (bl) {
|
|
|
tList.add(sysUserVo.getTenantId());
|
|
|
}
|
|
|
|