order.rb 9.9 KB

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