소스 검색

Improve admin refund visibility for allinpay orders

Your Name 1 주 전
부모
커밋
ff36f29bcb
2개의 변경된 파일61개의 추가작업 그리고 5개의 파일을 삭제
  1. 2 1
      app/models/order.rb
  2. 59 4
      app/models/order_refund.rb

+ 2 - 1
app/models/order.rb

@@ -13,6 +13,7 @@ class Order < ActiveRecord::Base
 
     has_many :order_details
     has_many :base_details
+    has_many :order_refunds, :foreign_key => :order_id, :primary_key => :order_id
     # has_and_belongs_to_many :products, join_table: :order_details
 
     before_save :before_save
@@ -390,6 +391,7 @@ class Order < ActiveRecord::Base
             end
             field :depart_record
             field :order_details
+            field :order_refunds
             field :created_at
             field :updated_at
         end 
@@ -485,4 +487,3 @@ class Order < ActiveRecord::Base
     end 
 
 end
-

+ 59 - 4
app/models/order_refund.rb

@@ -3,8 +3,19 @@ class OrderRefund < ActiveRecord::Base
     self.table_name = "order_refunds"
     validates :order_id, presence: true
     belongs_to :wx_user, :foreign_key => :wx_user_id
+    belongs_to :order, :foreign_key => :order_id, :primary_key => :order_id
     before_save :before_save
 
+    STATUS_ENUM = [["待审核", false], ["已退款", true]]
+    PAY_WAY_ENUM = [
+      ["微信支付", "weixinpay"],
+      ["通联支付", "allinpay"],
+      ["提货券支付", "balance"],
+      ["佣金支付", "cash"],
+      ["积分支付", "cent"],
+    ]
+    ORDER_STATUS_ENUM = [["未支付","unpay"],["已关闭","closed"],["待确认","unconfirmed"],["处理中","processing"],["已完成","complete"],["待收货","dispatch"],["已退款","refunded"]]
+
     def before_save
       order = Order.where("order_id = ?", self.order_id).first
       if !order.blank?
@@ -15,15 +26,37 @@ class OrderRefund < ActiveRecord::Base
       end
     end
 
+    def pay_way
+      order = Order.where("order_id = ?", self.order_id).first
+      order.blank? ? "" : order.pay_way
+    end
+
+    def order_status
+      order = Order.where("order_id = ?", self.order_id).first
+      order.blank? ? "" : order.status
+    end
+
     rails_admin do
       navigation_label '订单退款记录'
       weight -500
       parent Order
         list do 
-          filters [:id,:order_id]
+          filters [:id,:order_id,:status,:transaction_id]
           field :id
           field :order_id
           field :wx_user
+          field :pay_way, :enum do
+            label "支付方式"
+            enum do
+              PAY_WAY_ENUM
+            end
+          end
+          field :order_status, :enum do
+            label "订单状态"
+            enum do
+              ORDER_STATUS_ENUM
+            end
+          end
           field :transaction_id
           field :total do
             label "订单金额(元)"
@@ -43,7 +76,12 @@ class OrderRefund < ActiveRecord::Base
               (value == nil || value <=0) ? "" : Time.at(value)
             end
           end
-          field :status
+          field :status, :enum do
+            label "退款状态"
+            enum do
+              STATUS_ENUM
+            end
+          end
           field :remark
           field :created_at
         end
@@ -52,6 +90,18 @@ class OrderRefund < ActiveRecord::Base
           field :id
           field :order_id
           field :wx_user
+          field :pay_way, :enum do
+            label "支付方式"
+            enum do
+              PAY_WAY_ENUM
+            end
+          end
+          field :order_status, :enum do
+            label "订单状态"
+            enum do
+              ORDER_STATUS_ENUM
+            end
+          end
           field :transaction_id
           field :total
           field :total do
@@ -72,7 +122,12 @@ class OrderRefund < ActiveRecord::Base
               (value == nil || value <=0) ? "" : Time.at(value)
             end
           end
-          field :status
+          field :status, :enum do
+            label "退款状态"
+            enum do
+              STATUS_ENUM
+            end
+          end
           field :remark
           field :created_at
           field :updated_at
@@ -83,4 +138,4 @@ class OrderRefund < ActiveRecord::Base
           field :remark
         end
     end
-end
+end