hybg.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package controller
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/v2/frame/g"
  5. "github.com/gogf/gf/v2/net/ghttp"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. "jyseo/internal/service"
  8. "regexp"
  9. )
  10. func HybgIndexHandler(r *ghttp.Request) {
  11. service.HtmlRender.Render(r, "hybg_index.html",
  12. g.Map{
  13. "module": "hybg",
  14. "showData": g.Cfg().MustGet(r.Context(), "analysisReport.index").Map(),
  15. "tdk": service.JySeoTdk.GetHybgTdk(r.Context(), "Index", "", "", "", ""),
  16. },
  17. )
  18. }
  19. var codeReg = regexp.MustCompile(`([a-zA-Z]+)(\d+)`)
  20. // getCodes {areaCode}{hyCode} 例如 henan02
  21. func getCodes(matchCode string) (areaCode, hyCode string) {
  22. matches := codeReg.FindStringSubmatch(matchCode)
  23. // 检查是否有匹配项
  24. if len(matches) >= 3 {
  25. return matches[1], matches[2]
  26. }
  27. return
  28. }
  29. func HybgListHandler(r *ghttp.Request) {
  30. areaCode, hyCode := getCodes(r.Get("matchCode").String())
  31. pageNum := r.Get("pageNum", 1).Int() //页码
  32. var areaNode *service.AreaNode
  33. areaName := ""
  34. if areaCode != "all" {
  35. if areaNode = service.JySeoAreaRoot.GetNodeByFCode(areaCode); areaNode == nil {
  36. service.HtmlRender.NotFound(r)
  37. return
  38. }
  39. areaName = areaNode.Name
  40. }
  41. hyNode := service.JySeoHYBGRoot.GetHyNodeByCode(hyCode)
  42. if hyNode == nil {
  43. service.HtmlRender.NotFound(r)
  44. return
  45. }
  46. query := service.NewBiddingQuery().EquipArea(areaNode).EquipIndustry(hyNode.Name, "")
  47. rData, err := query.GetDataPageList(r.Context(), pageNum, 10, 99999, "HybgListHandler", service.JySeoHYBGRoot.GetData, service.JySeoHYBGRoot.FormatData)
  48. if err != nil {
  49. g.Log().Errorf(r.Context(), err.Error())
  50. service.HtmlRender.RenderError(r, fmt.Errorf("获取列表数据异常"))
  51. return
  52. }
  53. service.HtmlRender.Render(r, "hybg_list.html",
  54. g.Map{
  55. "module": "hybg",
  56. "hyNode": hyNode,
  57. "areaNode": areaNode,
  58. "list": rData.List,
  59. "tdk": service.JySeoTdk.GetHybgTdk(r.Context(), "List", areaName, hyNode.Name, "", ""),
  60. "pagination": service.GetLetterPaging(pageNum, gconv.Int(rData.Total), fmt.Sprintf("/hybg/%s%s_%s", areaCode, hyNode.Code, "%d")),
  61. },
  62. )
  63. }
  64. func HybgDetailHandler(r *ghttp.Request) {
  65. detailId := r.Get("detailId").String()
  66. res := service.JySeoHYBGRoot.GetDetail(r.Context(), detailId)
  67. hyNode := service.JySeoHYBGRoot.GetHyNodeByName(res.Industry)
  68. var tdk *service.TDK
  69. if res.Keyword == "" {
  70. tdk = service.JySeoTdk.GetHybgTdk(r.Context(), "Detail_MonthWeek", res.Area, res.Industry, res.Title, res.Keyword)
  71. } else {
  72. tdk = service.JySeoTdk.GetHybgTdk(r.Context(), "Detail_Keywords", res.Area, res.Industry, res.Title, res.Keyword)
  73. }
  74. service.HtmlRender.Render(r, "hybg_detail.html",
  75. g.Map{
  76. "module": "hybg",
  77. "detail": res,
  78. "hyNode": hyNode,
  79. "tdk": tdk,
  80. },
  81. )
  82. }