You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
610 B
20 lines
610 B
package live
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"practice_Go/api/live/v1"
|
|
"practice_Go/internal/dao"
|
|
"practice_Go/internal/model/entity"
|
|
)
|
|
|
|
func (c *ControllerV1) GetLive(ctx context.Context, req *v1.GetLiveReq) (res *v1.GetLiveRes, err error) {
|
|
res = &v1.GetLiveRes{}
|
|
now := time.Now()
|
|
err = dao.GoLives.Ctx(ctx).With(entity.GoUsers{}).Where("start_time >=? or status = 1", now).Order("status desc, start_time asc").Scan(&res.List)
|
|
for i, live := range res.List {
|
|
res.List[i].Reservation, err = dao.GoLiveReservations.Ctx(ctx).Wheref("live_id =? and user_id =?", live.Id, req.UserId).Count()
|
|
}
|
|
return
|
|
}
|