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.EpicScriptPageRequest;
|
||||||
import com.emotion.dto.request.EpicScriptUpdateRequest;
|
import com.emotion.dto.request.EpicScriptUpdateRequest;
|
||||||
import com.emotion.dto.request.SwitchVersionRequest;
|
import com.emotion.dto.request.SwitchVersionRequest;
|
||||||
|
import com.emotion.dto.request.ScriptFavoriteToggleRequest;
|
||||||
import com.emotion.dto.response.EpicScriptCreateWithDialogueResponse;
|
import com.emotion.dto.response.EpicScriptCreateWithDialogueResponse;
|
||||||
import com.emotion.dto.response.EpicScriptInspirationResponse;
|
import com.emotion.dto.response.EpicScriptInspirationResponse;
|
||||||
import com.emotion.dto.response.EpicScriptResponse;
|
import com.emotion.dto.response.EpicScriptResponse;
|
||||||
import com.emotion.dto.response.InspirationSuggestionResponse;
|
import com.emotion.dto.response.InspirationSuggestionResponse;
|
||||||
import com.emotion.service.EpicScriptDialogueService;
|
import com.emotion.service.EpicScriptDialogueService;
|
||||||
|
import com.emotion.dto.response.ScriptFavoriteResponse;
|
||||||
import com.emotion.service.EpicScriptService;
|
import com.emotion.service.EpicScriptService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
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.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -41,6 +44,9 @@ public class EpicScriptController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EpicScriptDialogueService epicScriptDialogueService;
|
private EpicScriptDialogueService epicScriptDialogueService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ScriptFavoriteService scriptFavoriteService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询当前用户的爽文剧本
|
* 分页查询当前用户的爽文剧本
|
||||||
*/
|
*/
|
||||||
@@ -172,4 +178,31 @@ public class EpicScriptController {
|
|||||||
}
|
}
|
||||||
return Result.success();
|
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