admin.order.amount.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package user
  2. import (
  3. "duoduo/models/mysql"
  4. "duoduo/models/user"
  5. "duoduo/tools/app"
  6. "github.com/shopspring/decimal"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func AdminOrderAmount(c *gin.Context) {
  10. var inData user.AdminOrderAmountRequest
  11. var outData user.AdminOrderAmountResponse
  12. var user mysql.User
  13. var order mysql.Order
  14. var adminOrder mysql.AdminTransRecords
  15. err := c.ShouldBindJSON(&inData)
  16. if err != nil {
  17. app.Error(c, 400, err, err.Error())
  18. return
  19. }
  20. userNum, err := user.GetTotal()
  21. if err != nil {
  22. app.Error(c, 400, err, err.Error())
  23. return
  24. }
  25. orderNum, err := order.GetTotal()
  26. if err != nil {
  27. app.Error(c, 400, err, err.Error())
  28. return
  29. }
  30. amount, err := order.GetAdminAmount()
  31. if err != nil {
  32. app.Error(c, 500, err, err.Error())
  33. return
  34. }
  35. outData.PlatformAmount, err = order.GetPlatform()
  36. if err != nil {
  37. app.Error(c, 500, err, err.Error())
  38. return
  39. }
  40. outData.AdminAmount = decimal.NewFromInt(amount)
  41. outData.AdminAmount = outData.AdminAmount.Mul(decimal.NewFromFloat(0.0015)).Round(2)
  42. //所有已结算的订单求和 + 订单喝*0.0015 - 已付款金额
  43. //outData.AvailableAmount =
  44. //订单结算和
  45. availableAmount, err := order.GetAdminAvailable()
  46. if err != nil {
  47. app.Error(c, 500, err, err.Error())
  48. return
  49. }
  50. //已付款金额
  51. adminTrans, err := adminOrder.GetTrans()
  52. if err != nil {
  53. app.Error(c, 500, err, err.Error())
  54. return
  55. }
  56. outData.AvailableAmount = availableAmount.Add(availableAmount.Mul(decimal.NewFromFloat(0.15)).Round(2)).Sub(adminTrans)
  57. outData.WithdrawalAmount = adminTrans
  58. outData.OrderNum = orderNum
  59. outData.UserNum = userNum
  60. app.OK(c, outData, app.Success)
  61. }