order.rb 9.0 KB

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