附近小店
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

244 lines
6.5 KiB

  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 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 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 NewStore(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"] = "3"
  68. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  69. var store = make([]map[string]string, 0)
  70. if arg["cid"] == "2" {
  71. store = db.GetStoreLike(MasterDb(c), arg)
  72. } else {
  73. store = db.GetStore(MasterDb(c), arg)
  74. }
  75. storeList := make([]map[string]interface{}, 0)
  76. for _, v := range store {
  77. km := v["km"]
  78. if utils.StrToFloat64(v["km"]) < 1 {
  79. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  80. } else {
  81. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  82. v["km"] += "km"
  83. }
  84. if utils.StrToFloat64(km) <= 0 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 0 {
  85. v["km"] = "-"
  86. }
  87. tmp := map[string]interface{}{
  88. "lat": v["lat"],
  89. "lng": v["lng"],
  90. "address": v["address"],
  91. "name": v["name"],
  92. "id": v["id"],
  93. "km": v["km"],
  94. "time_str": v["timer"],
  95. "uid": v["uid"],
  96. "phone": v["phone"],
  97. "logo": v["logo"],
  98. "is_like": "0",
  99. "fan": "",
  100. }
  101. if user != nil {
  102. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  103. if count > 0 {
  104. tmp["is_like"] = "1"
  105. }
  106. }
  107. storeList = append(storeList, tmp)
  108. }
  109. e.OutSuc(c, storeList, nil)
  110. return
  111. }
  112. func StoreLike(c *gin.Context) {
  113. var arg map[string]string
  114. if err := c.ShouldBindJSON(&arg); err != nil {
  115. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  116. return
  117. }
  118. arg["store_type"] = "0"
  119. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  120. store := db.GetStoreLike(MasterDb(c), arg)
  121. storeList := make([]map[string]interface{}, 0)
  122. for _, v := range store {
  123. km := v["km"]
  124. if utils.StrToFloat64(v["km"]) < 1 {
  125. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  126. } else {
  127. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  128. v["km"] += "km"
  129. }
  130. if utils.StrToFloat64(km) <= 0 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 0 {
  131. v["km"] = "-"
  132. }
  133. label := make([]string, 0)
  134. tmp := map[string]interface{}{
  135. "lat": v["lat"],
  136. "lng": v["lng"],
  137. "address": v["address"],
  138. "work_state": v["work_state"],
  139. "name": v["name"],
  140. "id": v["id"],
  141. "uid": v["uid"],
  142. "km": v["km"],
  143. "time_str": v["timer"],
  144. "phone": v["phone"],
  145. "label": label,
  146. "is_like": "0",
  147. }
  148. if user != nil {
  149. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  150. if count > 0 {
  151. tmp["is_like"] = "1"
  152. }
  153. }
  154. storeList = append(storeList, tmp)
  155. }
  156. e.OutSuc(c, storeList, nil)
  157. return
  158. }
  159. func Store(c *gin.Context) {
  160. var arg map[string]string
  161. if err := c.ShouldBindJSON(&arg); err != nil {
  162. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  163. return
  164. }
  165. arg["store_type"] = "0"
  166. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  167. store := db.GetStore(MasterDb(c), arg)
  168. storeList := make([]map[string]interface{}, 0)
  169. for _, v := range store {
  170. km := v["km"]
  171. if utils.StrToFloat64(v["km"]) < 1 {
  172. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  173. } else {
  174. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  175. v["km"] += "km"
  176. }
  177. if utils.StrToFloat64(km) <= 0 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 0 {
  178. v["km"] = "-"
  179. }
  180. label := make([]string, 0)
  181. tmp := map[string]interface{}{
  182. "lat": v["lat"],
  183. "lng": v["lng"],
  184. "address": v["address"],
  185. "work_state": v["work_state"],
  186. "name": v["name"],
  187. "id": v["id"],
  188. "uid": v["uid"],
  189. "km": v["km"],
  190. "time_str": v["timer"],
  191. "phone": v["phone"],
  192. "label": label,
  193. "is_like": "0",
  194. }
  195. if user != nil {
  196. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  197. if count > 0 {
  198. tmp["is_like"] = "1"
  199. }
  200. }
  201. storeList = append(storeList, tmp)
  202. }
  203. e.OutSuc(c, storeList, nil)
  204. return
  205. }
  206. func StoreAddLike(c *gin.Context) {
  207. var arg map[string]string
  208. if err := c.ShouldBindJSON(&arg); err != nil {
  209. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  210. return
  211. }
  212. user := GetUser(c)
  213. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, arg["id"]).Count(&model.CommunityTeamStoreLike{})
  214. if count > 0 {
  215. e.OutErr(c, 400, e.NewErr(400, "已收藏"))
  216. return
  217. }
  218. var data = model.CommunityTeamStoreLike{
  219. Uid: user.Info.Uid,
  220. StoreId: utils.StrToInt(arg["id"]),
  221. Time: time.Now(),
  222. }
  223. MasterDb(c).Insert(&data)
  224. e.OutSuc(c, "success", nil)
  225. return
  226. }
  227. func StoreCancelLike(c *gin.Context) {
  228. var arg map[string]string
  229. if err := c.ShouldBindJSON(&arg); err != nil {
  230. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  231. return
  232. }
  233. user := GetUser(c)
  234. MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, arg["id"]).Delete(&model.CommunityTeamStoreLike{})
  235. e.OutSuc(c, "success", nil)
  236. return
  237. }