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.
		
		
		
		
		
			
		
			
				
					
					
						
							37 lines
						
					
					
						
							930 B
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							37 lines
						
					
					
						
							930 B
						
					
					
				| package logic | |
| 
 | |
| import ( | |
| 	"context" | |
| 	"github.com/gogf/gf/v2/errors/gerror" | |
| 	"github.com/gogf/gf/v2/frame/g" | |
| 	"practice_Go/api/v1/live_streams" | |
| 	"practice_Go/internal/dao" | |
| 	"practice_Go/internal/model/entity" | |
| 	live "practice_Go/internal/service" | |
| ) | |
| 
 | |
| type sLives struct{} | |
| 
 | |
| func init() { | |
| 	live.RegisterLives(NewLive()) | |
| } | |
| func NewLive() *sLives { | |
| 	return &sLives{} | |
| } | |
| 
 | |
| // 实现接口 ILive 的方法 | |
| func (s *sLives) GetLiveList(ctx context.Context, req *live_streams.GetLiveListReq) (res live_streams.GetLiveListRes, err error) { | |
| 	var list []*entity.LiveStreams | |
| 	err = dao.LiveStreams.Ctx(ctx). | |
| 		OrderAsc("start_time"). // 按开播时间升序 | |
| 		Limit(8).               // 取前8条 | |
| 		Scan(&list) | |
| 	if err != nil { | |
| 		g.Log().Errorf(ctx, "直播数据获取失败:%v", err) | |
| 		return res, gerror.Wrap(err, "直播数据服务异常") | |
| 	} | |
| 
 | |
| 	// 将 list 转换为 live_streams.GetLiveListRes 的结构 | |
| 	res.List = list | |
| 	return res, nil | |
| }
 |