dt_finance.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package daytask
  2. import (
  3. model "go_server/model/biz_modules/daytask"
  4. "go_server/model/common/response"
  5. "go_server/service/base"
  6. "github.com/gin-gonic/gin"
  7. )
  8. // DtWithdrawOrderService 提现订单服务
  9. type DtWithdrawOrderService struct {
  10. base.BizCommonService
  11. }
  12. func (s *DtWithdrawOrderService) Get(c *gin.Context) {
  13. s.SetDbAlias("daytask")
  14. base.NewBaseHandler(model.NewDtWithdrawOrder()).Get(c, s.DB())
  15. }
  16. func (s *DtWithdrawOrderService) Find(c *gin.Context) {
  17. s.SetDbAlias("daytask")
  18. type request[T any] struct {
  19. base.ListRequest[T]
  20. Id *int64 `form:"id"`
  21. OrderNo *string `form:"orderNo"`
  22. UserId *int64 `form:"userId"`
  23. UserUid *string `form:"userUid"`
  24. Channel *string `form:"channel"`
  25. Status *int8 `form:"status"`
  26. BeginTime *int64 `form:"beginTime"`
  27. EndTime *int64 `form:"endTime"`
  28. }
  29. req := new(request[model.DtWithdrawOrder])
  30. if err := c.BindQuery(req); err != nil {
  31. response.Resp(c, err.Error())
  32. return
  33. }
  34. db := s.DB()
  35. if req.Id != nil && *req.Id != 0 {
  36. db = db.Where("id", req.Id)
  37. }
  38. if req.OrderNo != nil && *req.OrderNo != "" {
  39. db = db.Where("order_no", req.OrderNo)
  40. }
  41. if req.UserId != nil && *req.UserId != 0 {
  42. db = db.Where("user_id", req.UserId)
  43. }
  44. if req.UserUid != nil && *req.UserUid != "" {
  45. db = db.Where("user_uid", req.UserUid)
  46. }
  47. if req.Channel != nil && *req.Channel != "" {
  48. db = db.Where("channel", req.Channel)
  49. }
  50. if req.Status != nil {
  51. db = db.Where("status", req.Status)
  52. }
  53. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  54. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  55. }
  56. colInfo := s.GetColumnCommentFromStruct(model.DtWithdrawOrder{})
  57. resp, err := base.NewQueryBaseHandler(model.NewDtWithdrawOrder()).List(db, req)
  58. if err != nil {
  59. response.Resp(c, err.Error())
  60. return
  61. }
  62. response.Resp(c, map[string]interface{}{
  63. "cols": colInfo,
  64. "list": resp.List,
  65. "paging": resp.Paging,
  66. })
  67. }
  68. func (s *DtWithdrawOrderService) Create(c *gin.Context) {
  69. s.SetDbAlias("daytask")
  70. base.NewBaseHandler(model.NewDtWithdrawOrder()).Create(c, s.DB())
  71. }
  72. func (s *DtWithdrawOrderService) Update(c *gin.Context) {
  73. s.SetDbAlias("daytask")
  74. base.NewBaseHandler(model.NewDtWithdrawOrder()).UpdateOne(c, s.DB())
  75. }
  76. // Audit 审核提现
  77. func (s *DtWithdrawOrderService) Audit(c *gin.Context) {
  78. s.SetDbAlias("daytask")
  79. type request struct {
  80. Id int64 `json:"id" binding:"required"`
  81. Status int8 `json:"status" binding:"required"` // 1=通过 4=拒绝
  82. RejectReason string `json:"rejectReason"`
  83. Remark string `json:"remark"`
  84. }
  85. var req request
  86. if err := c.ShouldBindJSON(&req); err != nil {
  87. response.Resp(c, err.Error())
  88. return
  89. }
  90. updates := map[string]interface{}{
  91. "status": req.Status,
  92. "remark": req.Remark,
  93. "audit_time": c.GetInt64("now"),
  94. }
  95. if req.Status == 4 {
  96. updates["reject_reason"] = req.RejectReason
  97. }
  98. err := s.DB().Model(&model.DtWithdrawOrder{}).Where("id = ? AND status = 0", req.Id).Updates(updates).Error
  99. if err != nil {
  100. response.Resp(c, err.Error())
  101. return
  102. }
  103. response.Resp(c, "操作成功")
  104. }
  105. // Pay 打款
  106. func (s *DtWithdrawOrderService) Pay(c *gin.Context) {
  107. s.SetDbAlias("daytask")
  108. type request struct {
  109. Id int64 `json:"id" binding:"required"`
  110. Txid string `json:"txid"`
  111. PayScreenshot string `json:"payScreenshot"`
  112. Remark string `json:"remark"`
  113. }
  114. var req request
  115. if err := c.ShouldBindJSON(&req); err != nil {
  116. response.Resp(c, err.Error())
  117. return
  118. }
  119. updates := map[string]interface{}{
  120. "status": 2,
  121. "txid": req.Txid,
  122. "pay_screenshot": req.PayScreenshot,
  123. "remark": req.Remark,
  124. "pay_time": c.GetInt64("now"),
  125. }
  126. err := s.DB().Model(&model.DtWithdrawOrder{}).Where("id = ? AND status = 1", req.Id).Updates(updates).Error
  127. if err != nil {
  128. response.Resp(c, err.Error())
  129. return
  130. }
  131. response.Resp(c, "操作成功")
  132. }
  133. // DtBalanceLogService 资金流水服务
  134. type DtBalanceLogService struct {
  135. base.BizCommonService
  136. }
  137. func (s *DtBalanceLogService) Get(c *gin.Context) {
  138. s.SetDbAlias("daytask")
  139. base.NewBaseHandler(model.NewDtBalanceLog()).Get(c, s.DB())
  140. }
  141. func (s *DtBalanceLogService) Find(c *gin.Context) {
  142. s.SetDbAlias("daytask")
  143. type request[T any] struct {
  144. base.ListRequest[T]
  145. UserId *int64 `form:"userId"`
  146. UserUid *string `form:"userUid"`
  147. Type *string `form:"type"`
  148. BeginTime *int64 `form:"beginTime"`
  149. EndTime *int64 `form:"endTime"`
  150. }
  151. req := new(request[model.DtBalanceLog])
  152. if err := c.BindQuery(req); err != nil {
  153. response.Resp(c, err.Error())
  154. return
  155. }
  156. db := s.DB()
  157. if req.UserId != nil && *req.UserId != 0 {
  158. db = db.Where("user_id", req.UserId)
  159. }
  160. if req.UserUid != nil && *req.UserUid != "" {
  161. db = db.Where("user_uid", req.UserUid)
  162. }
  163. if req.Type != nil && *req.Type != "" {
  164. db = db.Where("type", req.Type)
  165. }
  166. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  167. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  168. }
  169. colInfo := s.GetColumnCommentFromStruct(model.DtBalanceLog{})
  170. resp, err := base.NewQueryBaseHandler(model.NewDtBalanceLog()).List(db, req)
  171. if err != nil {
  172. response.Resp(c, err.Error())
  173. return
  174. }
  175. response.Resp(c, map[string]interface{}{
  176. "cols": colInfo,
  177. "list": resp.List,
  178. "paging": resp.Paging,
  179. })
  180. }