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