附近小店
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

svc_store.go 9.8 KiB

10 个月前
9 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  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 StorePayScan(c *gin.Context) {
  11. kind := c.DefaultQuery("type", "alipay") //1:支付宝 2:微信
  12. id, _ := c.GetQuery("id")
  13. if id == "" {
  14. e.OutErr(c, e.ERR_INVALID_ARGS, nil)
  15. return
  16. }
  17. engine := MasterDb(c)
  18. data := db.GetStorePayQrcodeById(engine, id)
  19. if data == nil {
  20. e.OutErr(c, 400, e.NewErr(400, "桌码不存在"))
  21. return
  22. }
  23. if data.IsUse != 1 {
  24. e.OutErr(c, 400, e.NewErr(400, "桌码不可用"))
  25. return
  26. }
  27. type RefundReq struct {
  28. StoreId string `json:"store_id" `
  29. StoreType string `json:"store_type" `
  30. AppId string `json:"app_id" `
  31. InviteCode string `json:"invite_code"`
  32. }
  33. store := db.GetStoreIdEg(engine, utils.IntToStr(data.Uid))
  34. if store == nil {
  35. e.OutErr(c, 400, e.NewErr(400, "门店不存在"))
  36. return
  37. }
  38. user, _ := db.UserProfileFindByID(engine, store.Uid)
  39. var appId = ""
  40. var inviteCode = user.InviteCode
  41. if kind != "alipay" {
  42. communityTeamStoreWxAppletId := db.SysCfgGet(c, "community_team_store_wx_applet_id")
  43. var wxApplet model.WxAppletList
  44. MasterDb(c).Where("id=?", communityTeamStoreWxAppletId).Get(&wxApplet)
  45. appId = wxApplet.OriginalAppId
  46. }
  47. var result = RefundReq{
  48. StoreId: utils.IntToStr(data.Uid),
  49. AppId: appId,
  50. StoreType: utils.IntToStr(store.StoreType),
  51. InviteCode: inviteCode,
  52. }
  53. e.OutSuc(c, result, nil)
  54. return
  55. }
  56. func StoreScan(c *gin.Context) {
  57. kind := c.DefaultQuery("type", "alipay") //1:支付宝 2:微信
  58. id, _ := c.GetQuery("id")
  59. if id == "" {
  60. e.OutErr(c, e.ERR_INVALID_ARGS, nil)
  61. return
  62. }
  63. engine := MasterDb(c)
  64. data := db.GetStoreQrcodeById(engine, id)
  65. if data == nil {
  66. e.OutErr(c, 400, e.NewErr(400, "桌码不存在"))
  67. return
  68. }
  69. if data.IsUse != 1 {
  70. e.OutErr(c, 400, e.NewErr(400, "桌码不可用"))
  71. return
  72. }
  73. type RefundReq struct {
  74. StoreId string `json:"store_id" `
  75. StoreType string `json:"store_type" `
  76. TableNumber string `json:"table_number" `
  77. AppId string `json:"app_id" `
  78. InviteCode string `json:"invite_code"`
  79. }
  80. store := db.GetStoreIdEg(engine, utils.IntToStr(data.Uid))
  81. if store == nil {
  82. e.OutErr(c, 400, e.NewErr(400, "门店不存在"))
  83. return
  84. }
  85. user, _ := db.UserProfileFindByID(engine, store.Uid)
  86. var appId = ""
  87. var inviteCode = user.InviteCode
  88. if kind != "alipay" {
  89. communityTeamStoreWxAppletId := db.SysCfgGet(c, "community_team_store_wx_applet_id")
  90. var wxApplet model.WxAppletList
  91. MasterDb(c).Where("id=?", communityTeamStoreWxAppletId).Get(&wxApplet)
  92. appId = wxApplet.OriginalAppId
  93. }
  94. var result = RefundReq{
  95. StoreId: utils.IntToStr(data.Uid),
  96. TableNumber: utils.IntToStr(data.TableNum),
  97. AppId: appId,
  98. StoreType: utils.IntToStr(store.StoreType),
  99. InviteCode: inviteCode,
  100. }
  101. e.OutSuc(c, result, nil)
  102. return
  103. }
  104. func BankStore(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. arg["store_type"] = "0"
  111. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  112. var store = make([]map[string]string, 0)
  113. if arg["cid"] == "2" {
  114. store = db.GetStoreLike(MasterDb(c), arg)
  115. } else {
  116. store = db.GetStore(MasterDb(c), arg)
  117. }
  118. storeList := make([]map[string]interface{}, 0)
  119. for _, v := range store {
  120. km := v["km"]
  121. if utils.StrToFloat64(v["km"]) < 1 {
  122. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  123. } else {
  124. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  125. v["km"] += "km"
  126. }
  127. if utils.StrToFloat64(km) <= 0 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 0 {
  128. v["km"] = "-"
  129. }
  130. tmp := map[string]interface{}{
  131. "lat": v["lat"],
  132. "lng": v["lng"],
  133. "address": v["address"],
  134. "name": v["name"],
  135. "id": v["id"],
  136. "km": v["km"],
  137. "time_str": v["timer"],
  138. "uid": v["uid"],
  139. "phone": v["phone"],
  140. "logo": v["logo"],
  141. "is_like": "0",
  142. "fan": "",
  143. }
  144. if user != nil {
  145. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  146. if count > 0 {
  147. tmp["is_like"] = "1"
  148. }
  149. }
  150. storeList = append(storeList, tmp)
  151. }
  152. e.OutSuc(c, storeList, nil)
  153. return
  154. }
  155. func NewStore(c *gin.Context) {
  156. var arg map[string]string
  157. if err := c.ShouldBindJSON(&arg); err != nil {
  158. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  159. return
  160. }
  161. arg["store_type"] = "3"
  162. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  163. var store = make([]map[string]string, 0)
  164. if arg["cid"] == "2" {
  165. store = db.GetStoreLike(MasterDb(c), arg)
  166. } else {
  167. store = db.GetStore(MasterDb(c), arg)
  168. }
  169. storeList := make([]map[string]interface{}, 0)
  170. for _, v := range store {
  171. km := v["km"]
  172. if utils.StrToFloat64(v["km"]) < 1 {
  173. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  174. } else {
  175. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  176. v["km"] += "km"
  177. }
  178. if utils.StrToFloat64(km) <= 0 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 0 {
  179. v["km"] = "-"
  180. }
  181. tmp := map[string]interface{}{
  182. "lat": v["lat"],
  183. "lng": v["lng"],
  184. "address": v["address"],
  185. "name": v["name"],
  186. "id": v["id"],
  187. "km": v["km"],
  188. "time_str": v["timer"],
  189. "uid": v["uid"],
  190. "store_id": v["uid"],
  191. "store_type": v["store_type"],
  192. "phone": v["phone"],
  193. "logo": v["logo"],
  194. "is_like": "0",
  195. "fan": "",
  196. }
  197. if user != nil {
  198. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  199. if count > 0 {
  200. tmp["is_like"] = "1"
  201. }
  202. }
  203. storeList = append(storeList, tmp)
  204. }
  205. e.OutSuc(c, storeList, nil)
  206. return
  207. }
  208. func StoreLike(c *gin.Context) {
  209. var arg map[string]string
  210. if err := c.ShouldBindJSON(&arg); err != nil {
  211. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  212. return
  213. }
  214. arg["store_type"] = "0"
  215. storeId := c.GetHeader("store_id")
  216. if utils.StrToInt(storeId) > 0 {
  217. arg["store_id"] = storeId
  218. storeData := db.GetStoreIdEg(MasterDb(c), storeId)
  219. if storeData.StoreType == 0 {
  220. arg["store_id"] = "0"
  221. }
  222. arg["store_type"] = utils.IntToStr(storeData.StoreType)
  223. }
  224. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  225. store := db.GetStoreLike(MasterDb(c), arg)
  226. storeList := make([]map[string]interface{}, 0)
  227. for _, v := range store {
  228. km := v["km"]
  229. if utils.StrToFloat64(v["km"]) < 1 {
  230. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  231. } else {
  232. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  233. v["km"] += "km"
  234. }
  235. if utils.StrToFloat64(km) <= 0 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 0 {
  236. v["km"] = "-"
  237. }
  238. label := make([]string, 0)
  239. tmp := map[string]interface{}{
  240. "lat": v["lat"],
  241. "lng": v["lng"],
  242. "address": v["address"],
  243. "work_state": v["work_state"],
  244. "name": v["name"],
  245. "id": v["id"],
  246. "uid": v["uid"],
  247. "km": v["km"],
  248. "time_str": v["timer"],
  249. "phone": v["phone"],
  250. "label": label,
  251. "is_like": "0",
  252. }
  253. if user != nil {
  254. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  255. if count > 0 {
  256. tmp["is_like"] = "1"
  257. }
  258. }
  259. storeList = append(storeList, tmp)
  260. }
  261. e.OutSuc(c, storeList, nil)
  262. return
  263. }
  264. func Store(c *gin.Context) {
  265. var arg map[string]string
  266. if err := c.ShouldBindJSON(&arg); err != nil {
  267. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  268. return
  269. }
  270. arg["store_type"] = "0"
  271. storeId := c.GetHeader("store_id")
  272. if utils.StrToInt(storeId) > 0 {
  273. arg["store_id"] = storeId
  274. storeData := db.GetStoreIdEg(MasterDb(c), storeId)
  275. if storeData.StoreType == 0 {
  276. arg["store_id"] = "0"
  277. }
  278. arg["store_type"] = utils.IntToStr(storeData.StoreType)
  279. }
  280. user, _ := GetDefaultUser(c, c.GetHeader("Authorization"))
  281. store := db.GetStore(MasterDb(c), arg)
  282. storeList := make([]map[string]interface{}, 0)
  283. for _, v := range store {
  284. km := v["km"]
  285. if utils.StrToFloat64(v["km"]) < 1 {
  286. v["km"] = utils.IntToStr(int(utils.StrToFloat64(v["km"])*1000)) + "m"
  287. } else {
  288. v["km"] = GetCommissionPrec(c, v["km"], "2", "1")
  289. v["km"] += "km"
  290. }
  291. if utils.StrToFloat64(km) <= 0 || utils.StrToFloat64(v["lat"]) == 0 || utils.StrToFloat64(v["lng"]) == 0 {
  292. v["km"] = "-"
  293. }
  294. label := make([]string, 0)
  295. tmp := map[string]interface{}{
  296. "lat": v["lat"],
  297. "lng": v["lng"],
  298. "address": v["address"],
  299. "work_state": v["work_state"],
  300. "name": v["name"],
  301. "id": v["id"],
  302. "uid": v["uid"],
  303. "km": v["km"],
  304. "time_str": v["timer"],
  305. "phone": v["phone"],
  306. "label": label,
  307. "is_like": "0",
  308. }
  309. if user != nil {
  310. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, v["id"]).Count(&model.CommunityTeamStoreLike{})
  311. if count > 0 {
  312. tmp["is_like"] = "1"
  313. }
  314. }
  315. storeList = append(storeList, tmp)
  316. }
  317. e.OutSuc(c, storeList, nil)
  318. return
  319. }
  320. func StoreAddLike(c *gin.Context) {
  321. var arg map[string]string
  322. if err := c.ShouldBindJSON(&arg); err != nil {
  323. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  324. return
  325. }
  326. user := GetUser(c)
  327. count, _ := MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, arg["id"]).Count(&model.CommunityTeamStoreLike{})
  328. if count > 0 {
  329. e.OutErr(c, 400, e.NewErr(400, "已收藏"))
  330. return
  331. }
  332. var data = model.CommunityTeamStoreLike{
  333. Uid: user.Info.Uid,
  334. StoreId: utils.StrToInt(arg["id"]),
  335. Time: time.Now(),
  336. }
  337. MasterDb(c).Insert(&data)
  338. e.OutSuc(c, "success", nil)
  339. return
  340. }
  341. func StoreCancelLike(c *gin.Context) {
  342. var arg map[string]string
  343. if err := c.ShouldBindJSON(&arg); err != nil {
  344. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  345. return
  346. }
  347. user := GetUser(c)
  348. MasterDb(c).Where("uid=? and store_id=?", user.Info.Uid, arg["id"]).Delete(&model.CommunityTeamStoreLike{})
  349. e.OutSuc(c, "success", nil)
  350. return
  351. }