diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentViewRecordEnum.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentViewRecordEnum.java index edad8da..4988cb3 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentViewRecordEnum.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentViewRecordEnum.java @@ -16,6 +16,7 @@ import java.util.List; public enum MemberRecentViewRecordEnum { CLASSIFY("1", "分类查看"), RECENT("2", "朋友圈查看"), + USER("3", "用户查看"), ; private final String type; private final String description; 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 e422eae..1298562 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 @@ -75,7 +75,6 @@ public class OperationRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; - private MemberVo member; /** diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/vo/ViewRecordPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/vo/ViewRecordPageReqVO.java index 4c4d391..8b00702 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/vo/ViewRecordPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/vo/ViewRecordPageReqVO.java @@ -1,10 +1,11 @@ package cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo; import lombok.*; -import java.util.*; + import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; import org.springframework.format.annotation.DateTimeFormat; + import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -42,4 +43,27 @@ public class ViewRecordPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + private ViewRecordPageReqVO.MemberVo 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; + } + } \ 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/app/comauth/vo/CreateManAuthReqVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/vo/CreateManAuthReqVo.java index eafe9b3..4cbf54c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/vo/CreateManAuthReqVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/vo/CreateManAuthReqVo.java @@ -14,8 +14,8 @@ public class CreateManAuthReqVo { @Schema(description = "会员编号") private Long memberId; - @Schema(description = "认证图片或视频") - @NotNull(message = "认证图片或视频不能为空") + @Schema(description = "认证图片") + @NotNull(message = "认证图片不能为空") private String authPic; @Schema(description = "metaInfoJson") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java index ba570f3..4ebd4b7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java @@ -7,11 +7,13 @@ import cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO import cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationTotalGroupRecentRespVO; import cn.iocoder.yudao.module.member.controller.admin.recent.vo.RecentPageResVo; import cn.iocoder.yudao.module.member.controller.admin.recent.vo.RecentSaveReqVO; +import cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo.ViewRecordPageReqVO; import cn.iocoder.yudao.module.member.controller.app.recent.vo.*; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserInfoRespVO; import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.dal.dataobject.viewrecord.ViewRecordDO; import cn.iocoder.yudao.module.member.enums.MemberRecentSceneEnum; import cn.iocoder.yudao.module.member.service.recent.RecentService; import cn.iocoder.yudao.module.member.service.recent.ViewRecordService; @@ -35,7 +37,7 @@ public class AppRecentController { @Resource private RecentService recentService; @Resource - private ViewRecordService viewRecord; + private ViewRecordService viewRecordService; @PostMapping("/quick-page") @Operation(summary = "快速查询朋友圈") @@ -76,7 +78,7 @@ public class AppRecentController { @Operation(summary = "添加用户预览记录") public CommonResult createViewRecord(@Valid @RequestBody AppRecentViewRecordReqVo dto) { dto.setMemberId(getLoginUserId()); - return success(viewRecord.createViewRecord(dto)); + return success(viewRecordService.createViewRecord(dto)); } @PostMapping("/like/it-page") @@ -93,6 +95,20 @@ public class AppRecentController { return success(recentService.likeMePage(dto)); } + @PostMapping("/look/it-page") + @Operation(summary = "我看过-分页查询") + public CommonResult> lookItMePage(@Valid @RequestBody AppRecentLikeReqVo dto) { + dto.setMemberId(getLoginUserId()); + return success(viewRecordService.lookItMePage(dto)); + } + + @PostMapping("/look/me-page") + @Operation(summary = "看过我-分页查询") + public CommonResult> lookMePage(@Valid @RequestBody AppRecentLikeReqVo dto) { + dto.setMemberId(getLoginUserId()); + return success(viewRecordService.lookMePage(dto)); + } + @PostMapping("/dynamic-page") @Operation(summary = "我的动态") public CommonResult> dynamicPage(@Valid @RequestBody AppRecentLikeReqVo dto) { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentLookReqVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentLookReqVo.java new file mode 100644 index 0000000..acaef93 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentLookReqVo.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.member.controller.app.recent.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class AppRecentLookReqVo extends PageParam { + + @Schema(description = "操作用户标号") + private Long memberId; + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/viewrecord/ViewRecordDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/viewrecord/ViewRecordDO.java index e701a85..0f0834e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/viewrecord/ViewRecordDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/viewrecord/ViewRecordDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.member.dal.dataobject.viewrecord; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java index 6e96fc2..ca553b8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java @@ -1,20 +1,14 @@ package cn.iocoder.yudao.module.member.service.recent; -import java.util.*; -import java.util.concurrent.ExecutionException; import javax.validation.*; import cn.iocoder.yudao.module.member.controller.admin.recent.vo.*; import cn.iocoder.yudao.module.member.controller.app.recent.vo.*; import cn.iocoder.yudao.module.member.dal.dataobject.recent.RecentDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; /** * 朋友圈 Service 接口 - * - * @author 聊天交友 */ public interface RecentService { @@ -97,5 +91,4 @@ public interface RecentService { * 朋友圈我喜欢的、喜欢我的等总数统计 */ OperationTotalGroupRecentRespVO total(Long userId); - } \ 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 a4fdb17..c0ddbcd 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 @@ -73,10 +73,8 @@ public class RecentServiceImpl implements RecentService { private MemberUserService memberUserService; @Resource private LocationService locationService; - @Resource private ThirdAuthService thirdAuthService; - private MemberUserMapper memberUserMapper; /** * 创建朋友圈 @@ -166,7 +164,9 @@ public class RecentServiceImpl implements RecentService { */ @Override public Long operate(AppRecentOperateReqVo dto) { - validateRecentExists(dto.getMemberRecentId()); + if (ObjectUtil.isNotEmpty(dto.getMemberRecentId())) { + validateRecentExists(dto.getMemberRecentId()); + } OperationDO operationDO = operationMapper.selectOne(new LambdaQueryWrapperX() .eq(OperationDO::getMemberId, dto.getMemberId()) .eq(OperationDO::getMemberRecentId, dto.getMemberRecentId()) @@ -340,17 +340,9 @@ public class RecentServiceImpl implements RecentService { ); List list = pageList.getList(); if (ObjectUtil.isEmpty(list)) return resultPageList; - - List operatorMemberIds = list.stream().map(OperationDO::getOperatorMemberId).collect(Collectors.toList()); - // 查询用户 - List memberList = memberUserService.getUserList(operatorMemberIds); - Map memberMap = IterUtil.toMap(memberList, MemberUserDO::getId); - List resultList = BeanUtils.toBean(list, OperationRespVO.class); - // 为OperationRespVO设置Member信息 convertOperationRespVOSetupMember(resultList); - resultPageList.setList(resultList); resultPageList.setTotal(pageList.getTotal()); return resultPageList; @@ -372,10 +364,8 @@ public class RecentServiceImpl implements RecentService { List list = pageList.getList(); if (ObjectUtil.isEmpty(list)) return new PageResult<>(); List resultList = BeanUtils.toBean(list, OperationRespVO.class); - // 为OperationRespVO设置Member信息 convertOperationRespVOSetupMember(resultList); - return new PageResult<>(resultList, pageList.getTotal()); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordService.java index 57a1cec..5e2254e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.recent; import javax.validation.*; +import cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO; import cn.iocoder.yudao.module.member.controller.admin.recent.vo.RecentPageResVo; import cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo.*; import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentLikeReqVo; @@ -38,4 +39,14 @@ public interface ViewRecordService { * 获得用户查看记录分页 */ PageResult getViewRecordPage(ViewRecordPageReqVO pageReqVO); + + /** + * 我看过-分页查询 + */ + PageResult lookItMePage(@Valid AppRecentLikeReqVo dto); + + /** + * 看过我-分页查询 + */ + PageResult lookMePage(@Valid AppRecentLikeReqVo dto); } \ 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/ViewRecordServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/ViewRecordServiceImpl.java index 61c7df3..67946c9 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 @@ -1,11 +1,14 @@ package cn.iocoder.yudao.module.member.service.recent; +import cn.hutool.core.collection.IterUtil; import cn.hutool.core.util.ObjectUtil; -import cn.iocoder.yudao.module.member.controller.admin.recent.vo.RecentPageResVo; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentLikeReqVo; import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentViewRecordReqVo; +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.enums.MemberErrorCode; import cn.iocoder.yudao.module.member.enums.MemberRecentViewRecordEnum; +import cn.iocoder.yudao.module.member.service.user.MemberUserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -20,12 +23,14 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.dal.mysql.viewrecord.ViewRecordMapper; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; /** * 用户查看记录 Service 实现类 - * - * @author 聊天交友 */ @Service @Validated @@ -33,6 +38,8 @@ public class ViewRecordServiceImpl implements ViewRecordService { @Resource private ViewRecordMapper viewRecordMapper; + @Resource + private MemberUserService memberUserService; /** * 创建用户查看记录 @@ -88,6 +95,73 @@ public class ViewRecordServiceImpl implements ViewRecordService { return viewRecordMapper.selectPage(pageReqVO); } + /** + * 我看过-分页查询 + */ + @Override + public PageResult lookItMePage(AppRecentLikeReqVo dto) { + PageResult resultPageList = new PageResult<>(); + PageResult pageList = viewRecordMapper.selectPage(dto, new LambdaQueryWrapperX() + .eq(ViewRecordDO::getMemberId, dto.getMemberId()) + .eq(ViewRecordDO::getBizType, MemberRecentViewRecordEnum.USER.getType()) + .ne(ViewRecordDO::getBizId, dto.getMemberId()) + .orderByDesc(ViewRecordDO::getCreateTime) + ); + List list = pageList.getList(); + if (ObjectUtil.isEmpty(list)) return resultPageList; + List resultList = BeanUtils.toBean(list, ViewRecordPageReqVO.class); + // 为ViewRecordPageReqVO设置Member信息 + convertViewRecordPageReqVOSetupMember(resultList); + resultPageList.setList(resultList); + resultPageList.setTotal(pageList.getTotal()); + return resultPageList; + } + + /** + * 看过我-分页查询 + */ + @Override + public PageResult lookMePage(AppRecentLikeReqVo dto) { + PageResult resultPageList = new PageResult<>(); + PageResult pageList = viewRecordMapper.selectPage(dto, new LambdaQueryWrapperX() + .ne(ViewRecordDO::getMemberId, dto.getMemberId()) + .eq(ViewRecordDO::getBizType, MemberRecentViewRecordEnum.USER.getType()) + .eq(ViewRecordDO::getBizId, dto.getMemberId()) + .orderByDesc(ViewRecordDO::getCreateTime) + ); + List list = pageList.getList(); + if (ObjectUtil.isEmpty(list)) return resultPageList; + List resultList = BeanUtils.toBean(list, ViewRecordPageReqVO.class); + // 为ViewRecordPageReqVO设置Member信息 + convertViewRecordPageReqVOSetupMember(resultList); + resultPageList.setList(resultList); + resultPageList.setTotal(pageList.getTotal()); + return resultPageList; + } + + // 为ViewRecordPageReqVO设置Member信息 + private void convertViewRecordPageReqVOSetupMember(List list) { + if (ObjectUtil.isEmpty(list)) return; + List memberIds = list.stream().map(ViewRecordPageReqVO::getMemberId).collect(Collectors.toList()); + List memberList = memberUserService.getUserList(memberIds); + Map memberMap = IterUtil.toMap(memberList, MemberUserDO::getId); + for (ViewRecordPageReqVO entity : list) { + // 用户相关 + if (ObjectUtil.isNotEmpty(memberMap)) { + MemberUserDO member = memberMap.get(entity.getMemberId()); + if (ObjectUtil.isNotEmpty(member)) { + ViewRecordPageReqVO.MemberVo memberVO = new ViewRecordPageReqVO.MemberVo(); + memberVO.setMemberId(member.getId()); + memberVO.setMemberAvatar(member.getAvatar()); + memberVO.setMemberNickname(member.getNickname()); + memberVO.setMemberAge(member.getAge()); + memberVO.setMemberOcc(member.getOcc()); + entity.setMember(memberVO); + } + } + } + } + private void validateViewRecordExists(Long id) { if (viewRecordMapper.selectById(id) == null) { throw exception(MemberErrorCode.VIEW_RECORD_NOT_EXISTS);