提交 edef017d authored 作者: hzh's avatar hzh

代码优化

上级 dc194110
......@@ -154,9 +154,10 @@ public interface RemoteUserService {
* 根据手机号查询租户id集合
*
* @param phone 手机号
* @param userType 手机号
* @return 租户id集合
*/
List<String> selectTenantIdsByPhone(String phone);
List<String> selectTenantIdsByPhone(String phone,String userType);
/**
* 注册用户到云上服务器
......
......@@ -22,6 +22,7 @@ import org.dromara.auth.service.SysLoginService;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginBody;
import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.utils.*;
import org.dromara.common.encrypt.annotation.ApiEncrypt;
import org.dromara.common.json.utils.JsonUtils;
......@@ -213,7 +214,7 @@ public class TokenController {
//通过手机号过滤
if (StringUtils.isNotEmpty(phone)){
List<String> tenantIds = remoteUserService.selectTenantIdsByPhone(phone);
List<String> tenantIds = remoteUserService.selectTenantIdsByPhone(phone, UserType.SYS_USER.getUserType());
tenantList = StreamUtils.filter(tenantList, vo -> tenantIds.contains(vo.getTenantId()));
}
......
......@@ -19,6 +19,11 @@ public class XcxLoginBody extends LoginBody {
*/
private String appid;
/**
* 手机号
*/
private String phone;
/**
* 小程序code
*/
......
......@@ -34,5 +34,9 @@ public class XcxPhoneLoginBody extends LoginBody {
*/
@NotBlank(message = "用户凭证不能为空")
private String sessionKey;
/**
* 手机号
*/
private String phone;
}
......@@ -6,6 +6,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.auth.service.IAuthStrategy;
import org.dromara.common.core.domain.model.LoginBody;
import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.mall.api.domain.member.RemoteMember;
import org.dromara.mall.api.domain.member.RemoteMemberSave;
......@@ -82,4 +83,13 @@ public abstract class AbstractMallStrategy implements IAuthStrategy {
return memberId;
}
protected void validatePhone(String validatePhone, String loginPhone) {
if (StringUtils.isBlank(validatePhone)) {
return;
}
if (StringUtils.equals(validatePhone, loginPhone)) {
throw new ServiceException(String.format("微信授权手机号%s与您输入的员工手机号%s不匹配,请核对后登录", loginPhone, validatePhone));
}
}
}
......@@ -73,6 +73,9 @@ public class XcxAuthStrategy extends AbstractMallStrategy implements IAuthStrate
//获取会员id
Long memberId = getMemberId(loginBody, loginUser);
//校验手机号
validatePhone(loginBody.getPhone(), loginUser.getPhone());
SaLoginModel model = new SaLoginModel();
model.setDevice(client.getDeviceType());
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
......
......@@ -56,6 +56,10 @@ public class XcxPhoneAuthStrategy extends AbstractMallStrategy implements IAuthS
.setTenantId(loginBody.getTenantId())
.setOpenId(loginBody.getOpenId())
.setPhonenumber(phone));
//校验手机号
validatePhone(loginBody.getPhone(), phone);
XcxLoginUser loginUser = remoteUserService.getUserInfoByOpenid(loginBody.getOpenId(), loginBody.getTenantId());
if (loginUser == null) {
......
......@@ -381,10 +381,11 @@ public class RemoteUserServiceImpl implements RemoteUserService {
* 通过手机号查询租户id集合
*
* @param phone 手机号
* @param userType 手机号
* @return 租户id集合
*/
@Override
public List<String> selectTenantIdsByPhone(String phone) {
public List<String> selectTenantIdsByPhone(String phone, String userType) {
return userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, phone))
.stream().map(SysUser::getTenantId).collect(Collectors.toList());
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论