feat(script-favorite): add 3 favorite endpoints to EpicScriptController
- POST /epicScript/favorite/toggle: toggle favorite for a script - GET /epicScript/favorite/page: paginated favorite list - GET /epicScript/favorite/check: check if script is favorited - Add ScriptFavoriteToggleRequest, ScriptFavoriteResponse, ScriptFavoriteService imports - Inject ScriptFavoriteService via @Autowired
This commit is contained in:
@@ -8,13 +8,16 @@ import com.emotion.dto.request.EpicScriptInspirationRequest;
|
||||
import com.emotion.dto.request.EpicScriptPageRequest;
|
||||
import com.emotion.dto.request.EpicScriptUpdateRequest;
|
||||
import com.emotion.dto.request.SwitchVersionRequest;
|
||||
import com.emotion.dto.request.ScriptFavoriteToggleRequest;
|
||||
import com.emotion.dto.response.EpicScriptCreateWithDialogueResponse;
|
||||
import com.emotion.dto.response.EpicScriptInspirationResponse;
|
||||
import com.emotion.dto.response.EpicScriptResponse;
|
||||
import com.emotion.dto.response.InspirationSuggestionResponse;
|
||||
import com.emotion.service.EpicScriptDialogueService;
|
||||
import com.emotion.dto.response.ScriptFavoriteResponse;
|
||||
import com.emotion.service.EpicScriptService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import com.emotion.service.ScriptFavoriteService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -41,6 +44,9 @@ public class EpicScriptController {
|
||||
@Autowired
|
||||
private EpicScriptDialogueService epicScriptDialogueService;
|
||||
|
||||
@Autowired
|
||||
private ScriptFavoriteService scriptFavoriteService;
|
||||
|
||||
/**
|
||||
* 分页查询当前用户的爽文剧本
|
||||
*/
|
||||
@@ -172,4 +178,31 @@ public class EpicScriptController {
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
// ==================== 剧本收藏 ====================
|
||||
|
||||
@Operation(summary = "切换收藏", description = "收藏或取消收藏指定剧本。")
|
||||
@PostMapping(value = "/favorite/toggle")
|
||||
public Result<ScriptFavoriteResponse> toggleFavorite(
|
||||
@Valid @RequestBody ScriptFavoriteToggleRequest request) {
|
||||
return Result.success(scriptFavoriteService.toggleFavorite(request.getScriptId()));
|
||||
}
|
||||
|
||||
@Operation(summary = "分页查询收藏", description = "分页查询当前用户收藏的剧本列表。")
|
||||
@GetMapping(value = "/favorite/page")
|
||||
public Result<PageResult<EpicScriptResponse>> getFavoritePage(
|
||||
@RequestParam(defaultValue = "1") long current,
|
||||
@RequestParam(defaultValue = "10") long size) {
|
||||
return Result.success(scriptFavoriteService.getFavoritePage(current, size));
|
||||
}
|
||||
|
||||
@Operation(summary = "检查收藏状态", description = "检查指定剧本是否已被当前用户收藏。")
|
||||
@GetMapping(value = "/favorite/check")
|
||||
public Result<ScriptFavoriteResponse> checkFavorite(@RequestParam String scriptId) {
|
||||
boolean favorited = scriptFavoriteService.isFavorited(scriptId);
|
||||
ScriptFavoriteResponse r = new ScriptFavoriteResponse();
|
||||
r.setScriptId(scriptId);
|
||||
r.setIsFavorited(favorited);
|
||||
return Result.success(r);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user