用户同步接口

This commit is contained in:
顾君禹
2025-09-05 21:17:40 +08:00
parent 1741527006
commit 9de71b5990
8 changed files with 66 additions and 6 deletions

View File

@@ -199,4 +199,11 @@ public class AuthController {
return success(authService.socialLogin(reqVO));
}
@PostMapping("/api/user-add")
@PermitAll
@Operation(summary = "同步用户")
public CommonResult<Boolean> synchronize(@RequestBody @Valid UserReqVO reqVO) {
return success(authService.synchronize(reqVO));
}
}

View File

@@ -0,0 +1,23 @@
package cn.iocoder.yudao.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;
@Schema(description = "同步用户")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserReqVO {
/**
* 用户昵称
*/
private String nickname;
/**
* 手机号码
*/
private String phone;
}

View File

@@ -64,6 +64,10 @@ public class UserSaveReqVO {
@DiffLogField(name = "用户头像")
private String avatar;
private Integer isSynchronize;
private Integer status;
// ========== 仅【创建】时,需要传递的字段 ==========
@Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")

View File

@@ -98,4 +98,5 @@ public class AdminUserDO extends TenantBaseDO {
private String unionid;
private String miniProgramAvatar;
private String miniProgramNickname;
private Integer isSynchronize;
}

View File

@@ -92,4 +92,6 @@ public interface AdminAuthService {
String getAccessToken();
AuthLoginRespVO getPhoneNumber(@Valid WxLoginReqVO reqVO);
Boolean synchronize(@Valid UserReqVO reqVO);
}

View File

@@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO;
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
@@ -365,6 +366,25 @@ public class AdminAuthServiceImpl implements AdminAuthService {
}
}
@Override
public Boolean synchronize(UserReqVO reqVO) {
AdminUserDO userByMobile = userService.getUserByMobile(reqVO.getPhone());
if (userByMobile == null) {
UserSaveReqVO adminUserDO = new UserSaveReqVO();
adminUserDO.setMobile(reqVO.getPhone());
adminUserDO.setNickname(reqVO.getNickname());
adminUserDO.setUsername(reqVO.getPhone());
adminUserDO.setStatus(CommonStatusEnum.DISABLE.getStatus());
adminUserDO.setPassword("123456");
adminUserDO.setIsSynchronize(1);
userService.createUser(adminUserDO);
return true;
} else {
return false;
}
}
/**
* 解密微信小程序数据
* 根据微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html

View File

@@ -105,7 +105,9 @@ public class AdminUserServiceImpl implements AdminUserService {
createReqVO.getMobile(), createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds());
// 2.1 插入用户
AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class);
if(user.getStatus()==null){
user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
}
user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码
userMapper.insert(user);
// 2.2 插入关联岗位

View File

@@ -70,9 +70,9 @@ mybatis-plus:
global-config:
db-config:
id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。
# id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库
# id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库
# id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解
# id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库
# id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库
# id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
banner: false # 关闭控制台的 Banner 打印
@@ -280,6 +280,7 @@ yudao:
- /admin-api/system/auth/get-access-token
- /admin-api/system/auth/get-session
- /admin-api/system/auth/get-phone-number
- /admin-api/system/auth/api/user-add
ignore-visit-urls:
- /admin-api/system/user/profile/**
- /admin-api/system/auth/**