feat:yunzhijia openid login
This commit is contained in:
parent
d8cf5ca419
commit
fed531a1ef
@ -15,6 +15,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode AUTH_LOGIN_CAPTCHA_CODE_ERROR = new ErrorCode(1_002_000_004, "验证码不正确,原因:{}");
|
||||
ErrorCode AUTH_THIRD_LOGIN_NOT_BIND = new ErrorCode(1_002_000_005, "未绑定账号,需要进行绑定");
|
||||
ErrorCode AUTH_MOBILE_NOT_EXISTS = new ErrorCode(1_002_000_007, "手机号不存在");
|
||||
ErrorCode AUTH_OPEN_ID_NOT_EXISTS = new ErrorCode(1_002_000_008, "未找到对应用户");
|
||||
|
||||
// ========== 菜单模块 1-002-001-000 ==========
|
||||
ErrorCode MENU_NAME_DUPLICATE = new ErrorCode(1_002_001_000, "已经存在该名字的菜单");
|
||||
|
@ -69,6 +69,13 @@ public class AuthController {
|
||||
return success(authService.login(reqVO));
|
||||
}
|
||||
|
||||
@PostMapping("/login-open-id")
|
||||
@PermitAll
|
||||
@Operation(summary = "使用云之家OpenId登录")
|
||||
public CommonResult<AuthLoginRespVO> openIdLogin(@RequestBody @Valid AuthOpenIdLoginReqVO reqVO) {
|
||||
return success(authService.loginWithOpenId(reqVO));
|
||||
}
|
||||
|
||||
@PostMapping("/logout")
|
||||
@PermitAll
|
||||
@Operation(summary = "登出系统")
|
||||
|
@ -0,0 +1,22 @@
|
||||
package com.ensign.crm.module.system.controller.admin.auth.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Description: 云之家登录参数
|
||||
* @Date: 2025/1/14 14:24
|
||||
* @Created: by ZZSLL
|
||||
*/
|
||||
|
||||
@Schema(description = "管理后台 - 云之家OpenId登录 Request VO")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class AuthOpenIdLoginReqVO {
|
||||
private String openId;
|
||||
}
|
@ -103,4 +103,7 @@ public class UserSaveReqVO {
|
||||
@Schema(description = "用户部门拼接", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
private String deptIdColl;
|
||||
|
||||
@Schema(description = "云之家OpenId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
private String openId;
|
||||
|
||||
}
|
||||
|
@ -115,4 +115,9 @@ public class AdminUserDO extends TenantBaseDO {
|
||||
* 部门id,拼接
|
||||
*/
|
||||
private String deptIdColl;
|
||||
|
||||
/**
|
||||
* 云之家OpenId
|
||||
*/
|
||||
private String openId;
|
||||
}
|
||||
|
@ -70,4 +70,5 @@ public interface AdminAuthService {
|
||||
*/
|
||||
AuthLoginRespVO refreshToken(String refreshToken);
|
||||
|
||||
AuthLoginRespVO loginWithOpenId(@Valid AuthOpenIdLoginReqVO reqVO);
|
||||
}
|
||||
|
@ -247,4 +247,16 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
return UserTypeEnum.ADMIN;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过云之家OpenId登录
|
||||
*/
|
||||
@Override
|
||||
public AuthLoginRespVO loginWithOpenId(AuthOpenIdLoginReqVO reqVO) {
|
||||
|
||||
AdminUserDO user = userService.getUserByOpenId(reqVO.getOpenId());
|
||||
if (user == null) {
|
||||
throw exception(AUTH_OPEN_ID_NOT_EXISTS) ;
|
||||
}
|
||||
return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL);
|
||||
}
|
||||
}
|
||||
|
@ -1,18 +1,22 @@
|
||||
package com.ensign.crm.module.system.service.user;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.ensign.crm.framework.common.pojo.PageResult;
|
||||
import com.ensign.crm.framework.common.util.collection.CollectionUtils;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.user.*;
|
||||
import com.ensign.crm.framework.common.pojo.PageResult;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.user.UserImportExcelVO;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.user.UserImportRespVO;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.user.UserPageReqVO;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
||||
import com.ensign.crm.module.system.dal.dataobject.user.AdminUserDO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 后台用户 Service 接口
|
||||
@ -202,4 +206,12 @@ public interface AdminUserService {
|
||||
* @return 是否匹配
|
||||
*/
|
||||
boolean isPasswordMatch(String rawPassword, String encodedPassword);
|
||||
|
||||
/**
|
||||
* 通过云之家OpenId查找用户
|
||||
* @param openId 云之家OpenId
|
||||
* @return 用户
|
||||
*/
|
||||
AdminUserDO getUserByOpenId(String openId);
|
||||
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import com.ensign.crm.framework.common.util.collection.CollectionUtils;
|
||||
import com.ensign.crm.framework.common.util.object.BeanUtils;
|
||||
import com.ensign.crm.framework.common.util.validation.ValidationUtils;
|
||||
import com.ensign.crm.framework.datapermission.core.util.DataPermissionUtils;
|
||||
import com.ensign.crm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.ensign.crm.module.infra.api.config.ConfigApi;
|
||||
import com.ensign.crm.module.infra.api.file.FileApi;
|
||||
import com.ensign.crm.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
|
||||
@ -34,8 +35,6 @@ import com.mzt.logapi.context.LogRecordContext;
|
||||
import com.mzt.logapi.service.impl.DiffParseFunction;
|
||||
import com.mzt.logapi.starter.annotation.LogRecord;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -43,9 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.ConstraintViolationException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URISyntaxException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
@ -511,4 +508,22 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
private String encodePassword(String password) {
|
||||
return passwordEncoder.encode(password);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AdminUserDO getUserByOpenId(String openId) {
|
||||
LambdaQueryWrapperX<AdminUserDO> queryWrapperX = new LambdaQueryWrapperX<>();
|
||||
queryWrapperX.eq(AdminUserDO::getOpenId, openId);
|
||||
List<AdminUserDO> users = userMapper.selectList(queryWrapperX);
|
||||
if (users.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
AdminUserDO user = users.get(0);
|
||||
Integer status = user.getStatus();
|
||||
|
||||
if (Objects.equals(status, CommonStatusEnum.DISABLE.getStatus())) {
|
||||
throw exception(AUTH_LOGIN_USER_DISABLED);
|
||||
} else {
|
||||
return user;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user