dd11cfae73
- 后端:新增 t_event_favorite 表(UNIQUE KEY + MyBatis-Plus Entity) - 后端:LifeEventController 新增 /favorite/toggle、/favorite/page、/favorite/check 三个真实端点 - 后端:EventFavoriteService 完整 CRUD,含 toggle/分页/批量查询/状态检查 - 后端:删除旧的 favorite-placeholder mock 端点 - 前端:life-event/detail.vue 从 localStorage 假收藏切换为真实 API + localStorage 缓存防闪烁 - 前端:ScriptLibraryView.vue 从 localFavorites 切换为 checkFavoriteScript 真实 API - 前端:stores/app.js 新增 toggleEventFavorite / checkEventFavorite 方法 - 修复:审核发现的 UNIQUE 约束缺失、未使用 watch 导入、Controller 参数注解遗漏、Controller 委托 Service 构造 Response Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
67 lines
1.6 KiB
Java
67 lines
1.6 KiB
Java
package com.emotion.service;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.IService;
|
|
import com.emotion.common.PageResult;
|
|
import com.emotion.dto.response.EventFavoriteResponse;
|
|
import com.emotion.dto.response.LifeEventResponse;
|
|
import com.emotion.entity.EventFavorite;
|
|
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* 人生事件收藏服务接口
|
|
*
|
|
* @author huazhongmin
|
|
* @date 2026-07-19
|
|
*/
|
|
public interface EventFavoriteService extends IService<EventFavorite> {
|
|
|
|
/**
|
|
* 切换收藏状态(收藏/取消收藏)
|
|
*
|
|
* @param eventId 事件ID
|
|
* @return 收藏状态响应
|
|
*/
|
|
EventFavoriteResponse toggleFavorite(String eventId);
|
|
|
|
/**
|
|
* 分页查询当前用户收藏的事件列表
|
|
*
|
|
* @param current 当前页码
|
|
* @param size 每页大小
|
|
* @return 分页结果
|
|
*/
|
|
PageResult<LifeEventResponse> getFavoritePage(long current, long size);
|
|
|
|
/**
|
|
* 批量查询已收藏的事件ID集合
|
|
*
|
|
* @param eventIds 待查询的事件ID集合
|
|
* @return 已收藏的事件ID集合
|
|
*/
|
|
Set<String> getFavoritedEventIds(Set<String> eventIds);
|
|
|
|
/**
|
|
* 检查收藏状态
|
|
*
|
|
* @param eventId 事件ID
|
|
* @return 收藏状态响应
|
|
*/
|
|
EventFavoriteResponse checkFavorite(String eventId);
|
|
|
|
/**
|
|
* 检查指定事件是否已被当前用户收藏
|
|
*
|
|
* @param eventId 事件ID
|
|
* @return 是否已收藏
|
|
*/
|
|
boolean isFavorited(String eventId);
|
|
|
|
/**
|
|
* 获取当前用户的收藏总数
|
|
*
|
|
* @return 收藏总数
|
|
*/
|
|
long getFavoriteCount();
|
|
}
|