2024-05-14 21:18:24 +08:00
|
|
|
package server
|
|
|
|
|
|
|
|
import (
|
2024-09-13 22:47:19 +08:00
|
|
|
"fmt"
|
2024-06-15 21:10:37 +08:00
|
|
|
"strconv"
|
2024-09-13 22:47:19 +08:00
|
|
|
|
|
|
|
"gitea.timerzz.com/kedaya_haitao/coach-spider/spider"
|
|
|
|
"gitea.timerzz.com/kedaya_haitao/common/pkg/web"
|
|
|
|
v2 "gitea.timerzz.com/kedaya_haitao/common/structs/v2"
|
|
|
|
"github.com/gofiber/fiber/v3"
|
2024-05-14 21:18:24 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
type SpiderSvc struct {
|
2024-09-13 22:47:19 +08:00
|
|
|
ctl *spider.Controller
|
|
|
|
providerId v2.ProviderId
|
2024-05-14 21:18:24 +08:00
|
|
|
}
|
|
|
|
|
2024-09-13 22:47:19 +08:00
|
|
|
func NewSpiderSvc(ctl *spider.Controller, providerId v2.ProviderId) *SpiderSvc {
|
2024-05-14 21:18:24 +08:00
|
|
|
return &SpiderSvc{
|
2024-09-13 22:47:19 +08:00
|
|
|
ctl: ctl,
|
|
|
|
providerId: providerId,
|
2024-05-14 21:18:24 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-09-13 22:47:19 +08:00
|
|
|
func (s *SpiderSvc) Registry(r fiber.Router) {
|
|
|
|
api := r.Group("/api/v2")
|
|
|
|
api.Post(fmt.Sprintf("provider/%s/pull", s.providerId), s.Pull)
|
|
|
|
api.Post(fmt.Sprintf("provider/%s/fetch/:id", s.providerId), s.FetchArticlePrice)
|
|
|
|
//r.Post("spider/us/coach-outlet/calculate", s.UpsertCalculate)
|
|
|
|
//r.Delete("spider/us/coach-outlet/calculate/u/:id", s.DelCalculate)
|
2024-05-14 21:18:24 +08:00
|
|
|
}
|
2024-06-15 21:10:37 +08:00
|
|
|
|
2024-09-13 22:47:19 +08:00
|
|
|
func (s *SpiderSvc) Pull(ctx fiber.Ctx) error {
|
|
|
|
// 接收到,就爬取数据
|
|
|
|
go s.ctl.Crawl()
|
|
|
|
return ctx.JSON(web.NewResponse("ok", "ok"))
|
2024-06-15 21:10:37 +08:00
|
|
|
}
|
|
|
|
|
2024-09-13 22:47:19 +08:00
|
|
|
func (s *SpiderSvc) FetchArticlePrice(ctx fiber.Ctx) error {
|
|
|
|
i := ctx.Params("id")
|
|
|
|
id, _ := strconv.Atoi(i)
|
|
|
|
if id == 0 {
|
|
|
|
return fmt.Errorf("id is empty")
|
2024-06-15 21:10:37 +08:00
|
|
|
}
|
2024-09-13 22:47:19 +08:00
|
|
|
if err := s.ctl.FetchArticlePrice(ctx.Context(), uint(id)); err != nil {
|
2024-06-15 21:10:37 +08:00
|
|
|
return err
|
|
|
|
}
|
2024-09-13 22:47:19 +08:00
|
|
|
return ctx.JSON(web.NewResponse("ok"))
|
2024-06-15 21:10:37 +08:00
|
|
|
}
|
|
|
|
|
2024-09-13 22:47:19 +08:00
|
|
|
//func (s *SpiderSvc) DelCalculate(ctx fiber.Ctx) error {
|
|
|
|
// idStr := ctx.Params("id")
|
|
|
|
// if idStr == "" {
|
|
|
|
// return fiber.ErrBadRequest
|
|
|
|
// }
|
|
|
|
// id, _ := strconv.Atoi(idStr)
|
|
|
|
// if err := s.ctl.DeleteCalculateProcess(uint(id)); err != nil {
|
|
|
|
// return err
|
|
|
|
// }
|
|
|
|
// return nil
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (s *SpiderSvc) UpsertCalculate(ctx fiber.Ctx) error {
|
|
|
|
// var cs []productv1.CalculateProcess
|
|
|
|
// if err := ctx.Bind().JSON(&cs); err != nil {
|
|
|
|
// return err
|
|
|
|
// }
|
|
|
|
// if err := s.ctl.SaveCalculateProcess(cs); err != nil {
|
|
|
|
// return err
|
|
|
|
// }
|
|
|
|
// return nil
|
|
|
|
//}
|