From acfd9b7bc3c2e99e41f0c036f294fcc2a4c86c8c Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 4 Dec 2025 16:25:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=A2=84=E8=A7=88bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/recent/vo/OperationRespVO.java | 29 +--- .../admin/recent/vo/RecentPageResVo.java | 76 +-------- .../recent/vo/AppRecentViewRecordReqVo.java | 4 +- .../member/dal/mysql/photo/PhotoMapper.java | 3 - .../service/recent/RecentServiceImpl.java | 153 +++++------------- .../service/recent/ViewRecordServiceImpl.java | 1 + .../member/service/user/BO/MemberExtBO.java | 47 ++++++ .../service/user/BO/MemberTagExtBO.java | 18 +++ .../service/user/MemberRecentTagService.java | 8 + .../user/MemberRecentTagServiceImp.java | 27 ++++ .../service/user/MemberUserService.java | 8 +- .../service/user/MemberUserServiceImpl.java | 33 ++++ 12 files changed, 189 insertions(+), 218 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberTagExtBO.java diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/OperationRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/OperationRespVO.java index 1298562..6dc3e91 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/OperationRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/OperationRespVO.java @@ -1,12 +1,12 @@ package cn.iocoder.yudao.module.member.controller.admin.recent.vo; +import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO; +import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; - import java.time.LocalDateTime; import com.alibaba.excel.annotation.*; @@ -75,29 +75,8 @@ public class OperationRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; - private MemberVo member; + private MemberExtBO member; - /** - * 用户相关 - */ - @Data - public static class MemberVo { - - @Schema(description = "用户编号") - private Long memberId; - - @Schema(description = "用户头像") - private String memberAvatar; - - @Schema(description = "用户昵称") - private String memberNickname; - - @Schema(description = "用户年龄") - private String memberAge; - - @Schema(description = "用户职业") - private String memberOcc; - - } + private List memberTagList; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/RecentPageResVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/RecentPageResVo.java index b165087..8790b8b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/RecentPageResVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/recent/vo/RecentPageResVo.java @@ -1,10 +1,11 @@ package cn.iocoder.yudao.module.member.controller.admin.recent.vo; import cn.iocoder.yudao.module.member.dal.dataobject.recent.RecentDO; +import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO; +import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.time.LocalDateTime; import java.util.List; @Data @@ -14,10 +15,10 @@ public class RecentPageResVo extends RecentDO { private Long id; @Schema(description = "用户相关") - private MemberVo member; + private MemberExtBO member; @Schema(description = "操作统计相关") - private OperationTotal operationTotal; + private OperationTotalGroupRecentRespVO operationTotal; @Schema(description = "操作相关状态") private OperationStatusVo userOperationStatus; @@ -26,7 +27,7 @@ public class RecentPageResVo extends RecentDO { private OperationStatusVo recentOperationStatus; @Schema(description = "用户tag") - private List memberTagList; + private List memberTagList; @Schema(description = "用户相册") private List MemberPhotoList; @@ -34,73 +35,6 @@ public class RecentPageResVo extends RecentDO { @Schema(description = "距离(km)") private Double distance; - @Data - public static class MemberVo { - - @Schema(description = "用户编号") - private Long memberId; - - @Schema(description = "用户性别") - private Integer memberSex; - - @Schema(description = "用户头像") - private String memberAvatar; - - @Schema(description = "用户昵称") - private String memberNickname; - - @Schema(description = "用户年龄") - private String memberAge; - - @Schema(description = "用户职业") - private String memberOcc; - - @Schema(description = "身高(cm)") - private Double memberHeight; - - @Schema(description = "体重(kg)") - private String memberWeight; - - @Schema(description = "城市") - private String memberCity; - - @Schema(description = "经度") - private Double memberLat; - - @Schema(description = "纬度") - private Double memberLng; - - @Schema(description = "最近登录时间") - private LocalDateTime appRefreshDate; - } - - @Data - public static class OperationTotal { - - @Schema(description = "朋友圈点赞总数") - private Integer recentLikeTotal = 0; - - @Schema(description = "朋友圈举报总数") - private Integer recentReportTotal = 0; - - @Schema(description = "朋友圈屏蔽总数") - private Integer recentShieldTotal = 0; - - @Schema(description = "用户点赞总数") - private Integer userLikeTotal = 0; - } - - @Data - public static class MemberTag { - - @Schema(description = "tag标题") - private String tagTitle; - - @Schema(description = "tag业务类型") - private String tagBizType; - - } - @Data public static class MemberPhoto { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentViewRecordReqVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentViewRecordReqVo.java index 2da73eb..f3741a8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentViewRecordReqVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentViewRecordReqVo.java @@ -3,11 +3,13 @@ package cn.iocoder.yudao.module.member.controller.app.recent.vo; import cn.iocoder.yudao.module.member.enums.MemberRecentViewRecordEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + @Data public class AppRecentViewRecordReqVo { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/photo/PhotoMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/photo/PhotoMapper.java index 85b0467..578e0bb 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/photo/PhotoMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/photo/PhotoMapper.java @@ -10,8 +10,6 @@ import cn.iocoder.yudao.module.member.controller.admin.photo.vo.*; /** * 用户相册 Mapper - * - * @author 聊天交友 */ @Mapper public interface PhotoMapper extends BaseMapperX { @@ -33,5 +31,4 @@ public interface PhotoMapper extends BaseMapperX { .orderByAsc(PhotoDO::getId)); } - void getByUserId(RecentPageResVo.MemberVo member); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java index edc2b7e..3f27f65 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java @@ -13,7 +13,6 @@ import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentQuickPag import cn.iocoder.yudao.module.member.dal.dataobject.location.LocationDO; import cn.iocoder.yudao.module.member.dal.dataobject.photo.PhotoDO; import cn.iocoder.yudao.module.member.dal.dataobject.recent.OperationDO; -import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentTagDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.recent.OperationMapper; import cn.iocoder.yudao.module.member.dal.mysql.user.MemberRecentTagMapper; @@ -24,6 +23,9 @@ import cn.iocoder.yudao.module.member.enums.tag.MemberRecentTagEnum; import cn.iocoder.yudao.module.member.service.location.LocationService; import cn.iocoder.yudao.module.member.client.service.ThirdAuthService; import cn.iocoder.yudao.module.member.service.photo.PhotoService; +import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO; +import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO; +import cn.iocoder.yudao.module.member.service.user.MemberRecentTagService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.system.enums.common.SexEnum; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -82,6 +84,8 @@ public class RecentServiceImpl implements RecentService { private PhotoService photoService; @Resource private OperationService operationService; + @Resource + private MemberRecentTagService memberRecentTagService; /** * 创建朋友圈 @@ -365,6 +369,7 @@ public class RecentServiceImpl implements RecentService { List resultList = BeanUtils.toBean(list, OperationRespVO.class); // 为OperationRespVO设置Member信息 convertOperationRespVOSetupMember(resultList); + convertOperationRespVOSetupTagList(resultList); resultPageList.setList(resultList); resultPageList.setTotal(pageList.getTotal()); return resultPageList; @@ -388,6 +393,7 @@ public class RecentServiceImpl implements RecentService { List resultList = BeanUtils.toBean(list, OperationRespVO.class); // 为OperationRespVO设置Member信息 convertOperationRespVOSetupMember(resultList); + convertOperationRespVOSetupTagList(resultList); return new PageResult<>(resultList, pageList.getTotal()); } @@ -426,6 +432,7 @@ public class RecentServiceImpl implements RecentService { // 为OperationRespVO设置Member信息 convertOperationRespVOSetupMember(resultList); + convertOperationRespVOSetupTagList(resultList); return new PageResult<>(resultList, pageList.getTotal()); } @@ -489,28 +496,11 @@ public class RecentServiceImpl implements RecentService { private void convertRecentPageResVoSetupMember(List list) { if (ObjectUtil.isEmpty(list)) return; List memberIds = list.stream().map(RecentPageResVo::getMemberId).collect(Collectors.toList()); - List memberList = memberUserService.getUserList(memberIds); - Map memberMap = IterUtil.toMap(memberList, MemberUserDO::getId); + List memberList = memberUserService.getUserExtList(memberIds); + Map memberMap = IterUtil.toMap(memberList, MemberExtBO::getMemberId); for (RecentPageResVo entity : list) { - // 用户相关 - if (ObjectUtil.isNotEmpty(memberMap)) { - MemberUserDO member = memberMap.get(entity.getMemberId()); - if (ObjectUtil.isNotEmpty(member)) { - RecentPageResVo.MemberVo memberVO = new RecentPageResVo.MemberVo(); - memberVO.setMemberId(member.getId()); - memberVO.setMemberAvatar(member.getAvatar()); - memberVO.setMemberNickname(member.getNickname()); - memberVO.setMemberAge(member.getAge()); - memberVO.setMemberOcc(member.getOcc()); - memberVO.setMemberHeight(member.getHeight()); - memberVO.setMemberWeight(member.getWeight()); - memberVO.setMemberSex(member.getSex()); - memberVO.setAppRefreshDate(member.getAppRefreshDate()); - memberVO.setMemberLat(member.getLat()); - memberVO.setMemberLng(member.getLng()); - entity.setMember(memberVO); - } - } + MemberExtBO member = memberMap.get(entity.getMemberId()); + entity.setMember(member); } } @@ -530,37 +520,14 @@ public class RecentServiceImpl implements RecentService { for (RecentPageResVo entity : list) { // 操作统计相关 OperationTotalGroupRecentRespVO total = totalMap.get(entity.getId()); - if (ObjectUtil.isNotEmpty(total)) { - RecentPageResVo.OperationTotal operationTotal = new RecentPageResVo.OperationTotal(); - operationTotal.setRecentLikeTotal(total.getLikeTotal()); - operationTotal.setRecentReportTotal(total.getReportTotal()); - operationTotal.setRecentShieldTotal(total.getShieldTotal()); - operationTotal.setUserLikeTotal(total.getUserLikeTotal()); - entity.setOperationTotal(operationTotal); - } else { - entity.setOperationTotal(new RecentPageResVo.OperationTotal()); - } + entity.setOperationTotal(total); } } private void convertRecentPageResVoSetupMember(RecentPageResVo detail) { if (ObjectUtil.isEmpty(detail)) return; - MemberUserDO member = memberUserService.getUser(detail.getMemberId()); - if (ObjectUtil.isNotEmpty(member)) { - RecentPageResVo.MemberVo memberVO = new RecentPageResVo.MemberVo(); - memberVO.setMemberId(member.getId()); - memberVO.setMemberAvatar(member.getAvatar()); - memberVO.setMemberNickname(member.getNickname()); - memberVO.setMemberAge(member.getAge()); - memberVO.setMemberOcc(member.getOcc()); - memberVO.setMemberHeight(member.getHeight()); - memberVO.setMemberWeight(member.getWeight()); - memberVO.setMemberSex(member.getSex()); - memberVO.setAppRefreshDate(member.getAppRefreshDate()); - memberVO.setMemberLat(member.getLat()); - memberVO.setMemberLng(member.getLng()); - detail.setMember(memberVO); - } + MemberExtBO member = memberUserService.getUserExt(detail.getMemberId()); + detail.setMember(member); } // 为RecentPageResVo设置userOperationStatus信息 @@ -601,71 +568,27 @@ public class RecentServiceImpl implements RecentService { private void convertRecentPageResVoSetupTag(List list) { if (ObjectUtil.isEmpty(list)) return; List memberIds = list.stream().map(RecentPageResVo::getMemberId).collect(Collectors.toList()); - if (ObjectUtil.isNotEmpty(memberIds)) { - List memberRecentTagList = memberRecentTagMapper.selectList(new LambdaQueryWrapperX() - .in(MemberRecentTagDO::getMemberId, memberIds) - ); - if (ObjectUtil.isNotEmpty(memberRecentTagList)) { - for (RecentPageResVo entity : list) { - List targetList = memberRecentTagList.stream().filter(v -> ObjectUtil.equals(v.getMemberId(), entity.getMemberId())).collect(Collectors.toList()); - if (ObjectUtil.isEmpty(targetList)) { - entity.setMemberTagList(new ArrayList<>()); - continue; - } - List tagList = targetList.stream().map(v -> { - RecentPageResVo.MemberTag tag = new RecentPageResVo.MemberTag(); - tag.setTagTitle(v.getTagTitle()); - tag.setTagBizType(v.getTagBizType()); - return tag; - }).collect(Collectors.toList()); - entity.setMemberTagList(tagList); - } - } + List memberList = memberRecentTagService.getUserTagExtList(memberIds); + Map> memberMap = IterUtil.toListMap(memberList, MemberTagExtBO::getMemberId); + for (RecentPageResVo entity : list) { + List tags = memberMap.get(entity.getMemberId()); + entity.setMemberTagList(tags); } } private void convertRecentPageResVoSetupTag(RecentPageResVo entity) { if (ObjectUtil.isEmpty(entity)) return; - List memberRecentTagList = memberRecentTagMapper.selectList(new LambdaQueryWrapperX() - .in(MemberRecentTagDO::getMemberId, entity.getMemberId()) - ); - if (ObjectUtil.isNotEmpty(memberRecentTagList)) { - List targetList = memberRecentTagList.stream().filter(v -> ObjectUtil.equals(v.getMemberId(), entity.getMemberId())).collect(Collectors.toList()); - if (ObjectUtil.isEmpty(targetList)) { - entity.setMemberTagList(new ArrayList<>()); - } else { - List tagList = targetList.stream().map(v -> { - RecentPageResVo.MemberTag tag = new RecentPageResVo.MemberTag(); - tag.setTagTitle(v.getTagTitle()); - tag.setTagBizType(v.getTagBizType()); - return tag; - }).collect(Collectors.toList()); - entity.setMemberTagList(tagList); - } - } + List memberList = memberRecentTagService.getUserTagExtList(entity.getMemberId()); + entity.setMemberTagList(memberList); } - /** - * 为RecentPageResVo设置Location信息 - */ - private void convertRecentPageResVoSetupLocation(List list, LocationDO selfLocation) { - if (ObjectUtil.isEmpty(list)) return; - for (RecentPageResVo entity : list) { - RecentPageResVo.MemberVo targetLocation = entity.getMember(); - if (ObjectUtil.isAllNotEmpty(targetLocation.getMemberLat(), targetLocation.getMemberLng())) { - continue; - } - double distance = NumberUtils.getDistance(targetLocation.getMemberLat(), targetLocation.getMemberLng(), selfLocation.getLat(), selfLocation.getLon()); - entity.setDistance(distance); - } - } /** * 为RecentPageResVo设置Location信息 */ private void convertRecentPageResVoSetupLocation(RecentPageResVo detail, LocationDO selfLocation) { if (ObjectUtil.isEmpty(detail)) return; - RecentPageResVo.MemberVo member = detail.getMember(); + MemberExtBO member = detail.getMember(); if (ObjectUtil.isAllNotEmpty(member.getMemberLng(), member.getMemberLat())) { double distance = NumberUtils.getDistance(member.getMemberLat(), member.getMemberLng(), selfLocation.getLat(), selfLocation.getLon()); detail.setDistance(distance); @@ -694,22 +617,22 @@ public class RecentServiceImpl implements RecentService { private void convertOperationRespVOSetupMember(List list) { if (ObjectUtil.isEmpty(list)) return; List memberIds = list.stream().map(OperationRespVO::getMemberId).collect(Collectors.toList()); - List memberList = memberUserService.getUserList(memberIds); - Map memberMap = IterUtil.toMap(memberList, MemberUserDO::getId); + List memberList = memberUserService.getUserExtList(memberIds); + Map memberMap = IterUtil.toMap(memberList, MemberExtBO::getMemberId); for (OperationRespVO entity : list) { - // 用户相关 - if (ObjectUtil.isNotEmpty(memberMap)) { - MemberUserDO member = memberMap.get(entity.getMemberId()); - if (ObjectUtil.isNotEmpty(member)) { - OperationRespVO.MemberVo memberVO = new OperationRespVO.MemberVo(); - memberVO.setMemberId(member.getId()); - memberVO.setMemberAvatar(member.getAvatar()); - memberVO.setMemberNickname(member.getNickname()); - memberVO.setMemberAge(member.getAge()); - memberVO.setMemberOcc(member.getOcc()); - entity.setMember(memberVO); - } - } + MemberExtBO member = memberMap.get(entity.getMemberId()); + entity.setMember(member); + } + } + + private void convertOperationRespVOSetupTagList(List list) { + if (ObjectUtil.isEmpty(list)) return; + List memberIds = list.stream().map(OperationRespVO::getMemberId).collect(Collectors.toList()); + List memberList = memberRecentTagService.getUserTagExtList(memberIds); + Map> memberMap = IterUtil.toListMap(memberList, MemberTagExtBO::getMemberId); + for (OperationRespVO entity : list) { + List tags = memberMap.get(entity.getMemberId()); + entity.setMemberTagList(tags); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordServiceImpl.java index 67946c9..a3b4428 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordServiceImpl.java @@ -49,6 +49,7 @@ public class ViewRecordServiceImpl implements ViewRecordService { // 插入 ViewRecordDO viewRecord = BeanUtils.toBean(dto, ViewRecordDO.class); viewRecord.setViewSecond((dto.getViewEndTime().getSecond() - dto.getViewStartTime().getSecond())); + viewRecord.setBizType(dto.getBizType().getType()); if (ObjectUtil.equals(viewRecord.getBizType(), MemberRecentViewRecordEnum.RECENT.getType())) { viewRecord.setTitle("访问朋友圈"); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java new file mode 100644 index 0000000..87fde98 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.member.service.user.BO; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class MemberExtBO { + + @Schema(description = "用户编号") + private Long memberId; + + @Schema(description = "用户性别") + private Integer memberSex; + + @Schema(description = "用户头像") + private String memberAvatar; + + @Schema(description = "用户昵称") + private String memberNickname; + + @Schema(description = "用户年龄") + private String memberAge; + + @Schema(description = "用户职业") + private String memberOcc; + + @Schema(description = "身高(cm)") + private Double memberHeight; + + @Schema(description = "体重(kg)") + private String memberWeight; + + @Schema(description = "城市") + private String memberCity; + + @Schema(description = "经度") + private Double memberLat; + + @Schema(description = "纬度") + private Double memberLng; + + @Schema(description = "最近登录时间") + private LocalDateTime appRefreshDate; + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberTagExtBO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberTagExtBO.java new file mode 100644 index 0000000..d894975 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberTagExtBO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.member.service.user.BO; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class MemberTagExtBO { + + @Schema(description = "会员id") + private Long memberId; + + @Schema(description = "tag标题") + private String tagTitle; + + @Schema(description = "tag业务类型") + private String tagBizType; + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagService.java index e38d036..d7908c7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.service.user; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentTagDO; +import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO; import java.util.List; @@ -18,4 +19,11 @@ public interface MemberRecentTagService { * 获取用户tag */ List getByMemberId(Long memberId); + + /** + * 获取用户tag信息 + */ + List getUserTagExtList(List memberIds); + + List getUserTagExtList(Long memberId); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java index 7c054a0..54275fc 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java @@ -6,13 +6,16 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentTagDO; import cn.iocoder.yudao.module.member.dal.mysql.user.MemberRecentTagMapper; import cn.iocoder.yudao.module.member.enums.tag.MemberRecentTagEnum; +import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; @Service @Valid @@ -54,4 +57,28 @@ public class MemberRecentTagServiceImp implements MemberRecentTagService { public List getByMemberId(Long memberId) { return memberRecentTagMapper.getByMemberId(memberId); } + + /** + * 获取用户tag信息 + */ + @Override + public List getUserTagExtList(List memberIds) { + List list = memberRecentTagMapper.selectList(new LambdaQueryWrapperX() + .in(MemberRecentTagDO::getMemberId, memberIds) + ); + if (ObjectUtil.isEmpty(list)) return Collections.emptyList(); + return list.stream().map(item -> { + MemberTagExtBO entity = new MemberTagExtBO(); + entity.setMemberId(item.getMemberId()); + entity.setTagBizType(item.getTagBizType()); + entity.setTagTitle(item.getTagTitle()); + return entity; + }).collect(Collectors.toList()); + } + + @Override + public List getUserTagExtList(Long memberId) { + return getUserTagExtList(Arrays.asList(memberId)); + } + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java index fb1cbb6..00a3397 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReq import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.*; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO; import javax.validation.Valid; import java.util.Collection; @@ -76,12 +77,13 @@ public interface MemberUserService { /** * 通过用户 ID 查询用户们 - * - * @param ids 用户 ID - * @return 用户对象信息数组 */ List getUserList(Collection ids); + List getUserExtList(Collection ids); + + MemberExtBO getUserExt(Long userId); + /** * 【会员】修改基本信息 * diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index bb7530a..7a20965 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -25,6 +25,7 @@ import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; import cn.iocoder.yudao.module.member.enums.photo.PhotoBizTypeEnum; import cn.iocoder.yudao.module.member.enums.tag.MemberRecentTagEnum; import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer; +import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO; import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; import cn.iocoder.yudao.module.system.api.social.SocialClientApi; @@ -41,7 +42,9 @@ import org.springframework.transaction.support.TransactionSynchronizationManager import javax.annotation.Resource; import javax.validation.Valid; import java.time.LocalDateTime; +import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -158,6 +161,36 @@ public class MemberUserServiceImpl implements MemberUserService { return memberUserMapper.selectBatchIds(ids); } + @Override + public List getUserExtList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return ListUtil.empty(); + } + List memberUserDOS = memberUserMapper.selectBatchIds(ids); + return memberUserDOS.stream().map(member -> { + MemberExtBO entity = new MemberExtBO(); + entity.setMemberId(member.getId()); + entity.setMemberAvatar(member.getAvatar()); + entity.setMemberNickname(member.getNickname()); + entity.setMemberAge(member.getAge()); + entity.setMemberOcc(member.getOcc()); + entity.setMemberHeight(member.getHeight()); + entity.setMemberWeight(member.getWeight()); + entity.setMemberSex(member.getSex()); + entity.setAppRefreshDate(member.getAppRefreshDate()); + entity.setMemberLat(member.getLat()); + entity.setMemberLng(member.getLng()); + return entity; + }).collect(Collectors.toList()); + } + + @Override + public MemberExtBO getUserExt(Long userId) { + List list = getUserExtList(Arrays.asList(userId)); + if (ObjectUtil.isEmpty(list)) return null; + return list.get(0); + } + @Override public void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO) { MemberUserDO updateObj = BeanUtils.toBean(reqVO, MemberUserDO.class).setId(userId);