| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437 |
- # encoding:utf-8
- require 'uuid'
- class WxkuCommodity < ActiveRecord::Base
- has_paper_trail
- self.table_name = "wxku_commodities"
- before_save :before_save
- after_destroy :after_destroy
- belongs_to :product
- validates :product_id, :title,presence: true
- attr_accessor :v_image_info_1, :v_image_info_2, :v_image_info_3, :v_image_info_4, :v_image_info_5
- attr_accessor :is_delete_v_image_info_1, :is_delete_v_image_info_2, :is_delete_v_image_info_3, :is_delete_v_image_info_4, :is_delete_v_image_info_5
-
- IMG_STORE_PATH = "wxku_commodities"
- #图书,女装,男装,美妆个护,母婴,食品生鲜,数码家电,珠宝配饰,鞋靴箱包,运动户外,家居百货,汽车用品
- OFFICIALCATEGORYINFO_ENUM = [
- ["食品生鲜","食品生鲜"],
- ["图书","图书"],
- ["女装","女装"],
- ["男装","男装"],
- ["美妆个护","美妆个护"],
- ["母婴","母婴"],
- ["数码家电","数码家电"],
- ["珠宝配饰","珠宝配饰"],
- ["鞋靴箱包","鞋靴箱包"],
- ["运动户外","运动户外"],
- ["家居百货","家居百货"],
- ["汽车用品","汽车用品"]]
- SOURCE_ENUM = [["平台自营",1],["非平台自营",0]]
- SALE_STATUS_ENUM = [["上架","on"],["下架","off"]]
- rails_admin do
- navigation_label '商品管理'
- weight -240
- list do
- filters [:id]
- field :id
- field :product
- field :image_info_1 do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_image_info_1,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px;',
- :onClick => "javascript:window.open('#{bindings[:object].get_image_info_1}')"})
- end
- end
- field :image_info_2 do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_image_info_2,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px;',
- :onClick => "javascript:window.open('#{bindings[:object].get_image_info_2}')"})
- end
- end
- field :category_info
- field :official_category_info, :enum do
- enum do
- OFFICIALCATEGORYINFO_ENUM
- end
- end
- # field :url
- field :title
- field :sub_title
- field :brand
- field :source, :enum do
- enum do
- SOURCE_ENUM
- end
- end
- # field :desc
- field :min_price do
- label "现价最低价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :max_price do
- label "现价最高价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :min_ori_price do
- label "原价最低价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :max_ori_price do
- label "原价最高价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :sale_status, :enum do
- enum do
- SALE_STATUS_ENUM
- end
- end
- field :stock
- field :created_at
- end
- show do
- field :id
- field :product
- field :product_id
- field :image_info_1 do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_image_info_1,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px;',
- :onClick => "javascript:window.open('#{bindings[:object].get_image_info_1}')"})
- end
- end
- field :image_info_2 do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_image_info_2,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px;',
- :onClick => "javascript:window.open('#{bindings[:object].get_image_info_2}')"})
- end
- end
- field :image_info_3 do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_image_info_3,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px;',
- :onClick => "javascript:window.open('#{bindings[:object].get_image_info_3}')"})
- end
- end
- field :image_info_4 do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_image_info_4,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px;',
- :onClick => "javascript:window.open('#{bindings[:object].get_image_info_4}')"})
- end
- end
- field :image_info_5 do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_image_info_5,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px;',
- :onClick => "javascript:window.open('#{bindings[:object].get_image_info_5}')"})
- end
- end
- field :category_info
- field :official_category_info, :enum do
- enum do
- OFFICIALCATEGORYINFO_ENUM
- end
- end
- field :url
- field :title
- field :sub_title
- field :brand
- field :source, :enum do
- enum do
- SOURCE_ENUM
- end
- end
- field :desc
- field :min_price do
- label "现价最低价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :max_price do
- label "现价最高价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :min_ori_price do
- label "原价最低价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :max_ori_price do
- label "原价最高价(元)"
- formatted_value do # used in form views
- value.to_f / 100
- end
- end
- field :sale_status, :enum do
- enum do
- SALE_STATUS_ENUM
- end
- end
- field :stock
- field :status_ticket
- field :created_at
- field :updated_at
- end
- edit do
- field :product_id
- field :v_image_info_1, :file_upload do
- pretty_value do
- bindings[:view].tag(:img, {:src => bindings[:object].get_image_info_1, :class => 'preview'})
- end
- end
- field :is_delete_v_image_info_1, :boolean do
- visible do
- bindings[:object].image_info_1 != "" && bindings[:object].image_info_1 != nil
- end
- end
- field :v_image_info_2, :file_upload do
- pretty_value do
- bindings[:view].tag(:img, {:src => bindings[:object].get_image_info_2, :class => 'preview'})
- end
- end
- field :is_delete_v_image_info_2, :boolean do
- visible do
- bindings[:object].image_info_2 != "" && bindings[:object].image_info_2 != nil
- end
- end
- field :v_image_info_3, :file_upload do
- pretty_value do
- bindings[:view].tag(:img, {:src => bindings[:object].get_image_info_3, :class => 'preview'})
- end
- end
- field :is_delete_v_image_info_3, :boolean do
- visible do
- bindings[:object].image_info_3 != "" && bindings[:object].image_info_3 != nil
- end
- end
- field :v_image_info_4, :file_upload do
- pretty_value do
- bindings[:view].tag(:img, {:src => bindings[:object].get_image_info_4, :class => 'preview'})
- end
- end
- field :is_delete_v_image_info_4, :boolean do
- visible do
- bindings[:object].image_info_4 != "" && bindings[:object].image_info_4 != nil
- end
- end
- field :v_image_info_5, :file_upload do
- pretty_value do
- bindings[:view].tag(:img, {:src => bindings[:object].get_image_info_5, :class => 'preview'})
- end
- end
- field :is_delete_v_image_info_5, :boolean do
- visible do
- bindings[:object].image_info_5 != "" && bindings[:object].image_info_5 != nil
- end
- end
- field :category_info
- field :official_category_info, :enum do
- enum do
- OFFICIALCATEGORYINFO_ENUM
- end
- end
- field :url
- field :title
- field :sub_title
- field :brand
- field :source, :enum do
- enum do
- SOURCE_ENUM
- end
- end
- field :desc
- field :min_price do
- label "现价最低价(分)"
- end
- field :max_price do
- label "现价最高价(分)"
- end
- field :min_ori_price do
- label "原价最低价(分)"
- end
- field :max_ori_price do
- label "原价最高价(分)"
- end
- field :sale_status, :enum do
- enum do
- SALE_STATUS_ENUM
- end
- end
- field :stock
- field :status_ticket
- end
- end
- def v_image_info_1=file
- unless file.blank?
- clear_image_info_1
- file_name = "#{UUID.new.generate[0...8].downcase}.jpg"
- file_path = "#{IMG_STORE_PATH}/#{file_name}"
- Ali::Oss.store(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path, file.read)
- self.image_info_1 = file_path
- self.save
- end
- end
- def clear_image_info_1
- file_path = "#{self.image_info_1}"
- Ali::Oss.delete_object(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path)
- end
- def get_image_info_1
- if self.image_info_1 != ""
- url = "http://#{Ali::Oss::CDN_URL_FOR_HOST}/#{self.image_info_1}"
- return url
- end
- return ""
- end
- def v_image_info_2=file
- unless file.blank?
- clear_image_info_2
- file_name = "#{UUID.new.generate[0...8].downcase}.jpg"
- file_path = "#{IMG_STORE_PATH}/#{file_name}"
- Ali::Oss.store(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path, file.read)
- self.image_info_2 = file_path
- self.save
- end
- end
- def clear_image_info_2
- file_path = "#{self.image_info_2}"
- Ali::Oss.delete_object(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path)
- end
- def get_image_info_2
- if self.image_info_2 != ""
- url = "http://#{Ali::Oss::CDN_URL_FOR_HOST}/#{self.image_info_2}"
- return url
- end
- return ""
- end
- def v_image_info_3=file
- unless file.blank?
- clear_image_info_3
- file_name = "#{UUID.new.generate[0...8].downcase}.jpg"
- file_path = "#{IMG_STORE_PATH}/#{file_name}"
- Ali::Oss.store(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path, file.read)
- self.image_info_3 = file_path
- self.save
- end
- end
- def clear_image_info_3
- file_path = "#{self.image_info_3}"
- Ali::Oss.delete_object(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path)
- end
- def get_image_info_3
- if self.image_info_3 != ""
- url = "http://#{Ali::Oss::CDN_URL_FOR_HOST}/#{self.image_info_3}"
- return url
- end
- return ""
- end
- def v_image_info_4=file
- unless file.blank?
- clear_image_info_4
- file_name = "#{UUID.new.generate[0...8].downcase}.jpg"
- file_path = "#{IMG_STORE_PATH}/#{file_name}"
- Ali::Oss.store(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path, file.read)
- self.image_info_4 = file_path
- self.save
- end
- end
- def clear_image_info_4
- file_path = "#{self.image_info_4}"
- Ali::Oss.delete_object(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path)
- end
- def get_image_info_4
- if self.image_info_4 != ""
- url = "http://#{Ali::Oss::CDN_URL_FOR_HOST}/#{self.image_info_4}"
- return url
- end
- return ""
- end
- def v_image_info_5=file
- unless file.blank?
- clear_image_info_5
- file_name = "#{UUID.new.generate[0...8].downcase}.jpg"
- file_path = "#{IMG_STORE_PATH}/#{file_name}"
- Ali::Oss.store(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path, file.read)
- self.image_info_5 = file_path
- self.save
- end
- end
- def clear_image_info_5
- file_path = "#{self.image_info_5}"
- Ali::Oss.delete_object(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path)
- end
- def get_image_info_5
- if self.image_info_5 != ""
- url = "http://#{Ali::Oss::CDN_URL_FOR_HOST}/#{self.image_info_5}"
- return url
- end
- return ""
- end
- def before_save
- if self.is_delete_v_image_info_1.to_i == 1
- clear_image_info_1
- self.image_info_1 = ""
- end
- if self.is_delete_v_image_info_2.to_i == 1
- clear_image_info_2
- self.image_info_2 = ""
- end
- if self.is_delete_v_image_info_3.to_i == 1
- clear_image_info_3
- self.image_info_3 = ""
- end
- if self.is_delete_v_image_info_4.to_i == 1
- clear_image_info_4
- self.image_info_4 = ""
- end
- if self.is_delete_v_image_info_5.to_i == 1
- clear_image_info_5
- self.image_info_5 = ""
- end
- end
- def after_destroy
- clear_image_info_1
- clear_image_info_2
- clear_image_info_3
- clear_image_info_4
- clear_image_info_5
- end
- end
|