order.rb 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. #encoding=UTF-8
  2. require 'json'
  3. require 'rest-client'
  4. class Order < ActiveRecord::Base
  5. has_paper_trail
  6. self.table_name = 'orders'
  7. validates_presence_of :user_id,:total_price,:order_id
  8. #belongs_to :user, :foreign_key => :user_id
  9. belongs_to :wx_user, :foreign_key => :wx_user_id
  10. has_many :order_details
  11. STATUS_ENUM = [["未支付","unpay"],["已关闭","closed"],["待确认","unconfirmed"],["处理中","processing"],["已完成","complete"],["待收货","dispatch"],["已退款","refunded"]]
  12. TYPE_ENUM = [["普通",0],["自用",2],["代销",1],["牛就对了(购买)",3],["牛就对了(兑奖)",4]]
  13. PAY_WAY_ENUM = [
  14. ["微信支付","weixinpay"],
  15. ["代金券支付","balance"],
  16. ]
  17. SOURCE_ENUM = [["小程序","xcx"],["公众号","gzh"],["第五创系统","d5c_sys"]]
  18. def user_tel
  19. linkUser = User.where("id = ?", self.user_id).first
  20. if !linkUser.blank?
  21. if linkUser.is_black_user
  22. return linkUser.tel + " 【黑名单】"
  23. else
  24. return linkUser.tel
  25. end
  26. else
  27. return "不存在"
  28. end
  29. end
  30. def w_user
  31. if !wx_user.blank?
  32. return wx_user.nickname
  33. else
  34. return "--"
  35. end
  36. end
  37. def merchant
  38. tmp = "-"
  39. prod = Product.where("id = ?", self.product_id).first
  40. if !prod.blank?
  41. merchant = Merchant.where("id = ?", prod.merchant_id).first
  42. if !merchant.blank?
  43. tmp = merchant.name
  44. end
  45. end
  46. return tmp
  47. end
  48. def total_price_format
  49. case self.pay_way
  50. when "weixinpay"
  51. total_price_f = self.total_price!=0 ? (self.total_price/100.0) :0
  52. return total_price_f.to_s #+ "元"
  53. when "balance"
  54. total_price_f = self.total_price!=0 ? (self.total_price/100.0) :0
  55. return total_price_f.to_s #+ "代金券"
  56. when "integral"
  57. total_price_f = self.total_price!=0 ? (self.total_price/100.0) :0
  58. return total_price_f.to_s #+ "代金券"
  59. end
  60. end
  61. def paied_price_format
  62. case self.pay_way
  63. when "weixinpay"
  64. paied_price_f = self.paied_price!=0 ? ((self.paied_price+self.freight)/100.0) :0
  65. return paied_price_f.to_s # + "元"
  66. when "balance"
  67. paied_price_f = self.paied_price!=0 ? ((self.paied_price+self.freight)/100.0) :0
  68. return paied_price_f.to_s #+ "代金券"
  69. when "integral"
  70. paied_price_f = self.paied_price!=0 ? ((self.paied_price+self.freight)/100.0) :0
  71. return paied_price_f.to_s #+ "代金券"
  72. end
  73. end
  74. rails_admin do
  75. navigation_label '商品管理'
  76. weight -240
  77. list do
  78. filters [:order_id,:status,:pay_way,:receive_time,:wx_user_id,:paied_time]
  79. field :id do
  80. visible false
  81. end
  82. field :order_id
  83. field :order_type, :enum do
  84. filterable true
  85. enum do
  86. TYPE_ENUM
  87. end
  88. end
  89. field :user_id do
  90. visible false
  91. filterable true
  92. end
  93. field :wx_user_id do
  94. filterable true
  95. end
  96. field :w_user do
  97. # visible false
  98. end
  99. field :user_tel do
  100. # visible false
  101. end
  102. field :total_price do
  103. visible false
  104. end
  105. field :freight do
  106. visible true
  107. label "运费(元)"
  108. formatted_value do
  109. value!=0 ? (value/100.0):0
  110. end
  111. end
  112. field :total_price_format do
  113. visible true
  114. end
  115. field :paied_price_format do
  116. visible true
  117. end
  118. field :trade_no do
  119. visible false
  120. end
  121. field :status, :enum do
  122. enum do
  123. STATUS_ENUM
  124. end
  125. end
  126. field :pay_way, :enum do
  127. enum do
  128. PAY_WAY_ENUM
  129. end
  130. end
  131. field :source, :enum do
  132. visible false
  133. enum do
  134. SOURCE_ENUM
  135. end
  136. end
  137. field :paied_at do
  138. formatted_value do
  139. (value == 0 || value == nil) ? Time.at(0) : Time.at(value)
  140. end
  141. end
  142. field :paied_time do
  143. visible false
  144. end
  145. field :contact
  146. field :tel
  147. field :address
  148. field :express_company
  149. field :express_order_no
  150. field :dispatch_time
  151. field :receive_time do
  152. # visible false
  153. end
  154. field :order_remark do
  155. visible false
  156. end
  157. field :order_details
  158. field :remark
  159. field :created_at do
  160. visible false
  161. end
  162. end
  163. show do
  164. field :id
  165. field :order_id
  166. field :wx_user
  167. field :wx_user_id
  168. field :freight do
  169. visible true
  170. label "运费(元)"
  171. formatted_value do
  172. value!=0 ? (value/100.0):0
  173. end
  174. end
  175. field :total_price_format
  176. field :paied_price_format
  177. field :buy_price
  178. field :trade_no
  179. field :status, :enum do
  180. enum do
  181. STATUS_ENUM
  182. end
  183. end
  184. field :pay_way, :enum do
  185. enum do
  186. PAY_WAY_ENUM
  187. end
  188. end
  189. field :source, :enum do
  190. enum do
  191. SOURCE_ENUM
  192. end
  193. end
  194. field :paied_at do
  195. formatted_value do
  196. (value == 0 || value == nil) ? Time.at(0) : Time.at(value)
  197. end
  198. end
  199. field :tel
  200. field :address
  201. field :contact
  202. field :express_company
  203. field :express_order_no
  204. field :remark
  205. field :order_remark
  206. field :dispatch_time
  207. field :receive_time
  208. field :order_details
  209. field :created_at
  210. field :updated_at
  211. end
  212. edit do
  213. field :order_id
  214. field :wx_user_id
  215. field :total_price
  216. field :paied_price
  217. field :paied_at
  218. field :buy_price
  219. field :freight
  220. field :trade_no
  221. field :status, :enum do
  222. enum do
  223. STATUS_ENUM
  224. end
  225. end
  226. field :pay_way, :enum do
  227. enum do
  228. PAY_WAY_ENUM
  229. end
  230. end
  231. field :source, :enum do
  232. enum do
  233. SOURCE_ENUM
  234. end
  235. end
  236. field :tel
  237. field :address
  238. field :contact
  239. field :express_company
  240. field :express_order_no
  241. field :remark
  242. field :order_remark
  243. field :dispatch_time
  244. end
  245. export do
  246. include_all_fields
  247. field :freight do
  248. visible true
  249. label "运费(元)"
  250. formatted_value do
  251. value!=0 ? (value/100.0):0
  252. end
  253. end
  254. field :status, :enum do
  255. enum do
  256. STATUS_ENUM
  257. end
  258. end
  259. field :pay_way, :enum do
  260. enum do
  261. PAY_WAY_ENUM
  262. end
  263. end
  264. field :source, :enum do
  265. enum do
  266. SOURCE_ENUM
  267. end
  268. end
  269. field :paied_at do
  270. formatted_value do
  271. (value == 0 || value == nil) ? Time.at(0) : Time.at(value)
  272. end
  273. end
  274. end
  275. end
  276. end