附近小店
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.
 
 
 

161 lines
4.8 KiB

  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.IntToStr(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 != "" && v.PaymentDate != "0000-00-00 00:00:00" {
  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. }