pets.list.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package petsLy
  2. import (
  3. "duoduo/models/mysqlLy"
  4. "duoduo/models/petsLy"
  5. "duoduo/tools"
  6. "duoduo/tools/app"
  7. "github.com/gin-gonic/gin"
  8. "strconv"
  9. "time"
  10. )
  11. func PetsList(c *gin.Context) {
  12. var inData petsLy.PetsListRequest
  13. var pets mysqlLy.Pets
  14. var outData petsLy.PetsListResponse
  15. var pageSize = 10
  16. var pageIndex = 1
  17. err := c.ShouldBindJSON(&inData)
  18. if err != nil {
  19. app.Error(c, 400, err, err.Error())
  20. return
  21. }
  22. if inData.PageSize != 0 {
  23. pageSize = inData.PageSize
  24. }
  25. if inData.PageIndex != 0 {
  26. pageIndex = inData.PageIndex
  27. }
  28. pets.OpenId = inData.OpenId
  29. petsList, petsCount, err := pets.GetPetsList(pageSize, pageIndex)
  30. if err != nil {
  31. app.Error(c, 500, err, "")
  32. return
  33. }
  34. for i := 0; i < len(petsList); i++ {
  35. var pet petsLy.Pets
  36. pet.Pets = petsList[i]
  37. err := tools.JsonUnmarshal(petsList[i].Pictures, &pet.Pictures)
  38. if err != nil {
  39. app.Error(c, 500, err, "")
  40. return
  41. }
  42. timeDiff := time.Now().Unix() - petsList[i].CreateTime.Unix()
  43. if timeDiff > 0 && timeDiff < 60 { //秒前
  44. pet.TimeDiff = strconv.FormatInt(timeDiff, 10)
  45. pet.TimeDiff = pet.TimeDiff + "秒前"
  46. } else if timeDiff >= 60 && timeDiff < 60*60 { //分钟前
  47. number := timeDiff / 60
  48. pet.TimeDiff = strconv.FormatInt(number, 10)
  49. pet.TimeDiff = pet.TimeDiff + "分钟前"
  50. } else if timeDiff >= 60*60 && timeDiff < 60*60*24 { //小时前
  51. number := timeDiff / (60 * 60)
  52. pet.TimeDiff = strconv.FormatInt(number, 10)
  53. pet.TimeDiff = pet.TimeDiff + "小时前"
  54. } else if timeDiff >= 60*60*24 && timeDiff < 60*60*24*30 { //天前
  55. number := timeDiff / (60 * 60 * 24)
  56. pet.TimeDiff = strconv.FormatInt(number, 10)
  57. pet.TimeDiff = pet.TimeDiff + "天前"
  58. } else if timeDiff >= 60*60*24*30 && timeDiff < 60*60*24*365 { //月前
  59. number := timeDiff / (60 * 60 * 24 * 30)
  60. pet.TimeDiff = strconv.FormatInt(number, 10)
  61. pet.TimeDiff = pet.TimeDiff + "月前"
  62. } else if timeDiff >= 60*60*24*365 { //年前
  63. number := timeDiff / (60 * 60 * 24 * 365)
  64. pet.TimeDiff = strconv.FormatInt(number, 10)
  65. pet.TimeDiff = pet.TimeDiff + "年前"
  66. }
  67. outData.Pets = append(outData.Pets, pet)
  68. }
  69. app.PageOK(c, outData, petsCount, pageIndex, pageSize, "成功")
  70. }