@@ -20,6 +20,9 @@ import (
2020 "context"
2121
2222 "github.com/cloudwego/hertz/pkg/app"
23+ "github.com/cloudwego/hertz/pkg/protocol/consts"
24+ "github.com/west2-online/fzuhelper-server/api/model/model"
25+ "github.com/west2-online/fzuhelper-server/pkg/logger"
2326
2427 api "github.com/west2-online/fzuhelper-server/api/model/api"
2528 "github.com/west2-online/fzuhelper-server/api/pack"
@@ -38,8 +41,7 @@ func CreateFeedback(ctx context.Context, c *app.RequestContext) {
3841 }
3942
4043 resp := new (api.CreateFeedbackResponse )
41- err := rpc .CreateFeedbackRPC (ctx , & oa.CreateFeedbackRequest {
42- ReportId : req .GetReportID (),
44+ reportID , err := rpc .CreateFeedbackRPC (ctx , & oa.CreateFeedbackRequest {
4345 StuId : req .GetStuID (),
4446 Name : req .GetName (),
4547 College : req .GetCollege (),
@@ -64,22 +66,84 @@ func CreateFeedback(ctx context.Context, c *app.RequestContext) {
6466 pack .RespError (c , err )
6567 return
6668 }
69+ resp .ReportID = reportID
6770 pack .RespData (c , resp )
6871}
6972
70- // GetFeedback .
71- // @router /api/v1/feedback/get [POST]
72- func GetFeedback (ctx context.Context , c * app.RequestContext ) {
73- var req api.GetFeedbackRequest
74- if err := c .BindAndValidate (& req ); err != nil {
75- pack .RespError (c , errno .ParamError .WithError (err ))
73+ // GetFeedbackByID .
74+ // @router /api/v1/feedbacks/detail [GET]
75+ func GetFeedbackByID (ctx context.Context , c * app.RequestContext ) {
76+ var err error
77+ var req api.GetFeedbackByIDRequest
78+ err = c .BindAndValidate (& req )
79+ if err != nil {
80+ c .String (consts .StatusBadRequest , err .Error ())
81+ return
82+ }
83+
84+ resp := new (api.FeedbackDetailResponse )
85+ data , err := rpc .GetFeedbackByIdRPC (ctx , & oa.GetFeedbackByIDRequest {ReportId : req .ReportID })
86+ if err != nil {
87+ pack .RespError (c , err )
88+ return
89+ }
90+ resp .Data = & model.Feedback {
91+ ReportID : data .ReportId ,
92+ StuID : data .StuId ,
93+ Name : data .Name ,
94+ College : data .College ,
95+ ContactPhone : data .ContactPhone ,
96+ ContactQq : data .ContactQq ,
97+ ContactEmail : data .ContactEmail ,
98+ NetworkEnv : data .NetworkEnv ,
99+ IsOnCampus : data .IsOnCampus ,
100+ OsName : data .OsName ,
101+ OsVersion : data .OsVersion ,
102+ Manufacturer : data .Manufacturer ,
103+ DeviceModel : data .DeviceModel ,
104+ ProblemDesc : data .ProblemDesc ,
105+ Screenshots : data .Screenshots ,
106+ AppVersion : data .AppVersion ,
107+ VersionHistory : data .VersionHistory ,
108+ NetworkTraces : data .NetworkTraces ,
109+ Events : data .Events ,
110+ UserSettings : data .UserSettings ,
111+ }
112+ pack .RespData (c , resp )
113+ }
114+
115+ // ListFeedback .
116+ // @router /api/v1/feedbacks/get/list [GET]
117+ func ListFeedback (ctx context.Context , c * app.RequestContext ) {
118+ var err error
119+ var req api.GetListFeedbackRequest
120+ err = c .BindAndValidate (& req )
121+ if err != nil {
122+ c .String (consts .StatusBadRequest , err .Error ())
76123 return
77124 }
78125
79- resp , err := rpc .GetFeedbackRPC (ctx , & oa.GetFeedbackRequest {ReportId : req .ReportID })
126+ resp := new (api.GetListFeedbackResponse )
127+ data , pageToken , err := rpc .GetFeedbackListRPC (ctx , & oa.GetListFeedbackRequest {
128+ StuId : req .StuID ,
129+ Name : req .Name ,
130+ NetworkEnv : req .NetworkEnv ,
131+ IsOnCampus : req .IsOnCampus ,
132+ OsName : req .OsName ,
133+ ProblemDesc : req .ProblemDesc ,
134+ AppVersion : req .AppVersion ,
135+ BeginTimeMs : req .BeginTimeMs ,
136+ EndTimeMs : req .EndTimeMs ,
137+ Limit : req .Limit ,
138+ PageToken : req .PageToken ,
139+ OrderDesc : req .OrderDesc ,
140+ })
80141 if err != nil {
81142 pack .RespError (c , err )
82143 return
83144 }
145+ resp .Data = pack .BuildFeedbackList (data )
146+ resp .PageToken = pageToken
147+ logger .Infof ("handler: %s" , resp .Data [0 ].ProblemDesc )
84148 pack .RespData (c , resp )
85149}
0 commit comments