TestRouter.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. package router
  2. import (
  3. "demo/configs"
  4. "demo/data/dao"
  5. "demo/data/dao/manage"
  6. "demo/data/domain"
  7. "demo/share"
  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. {
  18. PushRouter(user, "POST", "/order/pay", OrderSubmit)
  19. PushRouter(user, "POST", "/test", DataTest)
  20. PushRouter(user, "GET", "/home", Home)
  21. PushRouter(user, "GET", "/topic", Topic)
  22. PushRouter(user, "GET", "/detail", Detail)
  23. }
  24. }
  25. func OrderSubmit(c *gin.Context) {
  26. id := GetUserIdByToken(c)
  27. if id == 0 {
  28. return
  29. }
  30. data := share.GetJsonAnyParam(c)
  31. orderId, _ := data("orderId")
  32. err := dao.OrderPaySuccess(cast.ToInt64(orderId), id)
  33. if err != nil {
  34. c.JSON(200, CreateResultError(401, err.Error()))
  35. return
  36. }
  37. c.JSON(200, CreateResult())
  38. }
  39. func DataTest(c *gin.Context) {
  40. body := make(map[string]interface{})
  41. c.ShouldBindJSON(&body)
  42. fmt.Println("router:", body)
  43. fmt.Println("router:", c.Request.Body)
  44. c.JSON(200, CreateResultData("test"))
  45. }
  46. func Home(c *gin.Context) {
  47. m := make(map[string]interface{})
  48. //获取登录信息
  49. id := GetUserId(c)
  50. if id != 0 {
  51. var userInfo = domain.User{}
  52. _, err := configs.Engine.Table("user").Where("id = ?", id).Get(&userInfo)
  53. if err != nil {
  54. c.JSON(200, CreateResultError(401, "用户信息查询失败"))
  55. return
  56. }
  57. userInfoMap := map[string]interface{}{
  58. "userInfo": userInfo,
  59. }
  60. u, err := json.Marshal(userInfoMap)
  61. if err != nil {
  62. c.JSON(200, CreateResultError(401, "用户查询失败"))
  63. return
  64. }
  65. json.Unmarshal(u, &m)
  66. }
  67. //首页宣传信息
  68. data, err := dao.GetAdviceData()
  69. if err != nil {
  70. c.JSON(200, CreateResultError(401, "advice查询失败"))
  71. return
  72. }
  73. marshal, err := json.Marshal(data)
  74. if err != nil {
  75. fmt.Println(err)
  76. c.JSON(200, CreateResultError(401, err.Error()))
  77. return
  78. }
  79. json.Unmarshal(marshal, &m)
  80. //首页主题信息
  81. list, err := dao.GetTopicList()
  82. if err != nil {
  83. c.JSON(200, CreateResultError(401, "主题列表查询失败"))
  84. return
  85. }
  86. m2 := map[string]interface{}{
  87. "list": list,
  88. }
  89. //结构体转map
  90. d2m, err := json.Marshal(m2)
  91. if err != nil {
  92. fmt.Println(err)
  93. c.JSON(200, CreateResultError(401, err.Error()))
  94. return
  95. }
  96. json.Unmarshal(d2m, &m)
  97. fmt.Println("data:", m)
  98. c.HTML(http.StatusOK, "index.html", m)
  99. }
  100. func Topic(c *gin.Context) {
  101. topicId := c.Query("topicId")
  102. m := make(map[string]interface{})
  103. //获取登录信息
  104. id := GetUserId(c)
  105. if id != 0 {
  106. var userInfo = domain.User{}
  107. _, err := configs.Engine.Table("user").Where("id = ?", id).Get(&userInfo)
  108. if err != nil {
  109. c.JSON(200, CreateResultError(401, "用户信息查询失败"))
  110. return
  111. }
  112. userInfoMap := map[string]interface{}{
  113. "userInfo": userInfo,
  114. }
  115. u, err := json.Marshal(userInfoMap)
  116. if err != nil {
  117. c.JSON(200, CreateResultError(401, "用户查询失败"))
  118. return
  119. }
  120. json.Unmarshal(u, &m)
  121. }
  122. list, err := dao.GetTopicPageDataListById(cast.ToInt64(topicId))
  123. if err != nil {
  124. c.JSON(200, CreateResultError(401, "主题列表查询失败"))
  125. return
  126. }
  127. dm, err := json.Marshal(list)
  128. if err != nil {
  129. fmt.Println(err)
  130. c.JSON(200, CreateResultError(401, "json转换失败"))
  131. return
  132. }
  133. json.Unmarshal(dm, &m)
  134. fmt.Println("data:", m)
  135. c.HTML(http.StatusOK, "topic.html", m)
  136. }
  137. func Detail(c *gin.Context) {
  138. skuId := c.Query("skuId")
  139. m := make(map[string]interface{})
  140. //获取登录信息
  141. id := GetUserId(c)
  142. if id != 0 {
  143. var userInfo = domain.User{}
  144. _, err := configs.Engine.Table("user").Where("id = ?", id).Get(&userInfo)
  145. if err != nil {
  146. c.JSON(200, CreateResultError(401, "用户信息查询失败"))
  147. return
  148. }
  149. userInfoMap := map[string]interface{}{
  150. "userInfo": userInfo,
  151. }
  152. u, err := json.Marshal(userInfoMap)
  153. if err != nil {
  154. c.JSON(200, CreateResultError(401, "用户查询失败"))
  155. return
  156. }
  157. json.Unmarshal(u, &m)
  158. }
  159. //标签
  160. tagList, err := manage.GetGoodsTagList(domain.GoodsTag{}, 1, 10000)
  161. if err != nil {
  162. c.JSON(200, CreateResultError(401, "文章标签查询失败"))
  163. return
  164. }
  165. tagMap := map[string]interface{}{
  166. "tags": tagList.List,
  167. }
  168. tagString, err := json.Marshal(tagMap)
  169. if err != nil {
  170. fmt.Println(err)
  171. c.JSON(200, CreateResultError(401, "json转换失败"))
  172. return
  173. }
  174. json.Unmarshal(tagString, &m)
  175. //文章内容
  176. vo, err := dao.SelectSkuInfoBySkuId(cast.ToInt64(skuId))
  177. if err != nil {
  178. c.JSON(200, CreateResultError(401, "文章查询失败"))
  179. return
  180. }
  181. dm, err := json.Marshal(vo)
  182. if err != nil {
  183. fmt.Println(err)
  184. c.JSON(200, CreateResultError(401, "json转换失败"))
  185. return
  186. }
  187. json.Unmarshal(dm, &m)
  188. fmt.Println("data:", m)
  189. c.HTML(http.StatusOK, "detail.html", m)
  190. }
  191. func GetUserId(c *gin.Context) int64 {
  192. header := c.GetHeader("auth-sign")
  193. if header == "" {
  194. return 0
  195. }
  196. claims, err := share.ParseToken(header)
  197. if err != nil {
  198. return 0
  199. }
  200. i, err := strconv.ParseInt(claims["iss"].(string), 10, 32)
  201. return i
  202. }