33from sqlmodel import select
44
55from common .core .deps import SessionDep , CurrentUser , Trans
6- from ..models .datasource import DsRecommendedProblem , RecommendedProblemBase , RecommendedProblemBaseChat
6+ from ..models .datasource import DsRecommendedProblem , RecommendedProblemBase , CoreDatasource , RecommendedProblemResponse
7+ import orjson
78
89
910def get_datasource_recommended (session : SessionDep , ds_id : int ):
@@ -16,6 +17,18 @@ def get_datasource_recommended_chart(session: SessionDep, ds_id: int):
1617 dsRecommendedProblems = session .exec (statement ).all ()
1718 return dsRecommendedProblems
1819
20+
21+ def get_datasource_recommended_base (session : SessionDep , ds_id : int ):
22+ statement = select (CoreDatasource .id ,CoreDatasource .recommended_config ).where (CoreDatasource .id == ds_id )
23+ datasourceBase = session .exec (statement ).first ()
24+ if datasourceBase is None :
25+ return RecommendedProblemResponse (ds_id ,0 ,None )
26+ elif datasourceBase .recommended_config == 1 :
27+ return RecommendedProblemResponse (ds_id ,1 ,None )
28+ else :
29+ dsRecommendedProblems = session .exec (select (DsRecommendedProblem .question ).where (DsRecommendedProblem .datasource_id == ds_id )).all ()
30+ return RecommendedProblemResponse (ds_id ,datasourceBase .recommended_config , orjson .dumps (dsRecommendedProblems ).decode ())
31+
1932def save_recommended_problem (session : SessionDep ,user : CurrentUser , data_info : RecommendedProblemBase ):
2033 session .query (DsRecommendedProblem ).filter (DsRecommendedProblem .datasource_id == data_info .datasource_id ).delete (synchronize_session = False )
2134 problemInfo = data_info .problemInfo
0 commit comments