附近小店
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

svc_store.go 3.5 KiB

10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
10ヶ月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package svc
  2. import (
  3. "applet/app/db"
  4. "applet/app/db/model"
  5. "applet/app/e"
  6. "applet/app/utils"
  7. "github.com/gin-gonic/gin"
  8. "time"
  9. )
  10. func BankStore(c *gin.Context) {
  11. var arg map[string]string
  12. if err := c.ShouldBindJSON(&arg); err != nil {
  13. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  14. return
  15. }
  16. arg["store_type"] = "0"
  17. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  18. var store = make([]map[string]string, 0)
  19. if arg["cid"] == "2" {
  20. store = db.GetStoreLike(MasterDb(c), arg)
  21. } else {
  22. store = db.GetStore(MasterDb(c), arg)
  23. }
  24. storeList := make([]map[string]interface{}, 0)
  25. for _, v := range store {
  26. km := v["km"]
  27. if utils.StrToFloat64(v["km"]) < 1 {
  28. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  29. } else {
  30. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  31. v["km"] += "km"
  32. }
  33. if utils.StrToFloat64(km) <= 0 {
  34. v["km"] = "-"
  35. }
  36. tmp := map[string]interface{}{
  37. "lat": v["lat"],
  38. "lng": v["lng"],
  39. "address": v["address"],
  40. "name": v["name"],
  41. "id": v["id"],
  42. "km": v["km"],
  43. "time_str": v["timer"],
  44. "uid": v["uid"],
  45. "phone": v["phone"],
  46. "logo": v["logo"],
  47. "is_like": "0",
  48. "fan": "",
  49. }
  50. if user != nil {
  51. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  52. if count > 0 {
  53. tmp["is_like"] = "1"
  54. }
  55. }
  56. storeList = append(storeList, tmp)
  57. }
  58. e.OutSuc(c, storeList, nil)
  59. return
  60. }
  61. func Store(c *gin.Context) {
  62. var arg map[string]string
  63. if err := c.ShouldBindJSON(&arg); err != nil {
  64. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  65. return
  66. }
  67. arg["store_type"] = "0"
  68. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  69. store := db.GetStore(MasterDb(c), arg)
  70. storeList := make([]map[string]interface{}, 0)
  71. for _, v := range store {
  72. if utils.StrToFloat64(v["km"]) < 1 {
  73. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  74. } else {
  75. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  76. v["km"] += "km"
  77. }
  78. label := make([]string, 0)
  79. tmp := map[string]interface{}{
  80. "lat": v["lat"],
  81. "lng": v["lng"],
  82. "address": v["address"],
  83. "work_state": v["work_state"],
  84. "name": v["name"],
  85. "id": v["id"],
  86. "uid": v["uid"],
  87. "km": v["km"],
  88. "time_str": v["timer"],
  89. "phone": v["phone"],
  90. "label": label,
  91. "is_like": "0",
  92. }
  93. if user != nil {
  94. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  95. if count > 0 {
  96. tmp["is_like"] = "1"
  97. }
  98. }
  99. storeList = append(storeList, tmp)
  100. }
  101. e.OutSuc(c, storeList, nil)
  102. return
  103. }
  104. func StoreAddLike(c *gin.Context) {
  105. var arg map[string]string
  106. if err := c.ShouldBindJSON(&arg); err != nil {
  107. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  108. return
  109. }
  110. user := GetUser(c)
  111. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, arg["id"]).Count(&model.CommunityTeamStoreLike{})
  112. if count > 0 {
  113. e.OutErr(c, 400, e.NewErr(400, "已收藏"))
  114. return
  115. }
  116. var data = model.CommunityTeamStoreLike{
  117. Uid: user.Info.Uid,
  118. StoreId: utils.StrToInt(arg["id"]),
  119. Time: time.Now(),
  120. }
  121. MasterDb(c).Insert(&data)
  122. e.OutSuc(c, "success", nil)
  123. return
  124. }
  125. func StoreCancelLike(c *gin.Context) {
  126. var arg map[string]string
  127. if err := c.ShouldBindJSON(&arg); err != nil {
  128. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  129. return
  130. }
  131. user := GetUser(c)
  132. MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, arg["id"]).Delete(&model.CommunityTeamStoreLike{})
  133. e.OutSuc(c, "success", nil)
  134. return
  135. }