order.rb 9.8 KB

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