feat:黑名单

This commit is contained in:
dzc committed 2025-12-04 17:04:35 +08:00
1 parent acfd9b7bc3
commit 0e6b73ca6a
11 files changed
+128 -166

No files matched your search

@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.member.controller.admin.recent.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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;
@@ -16,8 +17,8 @@ import com.alibaba.excel.annotation.*;
@ExcelIgnoreUnannotated
public class OperationRespVO {
@Schema(description = "收件地址编号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("收件地址编号")
@Schema(description = "操作id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("操作id")
private Long id;
@Schema(description = "操作用户编号", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -12,24 +12,16 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.viewrecord.ViewRecordDO;
@@ -71,28 +63,17 @@ public class ViewRecordController {
@Operation(summary = "获得用户查看记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:view-record:query')")
public CommonResult<ViewRecordRespVO> getViewRecord(@RequestParam("id") Long id) {
public CommonResult<ViewRecordPageRespVO> getViewRecord(@RequestParam("id") Long id) {
ViewRecordDO viewRecord = viewRecordService.getViewRecord(id);
return success(BeanUtils.toBean(viewRecord, ViewRecordRespVO.class));
return success(BeanUtils.toBean(viewRecord, ViewRecordPageRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得用户查看记录分页")
@PreAuthorize("@ss.hasPermission('member:view-record:query')")
public CommonResult<PageResult<ViewRecordRespVO>> getViewRecordPage(@Valid ViewRecordPageReqVO pageReqVO) {
public CommonResult<PageResult<ViewRecordPageRespVO>> getViewRecordPage(@Valid ViewRecordPageRespVO pageReqVO) {
PageResult<ViewRecordDO> pageResult = viewRecordService.getViewRecordPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ViewRecordRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出用户查看记录 Excel")
@PreAuthorize("@ss.hasPermission('member:view-record:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportViewRecordExcel(@Valid ViewRecordPageReqVO pageReqVO, HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ViewRecordDO> list = viewRecordService.getViewRecordPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "用户查看记录.xls", "数据", ViewRecordRespVO.class, BeanUtils.toBean(list, ViewRecordRespVO.class));
return success(BeanUtils.toBean(pageResult, ViewRecordPageRespVO.class));
}
}
@@ -1,69 +0,0 @@
package cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo;
import lombok.*;
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;
@Schema(description = "管理后台 - 用户查看记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ViewRecordPageReqVO extends PageParam {
@Schema(description = "用户编号", example = "11805")
private Long memberId;
@Schema(description = "查询分类、查看朋友圈", example = "1")
private String bizType;
@Schema(description = "查询分类、查看朋友圈", example = "9753")
private Long bizId;
@Schema(description = "查看的标题")
private String title;
@Schema(description = "开始查看时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] viewStartTime;
@Schema(description = "结束查看时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] viewEndTime;
@Schema(description = "查看时间(秒)")
private Integer viewSecond;
@Schema(description = "创建时间")
@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;
}
}
@@ -1,16 +1,16 @@
package cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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.*;
@Schema(description = "管理后台 - 用户查看记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ViewRecordRespVO {
public class ViewRecordPageRespVO extends PageParam {
@Schema(description = "收件地址编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7112")
@ExcelProperty("收件地址编号")
@@ -7,13 +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.enums.MemberRecentSceneEnum;
import cn.iocoder.yudao.module.member.service.recent.RecentService;
import cn.iocoder.yudao.module.member.service.recent.ViewRecordService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.ibatis.annotations.Delete;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -79,42 +79,59 @@ public class AppRecentController {
@PostMapping("/like/it-page")
@Operation(summary = "我喜欢-分页查询")
public CommonResult<PageResult<OperationRespVO>> likeItPage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setMemberId(getLoginUserId());
dto.setOperationMemberId(getLoginUserId());
return success(recentService.likeItPage(dto));
}
@PostMapping("/like/me-page")
@Operation(summary = "喜欢我-分页查询")
public CommonResult<PageResult<OperationRespVO>> likeMePage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setMemberId(getLoginUserId());
dto.setOperationMemberId(getLoginUserId());
return success(recentService.likeMePage(dto));
}
@GetMapping("/black/list")
@Operation(summary = "黑名单列表")
public CommonResult<PageResult<OperationRespVO>> blackList() {
AppRecentLikeReqVo dto = new AppRecentLikeReqVo();
dto.setOperationMemberId(getLoginUserId());
return success(recentService.blackList(dto));
}
@DeleteMapping("/black/remove")
@Operation(summary = "移除黑名单")
public CommonResult<Boolean> blackRemove(@RequestParam Long id) {
AppRecentLikeReqVo dto = new AppRecentLikeReqVo();
dto.setOperationMemberId(getLoginUserId());
dto.setOperationId(id);
return success(recentService.blackRemove(dto));
}
@PostMapping("/look/it-page")
@Operation(summary = "我看过-分页查询")
public CommonResult<PageResult<ViewRecordPageReqVO>> lookItMePage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setMemberId(getLoginUserId());
public CommonResult<PageResult<OperationRespVO>> lookItMePage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setOperationMemberId(getLoginUserId());
return success(viewRecordService.lookItMePage(dto));
}
@PostMapping("/look/me-page")
@Operation(summary = "看过我-分页查询")
public CommonResult<PageResult<ViewRecordPageReqVO>> lookMePage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setMemberId(getLoginUserId());
public CommonResult<PageResult<OperationRespVO>> lookMePage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setOperationMemberId(getLoginUserId());
return success(viewRecordService.lookMePage(dto));
}
@PostMapping("/dynamic-page")
@Operation(summary = "我的动态")
public CommonResult<PageResult<RecentPageResVo>> dynamicPage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setMemberId(getLoginUserId());
dto.setOperationMemberId(getLoginUserId());
return success(recentService.dynamicPage(dto));
}
@PostMapping("/evaluate-page")
@Operation(summary = "我的评价")
public CommonResult<PageResult<OperationRespVO>> evaluatePage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setMemberId(getLoginUserId());
public CommonResult<PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO>> evaluatePage(@Valid @RequestBody AppRecentLikeReqVo dto) {
dto.setOperationMemberId(getLoginUserId());
return success(recentService.evaluatePage(dto));
}
@@ -8,6 +8,9 @@ import lombok.Data;
public class AppRecentLikeReqVo extends PageParam {
@Schema(description = "操作用户标号")
private Long memberId;
private Long operationMemberId;
@Schema(description = "操作id")
private Long operationId;
}
@@ -1,7 +1,5 @@
package cn.iocoder.yudao.module.member.dal.mysql.viewrecord;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
@@ -17,16 +15,13 @@ import cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo.*;
@Mapper
public interface ViewRecordMapper extends BaseMapperX<ViewRecordDO> {
default PageResult<ViewRecordDO> selectPage(ViewRecordPageReqVO reqVO) {
default PageResult<ViewRecordDO> selectPage(ViewRecordPageRespVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ViewRecordDO>()
.eqIfPresent(ViewRecordDO::getMemberId, reqVO.getMemberId())
.eqIfPresent(ViewRecordDO::getBizType, reqVO.getBizType())
.eqIfPresent(ViewRecordDO::getBizId, reqVO.getBizId())
.eqIfPresent(ViewRecordDO::getTitle, reqVO.getTitle())
.betweenIfPresent(ViewRecordDO::getViewStartTime, reqVO.getViewStartTime())
.betweenIfPresent(ViewRecordDO::getViewEndTime, reqVO.getViewEndTime())
.eqIfPresent(ViewRecordDO::getViewSecond, reqVO.getViewSecond())
.betweenIfPresent(ViewRecordDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(ViewRecordDO::getId));
}
@@ -60,12 +60,22 @@ public interface RecentService {
/**
* 我喜欢-分页查询
*/
PageResult<OperationRespVO> likeItPage(@Valid AppRecentLikeReqVo dto);
PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> likeItPage(@Valid AppRecentLikeReqVo dto);
/**
* 喜欢我-分页查询
*/
PageResult<OperationRespVO> likeMePage(@Valid AppRecentLikeReqVo dto);
PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> likeMePage(@Valid AppRecentLikeReqVo dto);
/**
* 黑名单列表
*/
PageResult<OperationRespVO> blackList(@Valid AppRecentLikeReqVo dto);
/**
* 移除黑名单
*/
Boolean blackRemove(AppRecentLikeReqVo dto);
/**
* 我的动态
@@ -75,7 +85,7 @@ public interface RecentService {
/**
* 我的评价
*/
PageResult<OperationRespVO> evaluatePage(@Valid AppRecentLikeReqVo dto);
PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> evaluatePage(@Valid AppRecentLikeReqVo dto);
/**
* 我的评价总分数详情
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.service.recent;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.member.api.thirdauth.ThirdAuthVo;
@@ -16,6 +17,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.recent.OperationDO;
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;
import cn.iocoder.yudao.module.member.enums.ErrorCodeConstants;
import cn.iocoder.yudao.module.member.enums.MemberErrorCode;
import cn.iocoder.yudao.module.member.enums.MemberRecentOperateEnum;
import cn.iocoder.yudao.module.member.enums.MemberRecentSceneEnum;
@@ -354,11 +356,11 @@ public class RecentServiceImpl implements RecentService {
* 我喜欢-分页查询
*/
@Override
public PageResult<OperationRespVO> likeItPage(AppRecentLikeReqVo dto) {
PageResult<OperationRespVO> resultPageList = new PageResult<>();
public PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> likeItPage(AppRecentLikeReqVo dto) {
PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> resultPageList = new PageResult<>();
// 查询我喜欢
PageResult<OperationDO> pageList = operationMapper.selectPage(dto, new LambdaQueryWrapperX<OperationDO>()
.eq(OperationDO::getOperatorMemberId, dto.getMemberId())
.eq(OperationDO::getOperatorMemberId, dto.getOperationMemberId())
.eq(OperationDO::getBizType, MemberRecentOperateEnum.MEMBER_COLLECT.getType())
.isNull(OperationDO::getCancelTime)
.orderByDesc(OperationDO::getTapTime)
@@ -366,7 +368,7 @@ public class RecentServiceImpl implements RecentService {
);
List<OperationDO> list = pageList.getList();
if (ObjectUtil.isEmpty(list)) return resultPageList;
List<OperationRespVO> resultList = BeanUtils.toBean(list, OperationRespVO.class);
List<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> resultList = BeanUtils.toBean(list, cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO.class);
// 为OperationRespVO设置Member信息
convertOperationRespVOSetupMember(resultList);
convertOperationRespVOSetupTagList(resultList);
@@ -379,10 +381,10 @@ public class RecentServiceImpl implements RecentService {
* 喜欢我-分页查询
*/
@Override
public PageResult<OperationRespVO> likeMePage(AppRecentLikeReqVo dto) {
public PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> likeMePage(AppRecentLikeReqVo dto) {
// 查询我喜欢
PageResult<OperationDO> pageList = operationMapper.selectPage(dto, new LambdaQueryWrapperX<OperationDO>()
.eq(OperationDO::getMemberId, dto.getMemberId())
.eq(OperationDO::getMemberId, dto.getOperationMemberId())
.eq(OperationDO::getBizType, MemberRecentOperateEnum.MEMBER_COLLECT.getType())
.isNull(OperationDO::getCancelTime)
.orderByDesc(OperationDO::getTapTime)
@@ -390,13 +392,45 @@ public class RecentServiceImpl implements RecentService {
);
List<OperationDO> list = pageList.getList();
if (ObjectUtil.isEmpty(list)) return new PageResult<>();
List<OperationRespVO> resultList = BeanUtils.toBean(list, OperationRespVO.class);
List<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> resultList = BeanUtils.toBean(list, cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO.class);
// 为OperationRespVO设置Member信息
convertOperationRespVOSetupMember(resultList);
convertOperationRespVOSetupTagList(resultList);
return new PageResult<>(resultList, pageList.getTotal());
}
/**
* 黑名单列表
*/
@Override
public PageResult<OperationRespVO> blackList(AppRecentLikeReqVo dto) {
// 查询黑名单
PageResult<OperationDO> pageList = operationMapper.selectPage(dto, new LambdaQueryWrapperX<OperationDO>()
.eq(OperationDO::getOperatorMemberId, dto.getOperationMemberId())
.eq(OperationDO::getBizType, MemberRecentOperateEnum.MEMBER_SHIELD.getType())
.isNull(OperationDO::getCancelTime)
.orderByDesc(OperationDO::getTapTime)
.orderByDesc(OperationDO::getId)
);
List<OperationDO> list = pageList.getList();
if (ObjectUtil.isEmpty(list)) return new PageResult<>();
List<OperationRespVO> resultList = BeanUtils.toBean(list, cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO.class);
// 为OperationRespVO设置Member信息
convertOperationRespVOSetupMember(resultList);
convertOperationRespVOSetupTagList(resultList);
return new PageResult<>(resultList, pageList.getTotal());
}
/**
* 移除黑名单
*/
@Override
public Boolean blackRemove(AppRecentLikeReqVo dto) {
OperationDO operationDO = operationMapper.selectById(dto.getOperationId());
if (ObjectUtil.isEmpty(operationDO)) throw exception(MemberErrorCode.EMPTY, "黑名单不存在");
return operationMapper.deleteById(operationDO) > 0;
}
/**
* 我的动态
*/
@@ -417,10 +451,10 @@ public class RecentServiceImpl implements RecentService {
* 我的评价
*/
@Override
public PageResult<OperationRespVO> evaluatePage(AppRecentLikeReqVo dto) {
public PageResult<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> evaluatePage(AppRecentLikeReqVo dto) {
// 我的评价
PageResult<OperationDO> pageList = operationMapper.selectPage(dto, new LambdaQueryWrapperX<OperationDO>()
.eq(OperationDO::getOperatorMemberId, dto.getMemberId())
.eq(OperationDO::getOperatorMemberId, dto.getOperationMemberId())
.eq(OperationDO::getBizType, MemberRecentOperateEnum.MEMBER_RATING.getType())
.isNull(OperationDO::getCancelTime)
.orderByDesc(OperationDO::getTapTime)
@@ -428,7 +462,7 @@ public class RecentServiceImpl implements RecentService {
);
List<OperationDO> list = pageList.getList();
if (ObjectUtil.isEmpty(list)) return new PageResult<>();
List<OperationRespVO> resultList = BeanUtils.toBean(list, OperationRespVO.class);
List<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> resultList = BeanUtils.toBean(list, cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO.class);
// 为OperationRespVO设置Member信息
convertOperationRespVOSetupMember(resultList);
@@ -614,23 +648,23 @@ public class RecentServiceImpl implements RecentService {
/**
* 为OperationRespVO设置Member信息
*/
private void convertOperationRespVOSetupMember(List<OperationRespVO> list) {
private void convertOperationRespVOSetupMember(List<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> list) {
if (ObjectUtil.isEmpty(list)) return;
List<Long> memberIds = list.stream().map(OperationRespVO::getMemberId).collect(Collectors.toList());
List<Long> memberIds = list.stream().map(cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO::getMemberId).collect(Collectors.toList());
List<MemberExtBO> memberList = memberUserService.getUserExtList(memberIds);
Map<Long, MemberExtBO> memberMap = IterUtil.toMap(memberList, MemberExtBO::getMemberId);
for (OperationRespVO entity : list) {
for (cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO entity : list) {
MemberExtBO member = memberMap.get(entity.getMemberId());
entity.setMember(member);
}
}
private void convertOperationRespVOSetupTagList(List<OperationRespVO> list) {
private void convertOperationRespVOSetupTagList(List<cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO> list) {
if (ObjectUtil.isEmpty(list)) return;
List<Long> memberIds = list.stream().map(OperationRespVO::getMemberId).collect(Collectors.toList());
List<Long> memberIds = list.stream().map(cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO::getMemberId).collect(Collectors.toList());
List<MemberTagExtBO> memberList = memberRecentTagService.getUserTagExtList(memberIds);
Map<Long, List<MemberTagExtBO>> memberMap = IterUtil.toListMap(memberList, MemberTagExtBO::getMemberId);
for (OperationRespVO entity : list) {
for (cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO entity : list) {
List<MemberTagExtBO> tags = memberMap.get(entity.getMemberId());
entity.setMemberTagList(tags);
}
@@ -3,7 +3,6 @@ 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;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentViewRecordReqVo;
@@ -38,15 +37,15 @@ public interface ViewRecordService {
/**
* 获得用户查看记录分页
*/
PageResult<ViewRecordDO> getViewRecordPage(ViewRecordPageReqVO pageReqVO);
PageResult<ViewRecordDO> getViewRecordPage(ViewRecordPageRespVO pageReqVO);
/**
* 我看过-分页查询
*/
PageResult<ViewRecordPageReqVO> lookItMePage(@Valid AppRecentLikeReqVo dto);
PageResult<OperationRespVO> lookItMePage(@Valid AppRecentLikeReqVo dto);
/**
* 看过我-分页查询
*/
PageResult<ViewRecordPageReqVO> lookMePage(@Valid AppRecentLikeReqVo dto);
PageResult<OperationRespVO> lookMePage(@Valid AppRecentLikeReqVo dto);
}
@@ -3,11 +3,13 @@ package cn.iocoder.yudao.module.member.service.recent;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationRespVO;
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.BO.MemberExtBO;
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
import org.springframework.stereotype.Service;
@@ -92,7 +94,7 @@ public class ViewRecordServiceImpl implements ViewRecordService {
* 获得用户查看记录分页
*/
@Override
public PageResult<ViewRecordDO> getViewRecordPage(ViewRecordPageReqVO pageReqVO) {
public PageResult<ViewRecordDO> getViewRecordPage(ViewRecordPageRespVO pageReqVO) {
return viewRecordMapper.selectPage(pageReqVO);
}
@@ -100,17 +102,17 @@ public class ViewRecordServiceImpl implements ViewRecordService {
* 我看过-分页查询
*/
@Override
public PageResult<ViewRecordPageReqVO> lookItMePage(AppRecentLikeReqVo dto) {
PageResult<ViewRecordPageReqVO> resultPageList = new PageResult<>();
public PageResult<OperationRespVO> lookItMePage(AppRecentLikeReqVo dto) {
PageResult<OperationRespVO> resultPageList = new PageResult<>();
PageResult<ViewRecordDO> pageList = viewRecordMapper.selectPage(dto, new LambdaQueryWrapperX<ViewRecordDO>()
.eq(ViewRecordDO::getMemberId, dto.getMemberId())
.eq(ViewRecordDO::getMemberId, dto.getOperationMemberId())
.eq(ViewRecordDO::getBizType, MemberRecentViewRecordEnum.USER.getType())
.ne(ViewRecordDO::getBizId, dto.getMemberId())
.ne(ViewRecordDO::getBizId, dto.getOperationMemberId())
.orderByDesc(ViewRecordDO::getCreateTime)
);
List<ViewRecordDO> list = pageList.getList();
if (ObjectUtil.isEmpty(list)) return resultPageList;
List<ViewRecordPageReqVO> resultList = BeanUtils.toBean(list, ViewRecordPageReqVO.class);
List<OperationRespVO> resultList = BeanUtils.toBean(list, OperationRespVO.class);
// 为ViewRecordPageReqVO设置Member信息
convertViewRecordPageReqVOSetupMember(resultList);
resultPageList.setList(resultList);
@@ -122,17 +124,17 @@ public class ViewRecordServiceImpl implements ViewRecordService {
* 看过我-分页查询
*/
@Override
public PageResult<ViewRecordPageReqVO> lookMePage(AppRecentLikeReqVo dto) {
PageResult<ViewRecordPageReqVO> resultPageList = new PageResult<>();
public PageResult<OperationRespVO> lookMePage(AppRecentLikeReqVo dto) {
PageResult<OperationRespVO> resultPageList = new PageResult<>();
PageResult<ViewRecordDO> pageList = viewRecordMapper.selectPage(dto, new LambdaQueryWrapperX<ViewRecordDO>()
.ne(ViewRecordDO::getMemberId, dto.getMemberId())
.ne(ViewRecordDO::getMemberId, dto.getOperationMemberId())
.eq(ViewRecordDO::getBizType, MemberRecentViewRecordEnum.USER.getType())
.eq(ViewRecordDO::getBizId, dto.getMemberId())
.eq(ViewRecordDO::getBizId, dto.getOperationMemberId())
.orderByDesc(ViewRecordDO::getCreateTime)
);
List<ViewRecordDO> list = pageList.getList();
if (ObjectUtil.isEmpty(list)) return resultPageList;
List<ViewRecordPageReqVO> resultList = BeanUtils.toBean(list, ViewRecordPageReqVO.class);
List<OperationRespVO> resultList = BeanUtils.toBean(list, OperationRespVO.class);
// 为ViewRecordPageReqVO设置Member信息
convertViewRecordPageReqVOSetupMember(resultList);
resultPageList.setList(resultList);
@@ -141,25 +143,14 @@ public class ViewRecordServiceImpl implements ViewRecordService {
}
// 为ViewRecordPageReqVO设置Member信息
private void convertViewRecordPageReqVOSetupMember(List<ViewRecordPageReqVO> list) {
private void convertViewRecordPageReqVOSetupMember(List<OperationRespVO> list) {
if (ObjectUtil.isEmpty(list)) return;
List<Long> memberIds = list.stream().map(ViewRecordPageReqVO::getMemberId).collect(Collectors.toList());
List<MemberUserDO> memberList = memberUserService.getUserList(memberIds);
Map<Long, MemberUserDO> 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);
}
}
List<Long> memberIds = list.stream().map(OperationRespVO::getMemberId).collect(Collectors.toList());
List<MemberExtBO> memberList = memberUserService.getUserExtList(memberIds);
Map<Long, MemberExtBO> memberMap = IterUtil.toMap(memberList, MemberExtBO::getMemberId);
for (OperationRespVO entity : list) {
MemberExtBO member = memberMap.get(entity.getMemberId());
entity.setMember(member);
}
}