package videoactivityserver import ( "91porn-server/app/service/vidhelpser" "91porn-server/common/stderr" "91porn-server/models/v/videoactivitymod" "91porn-server/models/v/vidmod" "go.mongodb.org/mongo-driver/bson/primitive" ) func List(uid uint64, req *videoactivitymod.ListRequest) (interface{}, stderr.Code) { var ( out videoactivitymod.ListResponse videoActivity videoactivitymod.VideoActivity err error ) if req.ActivityID == "" { videoActivity, err = videoactivitymod.QueryDocumentByStatus(videoactivitymod.Enable) if err != nil { return out, stderr.ErrDbQueryError } req.ActivityID = videoActivity.ID.Hex() } else { activityId, err := primitive.ObjectIDFromHex(req.ActivityID) if err != nil { return nil, stderr.ErrParamError } videoActivity, err = videoactivitymod.QueryDocumentByID(activityId) if err != nil { return nil, stderr.ErrDbQueryError } } out.ActivityID = videoActivity.ID out.ActivityBackgroundImage = videoActivity.BackgroundImage out.ActivityDesc = videoActivity.Desc out.ActivityEndTime = videoActivity.EndTime filter, err := req.Filter() if err != nil { return nil, stderr.ErrParamError } list, err := vidmod.GetList(filter, req.Options()) if err != nil { return out, stderr.ErrDbQueryError } listLen := len(list) if listLen == 0 { out.WorkList = []*vidmod.VideoInfo{} return out, stderr.Success } if listLen > int(req.PageSize) { out.HasNext = true list = list[:len(list)-1] } out.WorkList = vidhelpser.EncodeVideoInfo(uid, list) return out, stderr.Success } func HistoryRecord(req *videoactivitymod.HistoryRecordRequest) (interface{}, stderr.Code) { var out videoactivitymod.HistoryRecordResponse list, err := videoactivitymod.QueryAllDocument(req.Filter(), req.Options()) if err != nil { return out, stderr.ErrDbQueryError } listLen := len(list) if listLen == 0 { out.ActivityList = []*videoactivitymod.VideoActivity{} return out, stderr.Success } if listLen > int(req.PageSize) { out.HasNext = true list = list[:len(list)-1] } out.ActivityList = list return out, stderr.Success }