package cn.iocoder.yudao.module.member.convert.user; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserRespVO; import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserInfoRespVO; import cn.iocoder.yudao.module.member.convert.address.AddressConvert; import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO; import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO; import cn.iocoder.yudao.module.member.dal.dataobject.tag.MemberTagDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; @Mapper(uses = {AddressConvert.class}) public interface MemberUserConvert { MemberUserConvert INSTANCE = Mappers.getMapper(MemberUserConvert.class); AppMemberUserInfoRespVO convert(MemberUserDO bean); @Mappings({ @Mapping(source = "level", target = "level"), @Mapping(source = "bean.id", target = "id"), @Mapping(source = "bean.experience", target = "experience") }) AppMemberUserInfoRespVO convert(MemberUserDO bean, MemberLevelDO level); MemberUserRespDTO convert2(MemberUserDO bean); List convertList2(List list); MemberUserDO convert(MemberUserUpdateReqVO bean); PageResult convertPage(PageResult page); @Mapping(source = "areaId", target = "areaName", qualifiedByName = "convertAreaIdToAreaName") MemberUserRespVO convert03(MemberUserDO bean); default PageResult convertPage(PageResult pageResult, List tags, List levels, List groups) { PageResult result = convertPage(pageResult); // 处理关联数据 Map tagMap = convertMap(tags, MemberTagDO::getId, MemberTagDO::getName); Map levelMap = convertMap(levels, MemberLevelDO::getId, MemberLevelDO::getName); Map groupMap = convertMap(groups, MemberGroupDO::getId, MemberGroupDO::getName); // 填充关联数据 result.getList().forEach(user -> { user.setTagNames(convertList(user.getTagIds(), tagMap::get)); user.setLevelName(levelMap.get(user.getLevelId())); user.setGroupName(groupMap.get(user.getGroupId())); }); return result; } }