scale_result.rb 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. # encoding:utf-8
  2. class ScaleResult < ActiveRecord::Base
  3. has_paper_trail
  4. self.table_name = "scale_result"
  5. belongs_to :wx_user
  6. belongs_to :scale_user, :foreign_key => :user_id
  7. #after_create :update_paied_time
  8. def wx_user_contact
  9. return "-" if wx_user.blank?
  10. user = wx_user.user
  11. return "-" if user.blank?
  12. contact = user.tel
  13. contact = user.email if contact.blank?
  14. contact.blank? ? "-" : contact
  15. end
  16. # 从测量结果中获取时间戳
  17. def measurement_time
  18. return nil if result.blank?
  19. begin
  20. data = JSON.parse(result)
  21. timestamp = data['timestamp']
  22. return nil if timestamp.blank?
  23. Time.parse(timestamp)
  24. rescue => e
  25. nil
  26. end
  27. end
  28. rails_admin do
  29. navigation_label '测量记录'
  30. parent ScaleDevice
  31. weight 2
  32. list do
  33. filters [:wx_user,:created_at]
  34. field :id do
  35. label 'ID'
  36. end
  37. field :wx_user_id do
  38. label '微信用户ID'
  39. end
  40. field :wx_user do
  41. label '微信用户'
  42. pretty_value do
  43. bindings[:object].wx_user_contact
  44. end
  45. end
  46. field :user_id do
  47. label '称用户ID'
  48. end
  49. field :scale_user do
  50. label '称用户名'
  51. end
  52. field :result do
  53. label '测量结果'
  54. end
  55. field :measurement_time do
  56. label '测量时间'
  57. pretty_value do
  58. time = bindings[:object].measurement_time
  59. time.present? ? time.strftime('%Y-%m-%d %H:%M:%S') : '-'
  60. end
  61. sortable false
  62. end
  63. end
  64. show do
  65. field :id do
  66. label 'ID'
  67. end
  68. field :wx_user_id do
  69. label '微信用户ID'
  70. end
  71. field :wx_user do
  72. label '微信用户'
  73. pretty_value do
  74. bindings[:object].wx_user_contact
  75. end
  76. end
  77. field :user_id do
  78. label '称用户ID'
  79. end
  80. field :scale_user do
  81. label '称用户名'
  82. end
  83. field :result do
  84. label '测量结果'
  85. end
  86. field :measurement_time do
  87. label '测量时间'
  88. pretty_value do
  89. time = bindings[:object].measurement_time
  90. time.present? ? time.strftime('%Y-%m-%d %H:%M:%S') : '-'
  91. end
  92. end
  93. end
  94. edit do
  95. field :wx_user do
  96. label '微信用户'
  97. end
  98. field :scale_user do
  99. label '称用户名'
  100. end
  101. field :result do
  102. label '测量结果'
  103. end
  104. end
  105. end
  106. end