ArkItemRouter.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package router
  2. import (
  3. "ARKItems/configs"
  4. "ARKItems/entity"
  5. "fmt"
  6. "github.com/gin-gonic/gin"
  7. )
  8. func ArkItemRouter(api *gin.RouterGroup) {
  9. api.GET("/arkItems", GetArkItems)
  10. api.GET("/arkDinos", GetArkDinos)
  11. api.POST("/arkItems", PostArkItemList)
  12. api.POST("/arkDinos", PostArkDinoList)
  13. api.PUT("/arkItem", UpdateArkItem)
  14. api.PUT("/arkDino", UpdateArkDino)
  15. }
  16. func GetArkItems(c *gin.Context) {
  17. var items []entity.ArkItemInfo
  18. count, err := configs.Engine.Table("ark_item_info").FindAndCount(&items)
  19. if err != nil {
  20. c.JSON(200, CreateResultError(500, err.Error()))
  21. return
  22. }
  23. c.JSON(200, gin.H{
  24. "code": 200,
  25. "message": "success",
  26. "data": gin.H{
  27. "list": items,
  28. "total": count,
  29. },
  30. })
  31. }
  32. func GetArkDinos(c *gin.Context) {
  33. var items []entity.ArkDinoInfo
  34. count, err := configs.Engine.Table("ark_dino_info").FindAndCount(&items)
  35. if err != nil {
  36. c.JSON(200, CreateResultError(500, err.Error()))
  37. return
  38. }
  39. c.JSON(200, gin.H{
  40. "code": 200,
  41. "message": "success",
  42. "data": gin.H{
  43. "list": items,
  44. "total": count,
  45. },
  46. })
  47. }
  48. type ReqArkItem struct {
  49. PageNum int `json:"pageNum"`
  50. PageSize int `json:"pageSize"`
  51. Name string `json:"name"`
  52. Category string `json:"category"`
  53. Label string `json:"label"`
  54. AllLike string `json:"allLike"`
  55. }
  56. func PostArkItemList(c *gin.Context) {
  57. var item ReqArkItem
  58. err := c.BindJSON(&item)
  59. if err != nil {
  60. c.JSON(200, CreateResultError(500, err.Error()))
  61. return
  62. }
  63. var items []entity.ArkItemInfo
  64. session := configs.Engine.Table("ark_item_info")
  65. if item.Name != "" {
  66. session.Where("name like ?", "%"+item.Name+"%")
  67. }
  68. if item.Category != "" {
  69. session.Where("category like ?", "%"+item.Category+"%")
  70. }
  71. if item.Label != "" {
  72. session.Where("label like ?", "%"+item.Label+"%")
  73. }
  74. if item.AllLike != "" {
  75. session.Where("name like ? or category like ? or label like ?", "%"+item.AllLike+"%", "%"+item.AllLike+"%", "%"+item.AllLike+"%")
  76. }
  77. count, err := session.Limit(item.PageSize, (item.PageNum-1)*item.PageSize).FindAndCount(&items)
  78. if err != nil {
  79. c.JSON(200, CreateResultError(500, err.Error()))
  80. return
  81. }
  82. c.JSON(200, gin.H{
  83. "code": 200,
  84. "message": "success",
  85. "data": gin.H{
  86. "list": items,
  87. "total": count,
  88. "pageNum": item.PageNum,
  89. "pageSize": item.PageSize,
  90. },
  91. })
  92. }
  93. func PostArkDinoList(c *gin.Context) {
  94. var item ReqArkItem
  95. err := c.BindJSON(&item)
  96. if err != nil {
  97. c.JSON(200, CreateResultError(500, err.Error()))
  98. return
  99. }
  100. var items []entity.ArkDinoInfo
  101. session := configs.Engine.Table("ark_dino_info")
  102. if item.Name != "" {
  103. session.Where("name like ?", "%"+item.Name+"%")
  104. }
  105. if item.Category != "" {
  106. session.Where("category like ?", "%"+item.Category+"%")
  107. }
  108. if item.Label != "" {
  109. session.Where("label like ?", "%"+item.Label+"%")
  110. }
  111. if item.AllLike != "" {
  112. session.Where("name like ? or category like ? or label like ?", "%"+item.AllLike+"%", "%"+item.AllLike+"%", "%"+item.AllLike+"%")
  113. }
  114. count, err := session.Limit(item.PageSize, (item.PageNum-1)*item.PageSize).FindAndCount(&items)
  115. if err != nil {
  116. c.JSON(200, CreateResultError(500, err.Error()))
  117. return
  118. }
  119. c.JSON(200, gin.H{
  120. "code": 200,
  121. "message": "success",
  122. "data": gin.H{
  123. "list": items,
  124. "total": count,
  125. "pageNum": item.PageNum,
  126. "pageSize": item.PageSize,
  127. },
  128. })
  129. }
  130. func UpdateArkItem(c *gin.Context) {
  131. info := entity.ArkItemInfo{}
  132. err := c.BindJSON(&info)
  133. if err != nil {
  134. fmt.Println(err)
  135. c.JSON(200, CreateResultError(500, err.Error()))
  136. }
  137. if info.Id == "" {
  138. _, err = configs.Engine.Insert(&info)
  139. } else {
  140. _, err = configs.Engine.Where("id = ?", info.Id).Update(&info)
  141. }
  142. }
  143. func UpdateArkDino(c *gin.Context) {
  144. info := entity.ArkDinoInfo{}
  145. err := c.BindJSON(&info)
  146. if err != nil {
  147. fmt.Println(err)
  148. c.JSON(200, CreateResultError(500, err.Error()))
  149. }
  150. if info.Id == "" {
  151. _, err = configs.Engine.Insert(&info)
  152. } else {
  153. _, err = configs.Engine.Where("id = ?", info.Id).Update(&info)
  154. }
  155. }