Przeglądaj źródła

add order redund

abiao 5 lat temu
rodzic
commit
f74a1e9c14

+ 83 - 0
app/models/order_refund.rb

@@ -0,0 +1,83 @@
+class OrderRefund < ActiveRecord::Base
+    has_paper_trail
+    self.table_name = "order_refunds"
+    validates :order_id, presence: true
+    belongs_to :wx_user, :foreign_key => :wx_user_id
+    before_save :before_save
+
+    def before_save
+      order = Order.where("order_id = ?", self.order_id).first
+      if !order.blank?
+        self.wx_user_id = order.wx_user_id
+        self.total = order.total_price
+        self.refund_fee = order.paied_price
+        self.transaction_id = order.transaction_id
+      end
+    end
+
+    rails_admin do
+      navigation_label '订单退款记录'
+      weight -500
+      parent Order
+        list do 
+          filters [:id,:order_id]
+          field :id
+          field :order_id
+          field :wx_user
+          field :transaction_id
+          field :total do
+            label "订单金额(元)"
+            formatted_value do # used in form views
+              value.to_f / 100
+            end
+          end
+          field :refund_fee do
+            label "退款金额(元)"
+            formatted_value do # used in form views
+              value.to_f / 100
+            end
+          end
+          field :refund_time do
+            pretty_value do
+              # value.to_i >0 ? Time.at(value.to_i) : ''
+              (value == nil || value <=0) ? "" : Time.at(value)
+            end
+          end
+          field :status
+          field :created_at
+        end
+
+        show do
+          field :id
+          field :order_id
+          field :wx_user
+          field :transaction_id
+          field :total
+          field :total do
+            label "订单金额(元)"
+            formatted_value do # used in form views
+              value.to_f / 100
+            end
+          end
+          field :refund_fee do
+            label "退款金额(元)"
+            formatted_value do # used in form views
+              value.to_f / 100
+            end
+          end
+          field :refund_time do
+            pretty_value do
+              # value.to_i >0 ? Time.at(value.to_i) : ''
+              (value == nil || value <=0) ? "" : Time.at(value)
+            end
+          end
+          field :status
+          field :created_at
+          field :updated_at
+        end
+
+        edit do
+          field :order_id
+        end
+    end
+end

+ 17 - 0
config/locales/models/order_refund.yml

@@ -0,0 +1,17 @@
+zh-CN:
+  activerecord:
+    models:
+      order_refund: 订单退款记录
+    attributes:
+      order_refund:
+        order_id: 订单Id
+        wx_user: 微信会员
+        wx_user_id: 微信ID
+        transaction_id: 微信支付单号
+        total: 订单金额
+        refund_fee: 微信退款金额
+        refund_time: 到账时间
+        status: 到账状态
+        created_at: 创建时间
+        updated_at: 更新时间
+

+ 29 - 0
db/migrate/20201109114688_create_order_refunds.rb

@@ -0,0 +1,29 @@
+# encoding:utf-8
+class CreateOrderRefunds < ActiveRecord::Migration
+  def up
+    #订单退款记录
+    create_table :OrderRefunds do |t|
+      # 订单Id
+      t.column :order_id, :string,:limit => 128
+      # 微信ID
+      t.column :wx_user_id, :integer, :limit => 11, :default => 0
+      # 微信支付单号
+      t.column :transaction_id, :string,:limit => 256
+      # 订单金额
+      t.column :total, :integer, :limit => 11, :default => 0
+      # 微信退款金额
+      t.column :refund_fee, :integer, :limit => 11, :default => 0
+      # 到账时间
+      t.column :refund_time, :integer, :limit => 11, :default => 0
+      # 到账状态
+      t.column :status, :integer, :limit => 11, :default => 0
+      t.timestamps
+    end
+    add_index :OrderRefunds, :order_id
+  end
+
+  def down
+    drop_table :OrderRefunds
+  end
+
+end