TestRouter.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package router
  2. import (
  3. "demo/data/dao"
  4. "demo/data/dao/manage"
  5. "demo/data/domain"
  6. "demo/share"
  7. "demo/util/templatefunc"
  8. "encoding/json"
  9. "fmt"
  10. "github.com/gin-gonic/gin"
  11. "github.com/spf13/cast"
  12. "net/http"
  13. "strconv"
  14. )
  15. func TestRouth(engine *gin.RouterGroup) {
  16. //user := engine.Group("/test")
  17. user := engine.Group("")
  18. {
  19. PushRouter(user, "POST", "/order/pay", OrderSubmit)
  20. PushRouter(user, "POST", "/test", DataTest)
  21. //PushRouter(user, "GET", "/home", Home)
  22. PushRouter(user, "GET", "/", Home)
  23. PushRouter(user, "GET", "/topic", Topic)
  24. PushRouter(user, "GET", "/detail", Detail)
  25. PushRouter(user, "GET", "/search", SearchPage)
  26. PushRouter(user, "GET", "/info/:infoName", InfoPage)
  27. PushRouter(user, "GET", "/category/:category", CategoryPage)
  28. PushRouter(user, "GET", "/category", CategoryPage)
  29. }
  30. }
  31. func OrderSubmit(c *gin.Context) {
  32. id := GetUserIdByToken(c)
  33. if id == 0 {
  34. return
  35. }
  36. data := share.GetJsonAnyParam(c)
  37. orderId, _ := data("orderId")
  38. err := dao.OrderPaySuccess(cast.ToInt64(orderId), id)
  39. if err != nil {
  40. c.JSON(200, CreateResultError(401, err.Error()))
  41. return
  42. }
  43. c.JSON(200, CreateResult())
  44. }
  45. func DataTest(c *gin.Context) {
  46. body := make(map[string]interface{})
  47. c.ShouldBindJSON(&body)
  48. fmt.Println("router:", body)
  49. fmt.Println("router:", c.Request.Body)
  50. c.JSON(200, CreateResultData("test"))
  51. }
  52. func Home(c *gin.Context) {
  53. m := make(map[string]interface{})
  54. //首页宣传信息
  55. data, err := dao.GetAdviceData()
  56. if err != nil {
  57. c.JSON(200, CreateResultError(401, "advice查询失败"))
  58. return
  59. }
  60. marshal, err := json.Marshal(data)
  61. if err != nil {
  62. fmt.Println(err)
  63. c.JSON(200, CreateResultError(401, err.Error()))
  64. return
  65. }
  66. json.Unmarshal(marshal, &m)
  67. //首页主题信息
  68. list, err := dao.GetTopicList()
  69. if err != nil {
  70. c.JSON(200, CreateResultError(401, "主题列表查询失败"))
  71. return
  72. }
  73. m2 := map[string]interface{}{
  74. "list": list,
  75. }
  76. //结构体转map
  77. d2m, err := json.Marshal(m2)
  78. if err != nil {
  79. fmt.Println(err)
  80. c.JSON(200, CreateResultError(401, err.Error()))
  81. return
  82. }
  83. m["footerType"] = "home"
  84. json.Unmarshal(d2m, &m)
  85. c.HTML(http.StatusOK, "index.html", m)
  86. }
  87. func Topic(c *gin.Context) {
  88. topicId := c.Query("topicId")
  89. m := make(map[string]interface{})
  90. list, err := dao.GetTopicPageDataListById(cast.ToInt64(topicId))
  91. if err != nil {
  92. c.JSON(200, CreateResultError(401, "主题列表查询失败"))
  93. return
  94. }
  95. dm, err := json.Marshal(list)
  96. if err != nil {
  97. fmt.Println(err)
  98. c.JSON(200, CreateResultError(401, "json转换失败"))
  99. return
  100. }
  101. json.Unmarshal(dm, &m)
  102. fmt.Println("data:", m)
  103. c.HTML(http.StatusOK, "topic.html", m)
  104. }
  105. func Detail(c *gin.Context) {
  106. skuId := c.Query("skuId")
  107. m := make(map[string]interface{})
  108. //规格查询
  109. vo, err := dao.SelectSkuInfoBySkuId(cast.ToInt64(skuId))
  110. if err != nil {
  111. c.JSON(200, CreateResultError(401, "规格查询失败"))
  112. return
  113. }
  114. dm, err := json.Marshal(vo)
  115. if err != nil {
  116. fmt.Println(err)
  117. c.JSON(200, CreateResultError(401, "json转换失败"))
  118. return
  119. }
  120. json.Unmarshal(dm, &m)
  121. //标签
  122. tagList, err := dao.GetGoodsTagList(domain.GoodsTag{}, vo.Goods.TagIds)
  123. if err != nil {
  124. c.JSON(200, CreateResultError(401, "文章标签查询失败"))
  125. return
  126. }
  127. tagMap := map[string]interface{}{
  128. "tags": tagList.List,
  129. }
  130. tagString, err := json.Marshal(tagMap)
  131. if err != nil {
  132. fmt.Println(err)
  133. c.JSON(200, CreateResultError(401, "json转换失败"))
  134. return
  135. }
  136. json.Unmarshal(tagString, &m)
  137. fmt.Println("data:", m)
  138. c.HTML(http.StatusOK, "detail.html", m)
  139. }
  140. func InfoPage(c *gin.Context) {
  141. infoName := c.Param("infoName")
  142. content := templatefunc.InfoPageContentMap[infoName]
  143. m := make(map[string]interface{})
  144. if content.InfoName != "" {
  145. dm, err := json.Marshal(content)
  146. if err != nil {
  147. fmt.Println(err)
  148. c.JSON(200, CreateResultError(401, "json转换失败"))
  149. return
  150. }
  151. json.Unmarshal(dm, &m)
  152. c.HTML(http.StatusOK, "info.html", m)
  153. return
  154. }
  155. c.JSON(200, CreateResultError(401, "页面不存在"))
  156. }
  157. func SearchPage(c *gin.Context) {
  158. key := c.Query("key")
  159. pageNum := c.Query("pageNum")
  160. pageSize := c.Query("pageSize")
  161. m := make(map[string]interface{})
  162. arr, count, err := dao.GetSkuByKey2(key, cast.ToInt(pageNum), cast.ToInt(pageSize))
  163. if err != nil {
  164. c.JSON(200, CreateResultError(401, "未查询到结果"))
  165. return
  166. }
  167. arrM := map[string]interface{}{
  168. "list": arr,
  169. }
  170. list, err := json.Marshal(arrM)
  171. json.Unmarshal(list, &m)
  172. m["count"] = count
  173. m["key"] = key
  174. c.HTML(http.StatusOK, "search.html", m)
  175. }
  176. func GetUserId(c *gin.Context) int64 {
  177. header := c.GetHeader("auth-sign")
  178. if header == "" {
  179. return 0
  180. }
  181. claims, err := share.ParseToken(header)
  182. if err != nil {
  183. return 0
  184. }
  185. i, err := strconv.ParseInt(claims["iss"].(string), 10, 32)
  186. return i
  187. }
  188. func CategoryPage(c *gin.Context) {
  189. data := share.GetJsonAnyParam(c)
  190. categoryPath := c.Param("category")
  191. category, _ := data("category")
  192. if categoryPath != "" {
  193. category = categoryPath
  194. }
  195. pageNum, _ := data("pageNum")
  196. pageSize, _ := data("pageSize")
  197. m := make(map[string]interface{})
  198. m["category"] = category
  199. m["pageNum"] = pageNum
  200. m["pageSize"] = pageSize
  201. m["pageSize"] = pageSize
  202. list, err := manage.GetGoodsTypeList(domain.GoodsType{}, 1, 99999)
  203. if err != nil {
  204. c.JSON(200, CreateResultError(401, "未查询到结果"))
  205. return
  206. }
  207. m["footerType"] = "category"
  208. m["menus"] = list.List
  209. d, err := json.Marshal(m)
  210. var dm = make(map[string]interface{})
  211. json.Unmarshal(d, &dm)
  212. c.HTML(http.StatusOK, "category.html", dm)
  213. }