fent:添加预览记录

This commit is contained in:
dzc committed 2025-10-29 15:32:02 +08:00
1 parent 7e391852df
commit 9ce5a00456
8 files changed
+91 -8

No files matched your search

@@ -8,7 +8,7 @@ import java.util.Arrays;
import java.util.List;
/**
* 朋友圈查看场景 square
* 朋友圈查看场景
*/
@Getter
@AllArgsConstructor
@@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.member.enums;
import cn.hutool.core.util.ObjectUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
/**
* 用户预览记录 classify
*/
@Getter
@AllArgsConstructor
public enum MemberRecentViewRecordEnum {
CLASSIFY("1", "分类查看"),
RECENT("2", "朋友圈查看"),
;
private final String type;
private final String description;
public static boolean contains(MemberRecentOperateEnum operateEnum) {
return Arrays.asList(values()).stream().anyMatch(v -> ObjectUtil.equals(v.type, operateEnum.getType()));
}
public static boolean contains(List<MemberRecentOperateEnum> operateEnumList) {
return operateEnumList.stream().anyMatch(MemberRecentOperateEnum::contains);
}
}
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.member.controller.admin.viewrecord;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentViewRecordReqVo;
import cn.iocoder.yudao.module.member.service.recent.ViewRecordService;
import org.springframework.web.bind.annotation.*;
@@ -45,7 +46,7 @@ public class ViewRecordController {
@PostMapping("/create")
@Operation(summary = "创建用户查看记录")
@PreAuthorize("@ss.hasPermission('member:view-record:create')")
public CommonResult<Long> createViewRecord(@Valid @RequestBody ViewRecordSaveReqVO createReqVO) {
public CommonResult<Long> createViewRecord(@Valid @RequestBody AppRecentViewRecordReqVo createReqVO) {
return success(viewRecordService.createViewRecord(createReqVO));
}
@@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.member.controller.admin.recent.vo.RecentSaveReqVO
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentOperateReqVo;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentQuickPageVO;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentSaveReqVO;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentViewRecordReqVo;
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.springframework.validation.annotation.Validated;
@@ -28,6 +30,8 @@ public class AppRecentController {
@Resource
private RecentService recentService;
@Resource
private ViewRecordService viewRecord;
@PostMapping("/quick-page")
@Operation(summary = "快速查询朋友圈")
@@ -50,4 +54,11 @@ public class AppRecentController {
return success(recentService.operate(dto));
}
@PostMapping("/create/view-record")
@Operation(summary = "添加用户预览记录")
public CommonResult<Long> createViewRecord(@Valid @RequestBody AppRecentViewRecordReqVo dto) {
dto.setMemberId(getLoginUserId());
return success(viewRecord.createViewRecord(dto));
}
}
@@ -0,0 +1,35 @@
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 javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Data
public class AppRecentViewRecordReqVo {
@Schema(description = "用户编号")
private Long memberId;
@Schema(description = "查看记录分类")
@NotEmpty(message = "查看记录分类不能为空")
private MemberRecentViewRecordEnum bizType;
@Schema(description = "查询分类、查看朋友圈")
private Long bizId;
@Schema(description = "标题")
private String title;
@Schema(description = "开始查看时间")
@NotEmpty(message = "开始查看时间不能为空")
private LocalDateTime viewStartTime;
@Schema(description = "结束查看时间")
@NotEmpty(message = "结束查看时间不能为空")
private LocalDateTime viewEndTime;
}
@@ -5,6 +5,7 @@ import javax.validation.*;
import cn.iocoder.yudao.module.member.controller.admin.recent.vo.*;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentOperateReqVo;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentViewRecordReqVo;
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;
@@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.member.service.recent;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.member.controller.admin.viewrecord.vo.*;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentViewRecordReqVo;
import cn.iocoder.yudao.module.member.dal.dataobject.viewrecord.ViewRecordDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
/**
* 用户查看记录 Service 接口
@@ -15,7 +14,7 @@ public interface ViewRecordService {
/**
* 创建用户查看记录
*/
Long createViewRecord(@Valid ViewRecordSaveReqVO createReqVO);
Long createViewRecord(@Valid AppRecentViewRecordReqVo createReqVO);
/**
* 更新用户查看记录
@@ -1,6 +1,9 @@
package cn.iocoder.yudao.module.member.service.recent;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentViewRecordReqVo;
import cn.iocoder.yudao.module.member.enums.MemberErrorCode;
import cn.iocoder.yudao.module.member.enums.MemberRecentViewRecordEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -37,11 +40,14 @@ public class ViewRecordServiceImpl implements ViewRecordService {
* 创建用户查看记录
*/
@Override
public Long createViewRecord(ViewRecordSaveReqVO createReqVO) {
public Long createViewRecord(AppRecentViewRecordReqVo dto) {
// 插入
ViewRecordDO viewRecord = BeanUtils.toBean(createReqVO, ViewRecordDO.class);
ViewRecordDO viewRecord = BeanUtils.toBean(dto, ViewRecordDO.class);
viewRecord.setViewSecond((dto.getViewEndTime().getSecond() - dto.getViewStartTime().getSecond()));
if (ObjectUtil.equals(viewRecord.getBizType(), MemberRecentViewRecordEnum.RECENT.getType())) {
viewRecord.setTitle("访问朋友圈");
}
viewRecordMapper.insert(viewRecord);
// 返回
return viewRecord.getId();
}