REQ-3345: 保存群业务扩展字段

This commit is contained in:
yanglin 2025-02-07 14:41:06 +08:00
parent 90c537b45b
commit eb1deb440d
4 changed files with 14 additions and 7 deletions

View File

@ -6,6 +6,7 @@ import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import java.util.Map;
/**
* @author yanglin
@ -29,6 +30,10 @@ public class GroupInfo {
* 群类型. VISA: 变洽签, WORKSPACE: 项目群, WORKSPACE_OU: 项目单位群, WORKSPACE_TEAM: 项目班组群
*/
private GroupType type;
/**
* 群聊业务扩展信息
*/
private Map<String, Object> bizGroupInfo;
/**
* 群头像
*/

View File

@ -11,6 +11,7 @@ import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@ -66,6 +67,10 @@ public class GroupCreateRequest {
*/
private Map<String, Object> bizGroupInfo;
public Map<String, Object> bizGroupInfoOrEmpty() {
return bizGroupInfo == null ? Collections.emptyMap() : bizGroupInfo;
}
@JsonIgnore @JSONField(serialize = false, deserialize = false)
public Set<PersonAccountAttribute> getOwnerAndMembers() {
Set<PersonAccountAttribute> ownerAndMembers = new HashSet<>(members);

View File

@ -10,6 +10,7 @@ import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import java.util.Map;
/**
* @author yanglin
@ -28,6 +29,7 @@ public class Group {
private String name;
private String bizCode;
private GroupType type;
private Map<String, Object> bizGroupInfo;
private String avatar;
private Long memberCount;
private Long memberLimit;

View File

@ -15,9 +15,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.Map;
/**
* @author yanglin
*/
@ -38,6 +35,7 @@ public class GroupSupport implements GroupLogger {
group.setName(request.getName());
group.setBizCode(request.getBizCode());
group.setType(request.getGroupType());
group.setBizGroupInfo(request.bizGroupInfoOrEmpty());
group.setAvatar(request.getAvatar());
group.setMemberCount((long) request.getOwnerAndMembers().size());
Long memberLimit = request.getMemberLimit();
@ -65,10 +63,7 @@ public class GroupSupport implements GroupLogger {
nimRequest.setIcon(request.getAvatar());
nimRequest.addCustom(Group.CUSTOM_GROUP_TYPE, request.getGroupType());
nimRequest.addCustom(Group.CUSTOM_BIZ_CODE, request.getBizCode());
Map<String, Object> bizGroupInfo = request.getBizGroupInfo();
if (bizGroupInfo == null)
bizGroupInfo = Collections.emptyMap();
nimRequest.addCustom(Group.CUSTOM_BIZ_GROUP_INFO, bizGroupInfo);
nimRequest.addCustom(Group.CUSTOM_BIZ_GROUP_INFO, request.bizGroupInfoOrEmpty());
return nimRequest;
}