diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentSceneEnum.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentSceneEnum.java index 8eda508..a17be97 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentSceneEnum.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentSceneEnum.java @@ -8,7 +8,7 @@ import java.util.Arrays; import java.util.List; /** - * 朋友圈查看场景 square + * 朋友圈查看场景 */ @Getter @AllArgsConstructor 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 new file mode 100644 index 0000000..edad8da --- /dev/null +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/MemberRecentViewRecordEnum.java @@ -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 operateEnumList) { + return operateEnumList.stream().anyMatch(MemberRecentOperateEnum::contains); + } +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/ViewRecordController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/ViewRecordController.java index 17a64ba..a6336e1 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/ViewRecordController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/viewrecord/ViewRecordController.java @@ -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 createViewRecord(@Valid @RequestBody ViewRecordSaveReqVO createReqVO) { + public CommonResult createViewRecord(@Valid @RequestBody AppRecentViewRecordReqVo createReqVO) { return success(viewRecordService.createViewRecord(createReqVO)); } 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 59ac20e..013ada1 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 @@ -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 createViewRecord(@Valid @RequestBody AppRecentViewRecordReqVo dto) { + dto.setMemberId(getLoginUserId()); + return success(viewRecord.createViewRecord(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/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 new file mode 100644 index 0000000..095bd5e --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppRecentViewRecordReqVo.java @@ -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; + +} 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 3ce92dc..2dc51fd 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 @@ -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; 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 a46f310..ffc1506 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 @@ -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); /** * 更新用户查看记录 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 ab28ccc..9d36edd 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,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(); }