order.rb 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  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+self.freight)/100.0) :0
  80. return paied_price_f.to_s # + "元"
  81. when "balance"
  82. paied_price_f = self.paied_price!=0 ? ((self.paied_price+self.freight)/100.0) :0
  83. return paied_price_f.to_s #+ "代金券"
  84. when "integral"
  85. paied_price_f = self.paied_price!=0 ? ((self.paied_price+self.freight)/100.0) :0
  86. return paied_price_f.to_s #+ "代金券"
  87. end
  88. end
  89. rails_admin do
  90. navigation_label '商品管理'
  91. weight -240
  92. list do
  93. filters [:order_id,:status,:pay_way,:receive_time,:wx_user_id,:paied_time]
  94. field :id do
  95. visible false
  96. end
  97. field :order_id
  98. field :order_type, :enum do
  99. filterable true
  100. enum do
  101. TYPE_ENUM
  102. end
  103. end
  104. field :user_id do
  105. visible false
  106. filterable true
  107. end
  108. field :wx_user_id do
  109. filterable true
  110. end
  111. field :w_user do
  112. # visible false
  113. end
  114. field :user_tel do
  115. # visible false
  116. end
  117. field :total_price do
  118. visible false
  119. end
  120. field :freight do
  121. visible true
  122. label "运费(元)"
  123. formatted_value do
  124. value!=0 ? (value/100.0):0
  125. end
  126. end
  127. field :total_price_format do
  128. visible true
  129. end
  130. field :paied_price_format do
  131. visible true
  132. end
  133. field :trade_no do
  134. visible false
  135. end
  136. field :status, :enum do
  137. enum do
  138. STATUS_ENUM
  139. end
  140. end
  141. field :pay_way, :enum do
  142. enum do
  143. PAY_WAY_ENUM
  144. end
  145. end
  146. field :source, :enum do
  147. visible false
  148. enum do
  149. SOURCE_ENUM
  150. end
  151. end
  152. field :paied_at do
  153. formatted_value do
  154. (value == 0 || value == nil) ? Time.at(0) : Time.at(value)
  155. end
  156. end
  157. field :paied_time do
  158. visible false
  159. end
  160. field :contact
  161. field :tel
  162. field :address
  163. field :express_company
  164. field :express_order_no
  165. field :dispatch_time
  166. field :receive_time do
  167. # visible false
  168. end
  169. field :order_remark do
  170. visible false
  171. end
  172. field :order_details
  173. field :remark
  174. field :created_at do
  175. visible false
  176. end
  177. end
  178. show do
  179. field :id
  180. field :order_id
  181. field :wx_user
  182. field :wx_user_id
  183. field :freight do
  184. visible true
  185. label "运费(元)"
  186. formatted_value do
  187. value!=0 ? (value/100.0):0
  188. end
  189. end
  190. field :total_price_format
  191. field :paied_price_format
  192. field :buy_price
  193. field :trade_no
  194. field :status, :enum do
  195. enum do
  196. STATUS_ENUM
  197. end
  198. end
  199. field :pay_way, :enum do
  200. enum do
  201. PAY_WAY_ENUM
  202. end
  203. end
  204. field :source, :enum do
  205. enum do
  206. SOURCE_ENUM
  207. end
  208. end
  209. field :paied_at do
  210. formatted_value do
  211. (value == 0 || value == nil) ? Time.at(0) : Time.at(value)
  212. end
  213. end
  214. field :tel
  215. field :address
  216. field :contact
  217. field :express_company
  218. field :express_order_no
  219. field :remark
  220. field :order_remark
  221. field :dispatch_time
  222. field :receive_time
  223. field :order_details
  224. field :created_at
  225. field :updated_at
  226. end
  227. edit do
  228. field :order_id
  229. field :wx_user_id
  230. field :total_price
  231. field :paied_price
  232. field :paied_at
  233. field :buy_price
  234. field :freight
  235. field :trade_no
  236. field :status, :enum do
  237. enum do
  238. STATUS_ENUM
  239. end
  240. end
  241. field :pay_way, :enum do
  242. enum do
  243. PAY_WAY_ENUM
  244. end
  245. end
  246. field :source, :enum do
  247. enum do
  248. SOURCE_ENUM
  249. end
  250. end
  251. field :tel
  252. field :address
  253. field :contact
  254. #field :express_company
  255. field :express_company, :enum do
  256. enum do
  257. EXP_ENUM
  258. end
  259. end
  260. field :express_order_no
  261. field :remark
  262. field :order_remark
  263. field :dispatch_time
  264. end
  265. export do
  266. include_all_fields
  267. field :freight do
  268. visible true
  269. label "运费(元)"
  270. formatted_value do
  271. value!=0 ? (value/100.0):0
  272. end
  273. end
  274. field :status, :enum do
  275. enum do
  276. STATUS_ENUM
  277. end
  278. end
  279. field :pay_way, :enum do
  280. enum do
  281. PAY_WAY_ENUM
  282. end
  283. end
  284. field :source, :enum do
  285. enum do
  286. SOURCE_ENUM
  287. end
  288. end
  289. field :paied_at do
  290. formatted_value do
  291. (value == 0 || value == nil) ? Time.at(0) : Time.at(value)
  292. end
  293. end
  294. end
  295. end
  296. end