TestRouter.go 7.1 KB

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