54 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
package services
 | 
						|
 | 
						|
import (
 | 
						|
	"ai_scheduler/internal/biz"
 | 
						|
	"ai_scheduler/internal/entitys"
 | 
						|
	"github.com/gofiber/fiber/v2"
 | 
						|
)
 | 
						|
 | 
						|
type SessionService struct {
 | 
						|
	sessionBiz *biz.SessionBiz
 | 
						|
	chatBiz    *biz.ChatHistoryBiz
 | 
						|
}
 | 
						|
 | 
						|
func NewSessionService(sessionBiz *biz.SessionBiz, chatBiz *biz.ChatHistoryBiz) *SessionService {
 | 
						|
	return &SessionService{
 | 
						|
		sessionBiz: sessionBiz,
 | 
						|
		chatBiz:    chatBiz,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// SessionInit 初始化会话
 | 
						|
func (s *SessionService) SessionInit(c *fiber.Ctx) error {
 | 
						|
	req := &entitys.SessionInitRequest{}
 | 
						|
	if err := c.BodyParser(req); err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
 | 
						|
	result, err := s.sessionBiz.SessionInit(c.Context(), req)
 | 
						|
 | 
						|
	if err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
 | 
						|
	return c.JSON(result)
 | 
						|
}
 | 
						|
 | 
						|
// SessionList 获取会话列表
 | 
						|
func (s *SessionService) SessionList(c *fiber.Ctx) error {
 | 
						|
	req := &entitys.SessionListRequest{}
 | 
						|
	if err := c.BodyParser(req); err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
 | 
						|
	sessionList, err := s.sessionBiz.SessionList(c.Context(), req)
 | 
						|
 | 
						|
	if err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
 | 
						|
	return c.JSON(fiber.Map{
 | 
						|
		"session_list": sessionList,
 | 
						|
	})
 | 
						|
}
 |