node_order_payments.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package admin
  2. import (
  3. "app/commons/constant"
  4. "app/commons/model/entity"
  5. "app/commons/services"
  6. "github.com/gin-gonic/gin"
  7. "github.com/shopspring/decimal"
  8. )
  9. // CreateNodeOrderPayments 创建订单支付信息
  10. func (s *Server) CreateNodeOrderPayments(ctx *gin.Context) {
  11. c := s.FromContext(ctx)
  12. type Request struct {
  13. NodeOrderRecordId string `json:"nodeOrderRecordId" binding:"required"`
  14. UserId int64 `json:"userId" binding:"required"`
  15. Uid string `json:"uid" binding:"required"`
  16. OrderUsdAmount decimal.Decimal `json:"orderUsdAmount"`
  17. PaySymbol decimal.Decimal `json:"paySymbol"`
  18. PaySymbolUsdPrice decimal.Decimal `json:"paySymbolUsdPrice"`
  19. PayQuantity decimal.Decimal `json:"payQuantity"`
  20. PayUsdAmount decimal.Decimal `json:"payUsdAmount"`
  21. }
  22. req := new(Request)
  23. if err := c.ShouldBindJSON(&req); err != nil {
  24. c.Fail(constant.ErrorParams)
  25. return
  26. }
  27. payment := &entity.NodeOrderPayments{
  28. NodeOrderRecordId: req.NodeOrderRecordId,
  29. UserId: req.UserId,
  30. Uid: req.Uid,
  31. OrderUsdAmount: req.OrderUsdAmount,
  32. PaySymbol: req.PaySymbol,
  33. PaySymbolUsdPrice: req.PaySymbolUsdPrice,
  34. PayQuantity: req.PayQuantity,
  35. PayUsdAmount: req.PayUsdAmount,
  36. }
  37. if err := s.DB().Create(payment).Error; err != nil {
  38. c.Fail(err.Error())
  39. return
  40. }
  41. c.Resp(payment)
  42. }
  43. // UpdateNodeOrderPayments 更新订单支付信息
  44. func (s *Server) UpdateNodeOrderPayments(ctx *gin.Context) {
  45. c := s.FromContext(ctx)
  46. type Request struct {
  47. Id int64 `json:"id" binding:"required"`
  48. NodeOrderRecordId *string `json:"nodeOrderRecordId"`
  49. UserId *int64 `json:"userId"`
  50. Uid *string `json:"uid"`
  51. OrderUsdAmount *decimal.Decimal `json:"orderUsdAmount"`
  52. PaySymbol *decimal.Decimal `json:"paySymbol"`
  53. PaySymbolUsdPrice *decimal.Decimal `json:"paySymbolUsdPrice"`
  54. PayQuantity *decimal.Decimal `json:"payQuantity"`
  55. PayUsdAmount *decimal.Decimal `json:"payUsdAmount"`
  56. }
  57. req := new(Request)
  58. if err := c.ShouldBindJSON(&req); err != nil {
  59. c.Fail(constant.ErrorParams)
  60. return
  61. }
  62. payment := &entity.NodeOrderPayments{}
  63. if err := s.DB().First(payment, req.Id).Error; err != nil {
  64. c.Fail(constant.ErrorInfo)
  65. return
  66. }
  67. updates := make(map[string]interface{})
  68. if req.NodeOrderRecordId != nil {
  69. updates["node_order_record_id"] = *req.NodeOrderRecordId
  70. }
  71. if req.UserId != nil {
  72. updates["user_id"] = *req.UserId
  73. }
  74. if req.Uid != nil {
  75. updates["uid"] = *req.Uid
  76. }
  77. if req.OrderUsdAmount != nil {
  78. updates["order_usd_amount"] = *req.OrderUsdAmount
  79. }
  80. if req.PaySymbol != nil {
  81. updates["pay_symbol"] = *req.PaySymbol
  82. }
  83. if req.PaySymbolUsdPrice != nil {
  84. updates["pay_symbol_usd_price"] = *req.PaySymbolUsdPrice
  85. }
  86. if req.PayQuantity != nil {
  87. updates["pay_quantity"] = *req.PayQuantity
  88. }
  89. if req.PayUsdAmount != nil {
  90. updates["pay_usd_amount"] = *req.PayUsdAmount
  91. }
  92. if err := s.DB().Model(payment).Updates(updates).Error; err != nil {
  93. c.Fail(err.Error())
  94. return
  95. }
  96. c.Resp(payment)
  97. }
  98. // DeleteNodeOrderPayments 删除订单支付信息
  99. func (s *Server) DeleteNodeOrderPayments(ctx *gin.Context) {
  100. c := s.FromContext(ctx)
  101. type Request struct {
  102. Id int64 `json:"id" binding:"required"`
  103. }
  104. req := new(Request)
  105. if err := c.ShouldBindJSON(&req); err != nil {
  106. c.Fail(constant.ErrorParams)
  107. return
  108. }
  109. if err := s.DB().Delete(&entity.NodeOrderPayments{}, req.Id).Error; err != nil {
  110. c.Fail(err.Error())
  111. return
  112. }
  113. c.Resp(nil)
  114. }
  115. // GetNodeOrderPayments 获取订单支付详情
  116. func (s *Server) GetNodeOrderPayments(ctx *gin.Context) {
  117. c := s.FromContext(ctx)
  118. type Request struct {
  119. Id int64 `json:"id" form:"id" binding:"required"`
  120. }
  121. req := new(Request)
  122. if err := c.ShouldBind(&req); err != nil {
  123. c.Fail(constant.ErrorParams)
  124. return
  125. }
  126. payment := &entity.NodeOrderPayments{}
  127. if err := s.DB().First(payment, req.Id).Error; err != nil {
  128. c.Fail(constant.ErrorInfo)
  129. return
  130. }
  131. c.Resp(payment)
  132. }
  133. // FindNodeOrderPayments 分页查询订单支付信息
  134. func (s *Server) FindNodeOrderPayments(ctx *gin.Context) {
  135. c := s.FromContext(ctx)
  136. type Request struct {
  137. services.Pagination
  138. NodeOrderRecordId string `json:"nodeOrderRecordId" form:"nodeOrderRecordId"`
  139. UserId int64 `json:"userId" form:"userId"`
  140. Uid string `json:"uid" form:"uid"`
  141. BeginTime int64 `json:"beginTime" form:"beginTime"`
  142. EndTime int64 `json:"endTime" form:"endTime"`
  143. Order string `json:"order" form:"order"`
  144. IsExport bool `json:"isExport" form:"isExport"`
  145. Fields string `json:"fields" form:"fields"`
  146. }
  147. req := new(Request)
  148. if err := c.ShouldBind(&req); err != nil {
  149. c.Fail(constant.ErrorParams)
  150. return
  151. }
  152. db := s.DB().Model(&entity.NodeOrderPayments{})
  153. // 条件查询
  154. if req.NodeOrderRecordId != "" {
  155. db = db.Where("node_order_record_id = ?", req.NodeOrderRecordId)
  156. }
  157. if req.UserId > 0 {
  158. db = db.Where("user_id = ?", req.UserId)
  159. }
  160. if req.Uid != "" {
  161. db = db.Where("uid = ?", req.Uid)
  162. }
  163. if req.BeginTime > 0 {
  164. db = db.Where("created_at >= ?", req.BeginTime)
  165. }
  166. if req.EndTime > 0 {
  167. db = db.Where("created_at <= ?", req.EndTime)
  168. }
  169. // 排序
  170. if req.Order == "" {
  171. req.Order = "id desc"
  172. }
  173. db = db.Order(req.Order)
  174. // 分页查询
  175. list, err := s.PageNodeOrderPayments(db, &req.Pagination)
  176. if err != nil {
  177. c.Fail(err.Error())
  178. return
  179. }
  180. // 可导出字段列表
  181. cols := []map[string]string{
  182. {"field": "id", "label": "ID"},
  183. {"field": "paymentRecordId", "label": "支付订单ID"},
  184. {"field": "nodeOrderRecordId", "label": "节点购买记录ID"},
  185. {"field": "userId", "label": "用户ID"},
  186. {"field": "uid", "label": "用户UID"},
  187. {"field": "orderUsdAmount", "label": "订单总价值(USD)"},
  188. {"field": "paySymbol", "label": "支付币种"},
  189. {"field": "paySymbolUsdPrice", "label": "支付币种单价"},
  190. {"field": "payQuantity", "label": "支付数量"},
  191. {"field": "payUsdAmount", "label": "支付总价值(USD)"},
  192. {"field": "createdAt", "label": "创建时间"},
  193. }
  194. c.Resp(gin.H{
  195. "list": list,
  196. "pagination": req.Pagination,
  197. "cols": cols,
  198. })
  199. }