order.rb 9.8 KB

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