pub struct MangaService;Expand description
漫画服务
提供漫画及关联数据(收藏、术语表、常驻)的完整业务逻辑。
Implementations§
Source§impl MangaService
impl MangaService
Sourcepub async fn page(
state: &AppState,
page: i32,
page_size: i32,
manga_tran_name: Option<String>,
manga_ori_name: Option<String>,
category: Option<i16>,
manga_status: Option<i16>,
_author_id: Option<i16>,
author_name: Option<String>,
magazine_name: Option<String>,
) -> ApiResult<PageBean<MangaListVo>>
pub async fn page( state: &AppState, page: i32, page_size: i32, manga_tran_name: Option<String>, manga_ori_name: Option<String>, category: Option<i16>, manga_status: Option<i16>, _author_id: Option<i16>, author_name: Option<String>, magazine_name: Option<String>, ) -> ApiResult<PageBean<MangaListVo>>
Sourcepub async fn get_manga_tran_name(
state: &AppState,
) -> ApiResult<Vec<MangaSimpleVo>>
pub async fn get_manga_tran_name( state: &AppState, ) -> ApiResult<Vec<MangaSimpleVo>>
查询全部译名
Sourcepub async fn get_manga_ori_name(
state: &AppState,
) -> ApiResult<Vec<MangaSimpleVo>>
pub async fn get_manga_ori_name( state: &AppState, ) -> ApiResult<Vec<MangaSimpleVo>>
查询全部原名
Sourcepub async fn add_new_manga(
state: &AppState,
req: MangaUpdateRequest,
image: Option<Bytes>,
member_id: i32,
) -> ApiResult<()>
pub async fn add_new_manga( state: &AppState, req: MangaUpdateRequest, image: Option<Bytes>, member_id: i32, ) -> ApiResult<()>
新增漫画
Sourcepub async fn get_manga_by_id(
state: &AppState,
id: i32,
) -> ApiResult<MangaDetailVo>
pub async fn get_manga_by_id( state: &AppState, id: i32, ) -> ApiResult<MangaDetailVo>
按 ID 查询漫画
Sourcepub async fn update_manga(
state: &AppState,
req: MangaUpdateRequest,
image: Option<Bytes>,
member_id: i32,
) -> ApiResult<()>
pub async fn update_manga( state: &AppState, req: MangaUpdateRequest, image: Option<Bytes>, member_id: i32, ) -> ApiResult<()>
更新漫画
Sourcepub async fn get_collect_detail(
state: &AppState,
collect: MangaCollect,
) -> ApiResult<MangaCollect>
pub async fn get_collect_detail( state: &AppState, collect: MangaCollect, ) -> ApiResult<MangaCollect>
查询收藏详情
Sourcepub async fn get_collect_list(
state: &AppState,
page: i32,
page_size: i32,
member_id: i32,
) -> ApiResult<PageBean<MangaListVo>>
pub async fn get_collect_list( state: &AppState, page: i32, page_size: i32, member_id: i32, ) -> ApiResult<PageBean<MangaListVo>>
分页查询组员收藏
Sourcepub async fn get_collected_members(
state: &AppState,
page: i32,
page_size: i32,
manga_id: i32,
) -> ApiResult<PageBean<CollectedMembersVo>>
pub async fn get_collected_members( state: &AppState, page: i32, page_size: i32, manga_id: i32, ) -> ApiResult<PageBean<CollectedMembersVo>>
分页查询收藏该漫画的组员
Sourcepub async fn del_collect(
state: &AppState,
collect: MangaCollect,
) -> ApiResult<()>
pub async fn del_collect( state: &AppState, collect: MangaCollect, ) -> ApiResult<()>
删除收藏
Sourcepub async fn add_collect(
state: &AppState,
collect: MangaCollect,
) -> ApiResult<()>
pub async fn add_collect( state: &AppState, collect: MangaCollect, ) -> ApiResult<()>
新增收藏
Sourcepub async fn page_glossary(
state: &AppState,
page: i32,
page_size: i32,
type: Option<i16>,
manga_id: i16,
) -> ApiResult<PageBean<GlossaryVo>>
pub async fn page_glossary( state: &AppState, page: i32, page_size: i32, type: Option<i16>, manga_id: i16, ) -> ApiResult<PageBean<GlossaryVo>>
分页查询术语
Sourcepub async fn add_glossary(
state: &AppState,
req: GlossaryRequest,
member_id: i32,
) -> ApiResult<()>
pub async fn add_glossary( state: &AppState, req: GlossaryRequest, member_id: i32, ) -> ApiResult<()>
新增术语
Sourcepub async fn get_glossary_by_id(
state: &AppState,
id: i32,
) -> ApiResult<GlossaryVo>
pub async fn get_glossary_by_id( state: &AppState, id: i32, ) -> ApiResult<GlossaryVo>
按 ID 查询术语
Sourcepub async fn update_glossary(
state: &AppState,
req: GlossaryRequest,
member_id: i32,
) -> ApiResult<()>
pub async fn update_glossary( state: &AppState, req: GlossaryRequest, member_id: i32, ) -> ApiResult<()>
更新术语
Sourcepub async fn get_manga_rss(state: &AppState) -> ApiResult<Vec<RssMangaRow>>
pub async fn get_manga_rss(state: &AppState) -> ApiResult<Vec<RssMangaRow>>
RSS 漫画列表
Sourcepub async fn get_episode_rss(state: &AppState) -> ApiResult<Vec<EpisodeRssRow>>
pub async fn get_episode_rss(state: &AppState) -> ApiResult<Vec<EpisodeRssRow>>
RSS 话数列表
Sourcepub async fn get_stationed_members(
state: &AppState,
page: i32,
page_size: i32,
manga_id: i32,
) -> ApiResult<PageBean<Member>>
pub async fn get_stationed_members( state: &AppState, page: i32, page_size: i32, manga_id: i32, ) -> ApiResult<PageBean<Member>>
分页查询常驻组员
Sourcepub async fn del_station(state: &AppState, station_id: i32) -> ApiResult<()>
pub async fn del_station(state: &AppState, station_id: i32) -> ApiResult<()>
删除常驻(先清空该组员未交稿单话岗位,再删记录)
Sourcepub async fn add_station(
state: &AppState,
body: StationMemberBody,
) -> ApiResult<()>
pub async fn add_station( state: &AppState, body: StationMemberBody, ) -> ApiResult<()>
申请常驻
Sourcepub async fn add_station_by_admin(
state: &AppState,
req: AddStationRequest,
) -> ApiResult<()>
pub async fn add_station_by_admin( state: &AppState, req: AddStationRequest, ) -> ApiResult<()>
管理员添加常驻(可选填充未交稿空位)
Sourcepub async fn update_station(
state: &AppState,
body: StationMemberBody,
) -> ApiResult<()>
pub async fn update_station( state: &AppState, body: StationMemberBody, ) -> ApiResult<()>
更新常驻状态
Auto Trait Implementations§
impl Freeze for MangaService
impl RefUnwindSafe for MangaService
impl Send for MangaService
impl Sync for MangaService
impl Unpin for MangaService
impl UnsafeUnpin for MangaService
impl UnwindSafe for MangaService
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request