visitor_controller.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package controller
  2. import (
  3. "net/http"
  4. "github.com/2930134478/AI-CS/backend/service"
  5. "github.com/gin-gonic/gin"
  6. )
  7. // VisitorController 负责处理访客相关的 HTTP 请求。
  8. type VisitorController struct {
  9. visitorService *service.VisitorService
  10. embeddingConfigService *service.EmbeddingConfigService
  11. }
  12. // NewVisitorController 创建 VisitorController 实例。
  13. func NewVisitorController(visitorService *service.VisitorService, embeddingConfigService *service.EmbeddingConfigService) *VisitorController {
  14. return &VisitorController{
  15. visitorService: visitorService,
  16. embeddingConfigService: embeddingConfigService,
  17. }
  18. }
  19. // GetOnlineAgents 获取在线客服列表(供访客查看)。
  20. // GET /visitor/online-agents
  21. func (v *VisitorController) GetOnlineAgents(c *gin.Context) {
  22. agents, err := v.visitorService.GetOnlineAgents()
  23. if err != nil {
  24. c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
  25. return
  26. }
  27. c.JSON(http.StatusOK, gin.H{
  28. "agents": agents,
  29. })
  30. }
  31. // GetWidgetConfig 获取访客小窗配置(联网设置等,无需登录)。
  32. // GET /visitor/widget-config
  33. func (v *VisitorController) GetWidgetConfig(c *gin.Context) {
  34. cfg, err := v.embeddingConfigService.GetVisitorWebSearchConfig()
  35. if err != nil {
  36. c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
  37. return
  38. }
  39. c.JSON(http.StatusOK, cfg)
  40. }