order.rb 8.4 KB

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