order_refund.rb 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. class OrderRefund < ActiveRecord::Base
  2. has_paper_trail
  3. self.table_name = "order_refunds"
  4. validates :order_id, presence: true
  5. belongs_to :wx_user, :foreign_key => :wx_user_id
  6. belongs_to :order, :foreign_key => :order_id, :primary_key => :order_id
  7. before_save :before_save
  8. STATUS_ENUM = [["待审核", false], ["已退款", true]]
  9. PAY_WAY_ENUM = [
  10. ["微信支付", "weixinpay"],
  11. ["通联支付", "allinpay"],
  12. ["提货券支付", "balance"],
  13. ["佣金支付", "cash"],
  14. ["积分支付", "cent"],
  15. ]
  16. ORDER_STATUS_ENUM = [["未支付","unpay"],["已关闭","closed"],["待确认","unconfirmed"],["处理中","processing"],["已完成","complete"],["待收货","dispatch"],["已退款","refunded"]]
  17. def before_save
  18. order = Order.where("order_id = ?", self.order_id).first
  19. if !order.blank?
  20. self.wx_user_id = order.wx_user_id
  21. self.total = order.total_price
  22. self.refund_fee = order.paied_price
  23. self.transaction_id = order.trade_no
  24. end
  25. end
  26. def pay_way
  27. order = Order.where("order_id = ?", self.order_id).first
  28. order.blank? ? "" : order.pay_way
  29. end
  30. def order_status
  31. order = Order.where("order_id = ?", self.order_id).first
  32. order.blank? ? "" : order.status
  33. end
  34. rails_admin do
  35. navigation_label '订单退款记录'
  36. weight -500
  37. parent Order
  38. list do
  39. filters [:id,:order_id,:status,:transaction_id]
  40. field :id
  41. field :order_id
  42. field :wx_user
  43. field :pay_way, :enum do
  44. label "支付方式"
  45. enum do
  46. PAY_WAY_ENUM
  47. end
  48. end
  49. field :order_status, :enum do
  50. label "订单状态"
  51. enum do
  52. ORDER_STATUS_ENUM
  53. end
  54. end
  55. field :transaction_id
  56. field :total do
  57. label "订单金额(元)"
  58. formatted_value do # used in form views
  59. value.to_f / 100
  60. end
  61. end
  62. field :refund_fee do
  63. label "退款金额(元)"
  64. formatted_value do # used in form views
  65. value.to_f / 100
  66. end
  67. end
  68. field :refund_time do
  69. pretty_value do
  70. # value.to_i >0 ? Time.at(value.to_i) : ''
  71. (value == nil || value <=0) ? "" : Time.at(value)
  72. end
  73. end
  74. field :status, :enum do
  75. label "退款状态"
  76. enum do
  77. STATUS_ENUM
  78. end
  79. end
  80. field :remark
  81. field :created_at
  82. end
  83. show do
  84. field :id
  85. field :order_id
  86. field :wx_user
  87. field :pay_way, :enum do
  88. label "支付方式"
  89. enum do
  90. PAY_WAY_ENUM
  91. end
  92. end
  93. field :order_status, :enum do
  94. label "订单状态"
  95. enum do
  96. ORDER_STATUS_ENUM
  97. end
  98. end
  99. field :transaction_id
  100. field :total
  101. field :total do
  102. label "订单金额(元)"
  103. formatted_value do # used in form views
  104. value.to_f / 100
  105. end
  106. end
  107. field :refund_fee do
  108. label "退款金额(元)"
  109. formatted_value do # used in form views
  110. value.to_f / 100
  111. end
  112. end
  113. field :refund_time do
  114. pretty_value do
  115. # value.to_i >0 ? Time.at(value.to_i) : ''
  116. (value == nil || value <=0) ? "" : Time.at(value)
  117. end
  118. end
  119. field :status, :enum do
  120. label "退款状态"
  121. enum do
  122. STATUS_ENUM
  123. end
  124. end
  125. field :remark
  126. field :created_at
  127. field :updated_at
  128. end
  129. edit do
  130. field :order_id
  131. field :remark
  132. end
  133. end
  134. end