三江统一用户复制bug修复

This commit is contained in:
Administrator 2023-03-31 10:29:46 +08:00
parent a1fa49237c
commit 647356cdc1
2 changed files with 86 additions and 10 deletions

View File

@ -19,6 +19,8 @@ import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Component
@Slf4j
@ -121,9 +123,9 @@ public class SjMqService {
}
public void onUserOrgChanged(UserOrgChangeMessage userOrgChangeMessage) {
public void onUserOrgChanged(UserOrgChangeMessage message) {
/*
复制用户
复制用户
{
"category": "2-2",
"id": "wnibicyw0TTVSymhmKmWW1ZA",
@ -235,17 +237,87 @@ public class SjMqService {
}
}
*/
UserOrgChangeType type = userOrgChangeMessage.getType();
if (type.equals(UserOrgChangeType.COPY) || type.equals(UserOrgChangeType.ADD)) {
//复制 新增用户
SystemUser systemUser = convertToSystemUser(userOrgChangeMessage);
/*
复制用户
{
"category": "2-2",
"id": "m790mhblRqOGkAoAGmib8icA",
"orgId": "1IS459dhSkaOTdQJSshYVw",
"timestamp": 1680226673408,
"type": "COPY",
"user": {
"creator": "Z4K0Un08TibykTF5tiauD15Q",
"$opType": "copy",
"jp": "csfz123",
"sex": "2",
"jobs": "",
"createAt": 1680226655000,
"categoryOrgId": "2-2",
"orgInstanceId": "2-2-zhY43eia0SS2Xiap2vGf5DHA",
"$orgAttrs": [
{
"org": {
"orgName": "测试123",
"orgId": "zhY43eia0SS2Xiap2vGf5DHA"
},
"attrs": {
"orgInstanceId": "2-2-zhY43eia0SS2Xiap2vGf5DHA",
"sn": 0
}
}
],
"name": "测试复制123",
"id": "m790mhblRqOGkAoAGmib8icA",
"lastModified": 1680226655242,
"state": "1",
"sn": 0,
"certificateNum": "34030420230316931X",
"authLevel": "0",
"certificateType": "idcard",
"qp": "ceshifuzhi123"
}
}
*/
UserOrgChangeType type = message.getType();
if (type.equals(UserOrgChangeType.ADD)) {
//新增用户
SystemUser systemUser = convertToSystemUser(message);
systemUserMapper.insert(systemUser);
insertBaseModuleUser(systemUser);
} else if (type.equals(UserOrgChangeType.MOVE)) {
//移动用户什么不用做
//移动用户
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, message.getId()));
String dbOrgIds = systemUser.getSjUnifiedAuthenticationOrgIds();
if (StringUtils.isNotBlank(dbOrgIds)) {
List<String> list = Stream.of(dbOrgIds.split(",")).collect(Collectors.toList());
list.remove(message.getOldOrgId());
list.add(message.getOrgId());
systemUser.setSjUnifiedAuthenticationOrgIds(StringUtils.join(list.toArray(), ","));
}
systemUserMapper.updateById(systemUser);
} else if (type.equals(UserOrgChangeType.DELETE)) {
//删除用户
systemUserMapper.delete(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, userOrgChangeMessage.getId()));
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, message.getId()));
String dbOrgIds = systemUser.getSjUnifiedAuthenticationOrgIds();
if (StringUtils.isBlank(dbOrgIds) || dbOrgIds.equals(message.getOrgId())) {
systemUserMapper.delete(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, message.getId()));
} else {
//一个账号有多份的情况从组织ids里面去除一个
List<String> list = Stream.of(dbOrgIds.split(",")).collect(Collectors.toList());
list.remove(message.getOrgId());
systemUser.setSjUnifiedAuthenticationOrgIds(StringUtils.join(list.toArray(), ","));
systemUserMapper.updateById(systemUser);
}
} else if (type.equals(UserOrgChangeType.COPY)) {
//复制用户
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, message.getId()));
String dbOrgIds = systemUser.getSjUnifiedAuthenticationOrgIds();
if (StringUtils.isNotBlank(dbOrgIds)) {
List<String> list = Stream.of(dbOrgIds.split(",")).collect(Collectors.toList());
list.add(message.getOrgId());
systemUser.setSjUnifiedAuthenticationOrgIds(StringUtils.join(list.toArray(), ","));
}
systemUserMapper.updateById(systemUser);
}
}
@ -280,6 +352,7 @@ public class SjMqService {
systemUser.setSn("B386480F85E84592B8E102224D090794");
systemUser.setAccountType(7);
systemUser.setSjUnifiedAuthenticationUserId(userOrgChangeMessage.getId());
systemUser.setSjUnifiedAuthenticationOrgIds(userOrgChangeMessage.getOrgId());
return systemUser;
}

View File

@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -121,4 +119,9 @@ public class SystemUser implements Serializable {
* 三江统一登录的用户id
*/
private String sjUnifiedAuthenticationUserId;
/**
* 三江统一登录的组织ids
*/
private String sjUnifiedAuthenticationOrgIds;
}