area.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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/consts"
  8. "jyseo/internal/service"
  9. "strings"
  10. )
  11. // AreaIndexHandler 地区站首页
  12. func AreaIndexHandler(r *ghttp.Request) {
  13. areaCode := r.Get("areaCode").String()
  14. var areaType string
  15. if requestPathArr := strings.Split(r.RequestURI, "/"); len(requestPathArr) > 3 {
  16. areaType = requestPathArr[2]
  17. }
  18. node := service.JySeoAreaRoot.GetNodeByCode(areaCode)
  19. if node == nil || !(areaType == "area" || areaType == "city") {
  20. service.HtmlRender.NotFound(r)
  21. return
  22. }
  23. var winnerList, buyerList []map[string]interface{}
  24. if node.Type == 1 || node.Type == 3 {
  25. winnerList = service.JySeoEnterprises.GetEntList(r.Context(), node.Name, "", "", true)
  26. buyerList = service.JySeoEnterprises.GetEntList(r.Context(), node.Name, "", "", false)
  27. } else if node.Type == 2 {
  28. winnerList = service.JySeoEnterprises.GetEntList(r.Context(), "", node.Name, "", true)
  29. buyerList = service.JySeoEnterprises.GetEntList(r.Context(), "", node.Name, "", false)
  30. } else if node.Type == 4 {
  31. winnerList = service.JySeoEnterprises.GetEntList(r.Context(), "", node.PNode.Name, node.Name, true)
  32. buyerList = service.JySeoEnterprises.GetEntList(r.Context(), "", node.PNode.Name, node.Name, false)
  33. }
  34. if node.Type != 4 { //省份城市
  35. service.HtmlRender.Render(r, "area_index.html",
  36. g.Map{
  37. "areaType": areaType,
  38. "areaNode": node,
  39. "winnerList": winnerList,
  40. "buyerList": buyerList,
  41. "tdk": service.JySeoTdk.GetAreaIndexTdk(r.Context(), node.Name),
  42. })
  43. } else { //区县
  44. // 查询数据
  45. query := service.NewBiddingQuery().EquipArea(node)
  46. rData, err := query.GetOnceData(r.Context(), 100, "AreaPageHandler_District", service.JySeoAreaRoot.GetData)
  47. if err != nil {
  48. g.Log().Errorf(r.Context(), err.Error())
  49. service.HtmlRender.RenderError(r, fmt.Errorf("获取列表数据异常"))
  50. return
  51. }
  52. service.HtmlRender.Render(r, "area_district.html",
  53. g.Map{
  54. "list": rData,
  55. "areaType": areaType,
  56. "areaNode": node,
  57. "winnerList": winnerList,
  58. "buyerList": buyerList,
  59. "tdk": service.JySeoTdk.GetAreaDistrictIndexTdk(r.Context(), node),
  60. })
  61. }
  62. }
  63. // AreaPageHandler 地区列表页面
  64. func AreaPageHandler(r *ghttp.Request) {
  65. areaCode := r.Get("areaCode").String() //地区code
  66. areaType := r.Get("type").String() //省份、地区
  67. sId := r.Get("sId").String() //信息类型id
  68. pageNum := r.Get("pageNum", 1).Int() //页码
  69. areaNode := service.JySeoAreaRoot.GetNodeByCode(areaCode)
  70. sTypeNode := service.JySeoSTypeRoot.GetNodeById(sId)
  71. if areaNode == nil || sTypeNode == nil || !(areaType == "area" || areaType == "city") {
  72. service.HtmlRender.NotFound(r)
  73. return
  74. }
  75. var rData *service.ListResp
  76. var err error
  77. if sTypeNode.SIGN > 0 { //打标记信息
  78. query := service.NewBiddingQuery().EquipArea(areaNode).EquipSIGN(sTypeNode.SIGN)
  79. rData, err = query.GetDataPageList(r.Context(), pageNum, 0, consts.BiddingListMaxTotal, "AreaPageHandlerSIGN", service.JySeoSIGNRoot.GetData)
  80. if err != nil {
  81. g.Log().Errorf(r.Context(), err.Error())
  82. service.HtmlRender.RenderError(r, fmt.Errorf("获取列表数据异常"))
  83. return
  84. }
  85. } else {
  86. // 查询数据
  87. query := service.NewBiddingQuery().EquipArea(areaNode).EquipSType(sTypeNode)
  88. rData, err = query.GetDataPageList(r.Context(), pageNum, 0, consts.BiddingListMaxTotal, "AreaPageHandler", service.JySeoAreaRoot.GetData)
  89. if err != nil {
  90. g.Log().Errorf(r.Context(), err.Error())
  91. service.HtmlRender.RenderError(r, fmt.Errorf("获取列表数据异常"))
  92. return
  93. }
  94. }
  95. service.HtmlRender.Render(r, "area_list.html",
  96. g.Map{
  97. "areaType": areaType,
  98. "areaNode": areaNode,
  99. "sTypeNode": sTypeNode,
  100. "list": rData.List,
  101. "tdk": service.JySeoTdk.GetAreaSTypeListTdk(r.Context(), sTypeNode.Code, areaNode.Name),
  102. "pagination": service.GetLetterPaging(pageNum, gconv.Int(rData.Total), fmt.Sprintf("/list/%s/%s_%s/p%s", areaType, areaCode, sId, "%d")),
  103. },
  104. )
  105. }