附近小店
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

svc_store.go 4.8 KiB

10 mesi fa
10 mesi fa
10 mesi fa
10 mesi fa
10 mesi fa
10 mesi fa
10 mesi fa
10 mesi fa
10 mesi fa
10 mesi fa
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package svc
  2. import (
  3. "applet/app/db"
  4. "applet/app/db/model"
  5. "applet/app/e"
  6. "applet/app/svc"
  7. "applet/app/utils"
  8. "github.com/gin-gonic/gin"
  9. "strings"
  10. "time"
  11. )
  12. func StoreWithdrawFlow(c *gin.Context) {
  13. var req map[string]string
  14. if err := c.ShouldBindJSON(&req); err != nil {
  15. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  16. return
  17. }
  18. user := svc.GetUser(c)
  19. req["agent_uid"] = utils.IntToStr(user.Info.Uid)
  20. withdraw, total := db.GetStoreWithdraw(svc.MasterDb(c), req)
  21. list := make([]map[string]string, 0)
  22. if withdraw != nil {
  23. var stateList = []string{"审核中", "审核通过", "审核通过", "审核拒绝"}
  24. for _, v := range *withdraw {
  25. name := ""
  26. store := db.GetStoreIdEg(svc.MasterDb(c), utils.IntToStr(v.Uid))
  27. if store != nil {
  28. name = store.Name
  29. }
  30. tmp := map[string]string{
  31. "id": utils.Int64ToStr(v.Id),
  32. "name": name,
  33. "amount": v.Amount,
  34. "alipay_account": v.WithdrawAccount,
  35. "alipay_name": v.WithdrawName,
  36. "state_str": stateList[v.State],
  37. "state": utils.IntToStr(v.State),
  38. "time": v.CreateAt.Format("2006-01-02 15:04:05"),
  39. "end_time": "",
  40. "memo": v.Memo,
  41. }
  42. if v.PaymentDate != "" {
  43. tmp["end_time"] = v.PaymentDate
  44. }
  45. list = append(list, tmp)
  46. }
  47. }
  48. res := map[string]interface{}{
  49. "total": total,
  50. "list": list,
  51. "state": []map[string]string{
  52. {"name": "审核中", "value": "0"},
  53. {"name": "审核通过", "value": "1"},
  54. {"name": "审核拒绝", "value": "3"},
  55. },
  56. }
  57. e.OutSuc(c, res, nil)
  58. return
  59. }
  60. func StoreWithdrawTotal(c *gin.Context) {
  61. var req map[string]string
  62. if err := c.ShouldBindJSON(&req); err != nil {
  63. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  64. return
  65. }
  66. user := svc.GetUser(c)
  67. var allAmount float64 = 0
  68. var waitAmount float64 = 0
  69. var failAmount float64 = 0
  70. req["agent_uid"] = utils.IntToStr(user.Info.Uid)
  71. allAmount, _ = db.CommWhere(svc.MasterDb(c), req).And("state=?", 1).Sum(&model.CommunityTeamStoreWithdrawApply{}, "amount")
  72. waitAmount, _ = db.CommWhere(svc.MasterDb(c), req).And("state=?", 0).Sum(&model.CommunityTeamStoreWithdrawApply{}, "amount")
  73. failAmount, _ = db.CommWhere(svc.MasterDb(c), req).And("state=?", 3).Sum(&model.CommunityTeamStoreWithdrawApply{}, "amount")
  74. res := []map[string]string{
  75. {"name": "累计提现金额(元):" + utils.Float64ToStr(allAmount), "tip": "统计提现成功的金额"},
  76. {"name": "审核中金额(元):" + utils.Float64ToStr(waitAmount), "tip": "统计正在审核中的金额"},
  77. {"name": "审核拒绝金额(元):" + utils.Float64ToStr(failAmount), "tip": "统计审核拒绝的金额"},
  78. }
  79. e.OutSuc(c, res, nil)
  80. return
  81. }
  82. func StoreWithdrawAudit(c *gin.Context) {
  83. var req map[string]string
  84. if err := c.ShouldBindJSON(&req); err != nil {
  85. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  86. return
  87. }
  88. sess := svc.MasterDb(c).NewSession()
  89. defer sess.Close()
  90. sess.Begin()
  91. data := db.GetStoreWithdrawById(sess, req["id"])
  92. if data == nil {
  93. sess.Rollback()
  94. e.OutErr(c, 400, e.NewErr(400, "记录不存在"))
  95. return
  96. }
  97. if data.State > 0 {
  98. sess.Rollback()
  99. e.OutErr(c, 400, e.NewErr(400, "记录已处理"))
  100. return
  101. }
  102. if req["state"] == "3" {
  103. bools := svc.MoneyCheck(c, sess, data.Uid, 0, 3, utils.StrToFloat64(data.Amount), "提现审核拒绝退回", utils.StrToInt64(utils.OrderUUID(data.Uid)))
  104. if bools == false {
  105. sess.Rollback()
  106. e.OutErr(c, 400, e.NewErr(400, "审核失败"))
  107. return
  108. }
  109. }
  110. data.State = utils.StrToInt(req["state"])
  111. data.Memo = req["memo"]
  112. if data.State == 1 {
  113. data.PaymentDate = time.Now().Format("2006-01-02 15:04:05")
  114. }
  115. update, err := sess.Where("id=?", data.Id).Cols("state,payment_date,memo").Update(data)
  116. if update == 0 || err != nil {
  117. sess.Rollback()
  118. e.OutErr(c, 400, e.NewErr(400, "审核失败"))
  119. return
  120. }
  121. sess.Commit()
  122. e.OutSuc(c, "success", nil)
  123. return
  124. }
  125. func StoreWithdrawAuditAll(c *gin.Context) {
  126. var req map[string]string
  127. if err := c.ShouldBindJSON(&req); err != nil {
  128. e.OutErr(c, e.ERR_INVALID_ARGS, err)
  129. return
  130. }
  131. svc.MasterDb(c).In("id", strings.Split(req["ids"], ",")).And("state=0").Cols("state,payment_date").Update(&model.CommunityTeamStoreWithdrawApply{State: 1, PaymentDate: time.Now().Format("2006-01-02 15:04:05")})
  132. e.OutSuc(c, "success", nil)
  133. return
  134. }
  135. func StoreWithdrawOutPut(c *gin.Context) {
  136. var args map[string]string
  137. if err := c.ShouldBindJSON(&args); err != nil {
  138. e.OutErr(c, 200, e.ERR_INVALID_ARGS)
  139. return
  140. }
  141. name := "提现记录_" + args["p"]
  142. args["state"] = "0"
  143. args["size"] = "3000"
  144. if args["ids"] != "" {
  145. args["size"] = "0"
  146. }
  147. user := svc.GetUser(c)
  148. args["parent_uid"] = utils.IntToStr(user.Info.Uid)
  149. data, _ := db.GetStoreWithdraw(svc.MasterDb(c), args)
  150. file := utils.OutputSecond(c, name, data)
  151. filename := name + ".xls"
  152. r := map[string]string{
  153. "file": file,
  154. "filename": filename,
  155. }
  156. e.OutSuc(c, r, nil)
  157. return
  158. }