Browse Source

feat: app phone login

master
wangxiang 1 year ago
parent
commit
2e6eef2eed
  1. 4
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java
  2. 2
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/AppService.java
  3. 25
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java

4
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java

@ -59,8 +59,8 @@ public class AppController { @@ -59,8 +59,8 @@ public class AppController {
@Inner(false)
@GetMapping("/phoneRegister")
public R phoneRegister(String phone, String captcha, String identityProvider, String tenantId) {
return R.ok(appService.phoneRegister(phone, captcha, identityProvider, tenantId));
public R phoneRegister(String phone, String captcha, String identityProvider) {
return R.ok(appService.phoneRegister(phone, captcha, identityProvider));
}

2
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/AppService.java

@ -25,5 +25,5 @@ public interface AppService { @@ -25,5 +25,5 @@ public interface AppService {
* @param phone 手机号
* @param captcha 验证码
*/
SsoUser phoneRegister(String phone, String captcha, String identityProvider, String tenantId);
SsoUser phoneRegister(String phone, String captcha, String identityProvider);
}

25
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java

@ -1,11 +1,10 @@ @@ -1,11 +1,10 @@
package com.cloud.kicc.system.service.impl;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.javaer.aliyun.sms.SmsClient;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.CacheConstants;
@ -22,7 +21,6 @@ import lombok.extern.slf4j.Slf4j; @@ -22,7 +21,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
@ -65,12 +63,12 @@ public class AppServiceImpl implements AppService { @@ -65,12 +63,12 @@ public class AppServiceImpl implements AppService {
}
int code = smsClient.sendVerificationCode("ali-code", phone);
log.info("手机号生成验证码成功:{},{}", phone, code);
redisTemplate.opsForValue().set(CacheConstants.VERIFICATION_CODE + phone, String.valueOf(code), SecurityConstants.CODE_TIME, TimeUnit.SECONDS);
redisTemplate.opsForValue().set(CacheConstants.VERIFICATION_CODE + phone, String.valueOf(code), SecurityConstants.CODE_TIME * 5, TimeUnit.SECONDS);
return R.ok(Boolean.TRUE);
}
@DSTransactional
public SsoUser phoneRegister(String phone, String captcha, String identityProvider, String tenantId) {
public SsoUser phoneRegister(String phone, String captcha, String identityProvider) {
// 设置不区分大小写,全部以小写验证
Validator.validateMobile(phone, "手机号码不合法");
String code = captcha.toLowerCase();
@ -84,14 +82,6 @@ public class AppServiceImpl implements AppService { @@ -84,14 +82,6 @@ public class AppServiceImpl implements AppService {
throw new ValidateCodeException("验证码不合法");
}
List<SsoUser> findSsoUser = iSsoUserService.list(Wrappers.<SsoUser>lambdaQuery()
.eq(SsoUser::getPhone, phone)
.eq(SsoUser::getTenantId, tenantId)
.eq(SsoUser::getIdentityProvider, identityProvider));
if (!findSsoUser.isEmpty()) {
return findSsoUser.get(0);
}
// 进行注册用户
String initDeptId = configService.getValueByKey("app.init.deptId");
Dept dept = deptService.getById(initDeptId);
@ -101,6 +91,14 @@ public class AppServiceImpl implements AppService { @@ -101,6 +91,14 @@ public class AppServiceImpl implements AppService {
String initRoleIds = configService.getValueByKey("app.init.roleIds");
String initPassword = configService.getValueByKey("appid.password");
List<SsoUser> findSsoUser = iSsoUserService.list(Wrappers.<SsoUser>lambdaQuery()
.eq(SsoUser::getPhone, phone)
.eq(SsoUser::getTenantId, initTenantId)
.eq(SsoUser::getIdentityProvider, identityProvider));
if (!findSsoUser.isEmpty()) {
return findSsoUser.get(0);
}
// 修改扩展用户信息
SsoUser ssoUser = new SsoUser();
ssoUser.setUserName(phone);
@ -108,6 +106,7 @@ public class AppServiceImpl implements AppService { @@ -108,6 +106,7 @@ public class AppServiceImpl implements AppService {
ssoUser.setPassword(new BCryptPasswordEncoder().encode(initPassword));
ssoUser.setPhone(phone);
ssoUser.setIdentityProvider(identityProvider);
ssoUser.setTenantId(initTenantId);
iSsoUserService.save(ssoUser);
User user = new User();

Loading…
Cancel
Save