ArkItemRouter.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package router
  2. import (
  3. "ARKItems/configs"
  4. "ARKItems/entity"
  5. "github.com/gin-gonic/gin"
  6. )
  7. func ArkItemRouter(api *gin.RouterGroup) {
  8. api.GET("/arkItems", GetArkItems)
  9. api.POST("/arkItems", PostArkItemList)
  10. }
  11. func GetArkItems(c *gin.Context) {
  12. var items []entity.ArkItemInfo
  13. count, err := configs.Engine.Table("ark_item_info").FindAndCount(&items)
  14. if err != nil {
  15. c.JSON(200, CreateResultError(500, err.Error()))
  16. return
  17. }
  18. c.JSON(200, gin.H{
  19. "code": 200,
  20. "message": "success",
  21. "data": gin.H{
  22. "list": items,
  23. "total": count,
  24. },
  25. })
  26. }
  27. type ReqArkItem struct {
  28. PageNum int `json:"pageNum"`
  29. PageSize int `json:"pageSize"`
  30. Name string `json:"name"`
  31. Category string `json:"category"`
  32. Label string `json:"label"`
  33. AllLike string `json:"allLike"`
  34. }
  35. func PostArkItemList(c *gin.Context) {
  36. var item ReqArkItem
  37. err := c.BindJSON(&item)
  38. if err != nil {
  39. c.JSON(200, CreateResultError(500, err.Error()))
  40. return
  41. }
  42. var items []entity.ArkItemInfo
  43. session := configs.Engine.Table("ark_item_info")
  44. if item.Name != "" {
  45. session.Where("name like ?", "%"+item.Name+"%")
  46. }
  47. if item.Category != "" {
  48. session.Where("category like ?", "%"+item.Category+"%")
  49. }
  50. if item.Label != "" {
  51. session.Where("label like ?", "%"+item.Label+"%")
  52. }
  53. if item.AllLike != "" {
  54. session.Where("name like ? or category like ? or label like ?", "%"+item.AllLike+"%", "%"+item.AllLike+"%", "%"+item.AllLike+"%")
  55. }
  56. count, err := configs.Engine.Table("ark_item_info").
  57. Limit(item.PageSize, (item.PageNum-1)*item.PageSize).
  58. FindAndCount(&items)
  59. if err != nil {
  60. c.JSON(200, CreateResultError(500, err.Error()))
  61. return
  62. }
  63. c.JSON(200, gin.H{
  64. "code": 200,
  65. "message": "success",
  66. "data": gin.H{
  67. "list": items,
  68. "total": count,
  69. "pageNum": item.PageNum,
  70. "pageSize": item.PageSize,
  71. },
  72. })
  73. }