| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- # encoding:utf-8
- #会员表
- require 'digest/md5'
- class User < ActiveRecord::Base
- has_paper_trail
- self.table_name = "users"
- belongs_to :parent_signup_channel, :foreign_key => :signup_channel_id
- after_create :after_create
- after_destroy :after_destroy
- attr_accessor :sub, :wx_user, :v_head, :getNickname, :getProvince
- validates :tel , uniqueness: true
- # validates :pwd , :trade_pwd , presence: true
- # vaildates_numericality_of :tel
- # def wx_user
- # wx_user = WxUser.where("user_id = ?", self.id).first
- # if !wx_user.blank?
- # return wx_user.nickname
- # else
- # return "未关联"
- # end
- # end
- # def sub
- # wx_user = WxUser.where("user_id = ?", self.id).first
- # if !wx_user.blank?
- # return wx_user.subscribe
- # end
- # end
- def after_create
- md5_trade_pwd = Digest::MD5.hexdigest(self.trade_pwd)
- self.trade_pwd = md5_trade_pwd
- self.save
- end
- SEX_ENUM= [["未知","0"], ["男性","1"], ["女性", "2"]]
- IMG_STORE_PATH = "user"
- rails_admin do
- navigation_label '用户管理'
- weight -400
- list do
- filters [:id,:tel]
- # include_all_fields
- field :id
- field :nickname
- field :getNickname
- field :real_name
- field :sex, :enum do
- enum do
- SEX_ENUM
- end
- end
- # field :age
- field :head do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_head,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px',
- :onClick => "javascript:window.open('#{bindings[:object].get_head}')"})
- end
- end
- field :tel
- field :province
- field :city
- field :signup_channel_id
- # field :sign_up_channel
- field :signup_ip
- field :invite_id
- field :age
- field :is_black_user
- field :created_at
- # field :updated_at
- end
- show do
- field :id
- field :nickname
- field :real_name
- field :identity_card
- field :is_certification
- field :tel
- # field :pwd
- # field :trade_pwd
- field :birthday
- field :city
- field :country
- field :province
- field :sex, :enum do
- enum do
- SEX_ENUM
- end
- end
- field :age
- field :head do
- formatted_value do
- bindings[:view].tag(:img,{:src => bindings[:object].get_head,
- :style => 'width: 100px;height: 100px;cursor: pointer;display: block;max-width: 100px',
- :onClick => "javascript:window.open('#{bindings[:object].get_head}')"})
- end
- end
- field :invite_id
- field :signup_channel_id
- field :signup_ip
- field :age
- field :is_black_user
- field :bank_name
- field :bank_account
- field :account_name
- field :created_at
- field :updated_at
- end
- edit do
- field :real_name
- field :identity_card
- field :is_certification
- field :tel
- #field :pwd
- field :trade_pwd
- field :birthday
- field :nickname
- field :city
- field :country
- field :province
- field :sex, :enum do
- enum do
- SEX_ENUM
- end
- end
- field :age
- field :v_head, :file_upload do
- pretty_value do
- bindings[:view].tag(:img, {:src => bindings[:object].get_head,
- :class => 'preview'})
- end
- end
- field :invite_id
- field :signup_ip
- field :signup_channel_id
- field :bank_name
- field :bank_account
- field :account_name
- field :is_black_user
- end
-
- end
- def get_head
- url = "http://#{Ali::Oss::CDN_URL_FOR_HOST}/#{self.head}"
- return url
- end
- def v_head=file
- unless file.blank?
- clear_head
- 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.head = file_path
- self.save
- end
- end
- def clear_head
- file_path = "#{self.head}"
- Ali::Oss.delete_object(Ali::Oss::BUCKET_NAME_PUBLIC_READ, file_path)
- end
- def after_destroy
- clear_head
- end
- def getProvince
- if self.province.blank?
- wx_user = WxUser.where("user_id =?", self.id).first
- if !wx_user.blank?
- self.signup_channel_id = wx_user.parent_signup_channel
- self.save
- end
- end
- return self.province
- end
- def getNickname
- needUpdate = false
- wxUser = WxUser.where("user_id = ?", self.id).first
- return "-" if wxUser.blank?
- if self.nickname == "" && wxUser.nickname != ""
- self.nickname = wxUser.nickname
- needUpdate = true if !needUpdate
- end
- if self.sex == 0 && wxUser.sex != 0
- self.sex = wxUser.sex
- needUpdate = true if !needUpdate
- end
- if self.country = "" && wxUser.country != ""
- self.country = wxUser.country
- needUpdate = true if !needUpdate
- end
- if self.province = "" && wxUser.province != ""
- self.province = wxUser.province
- needUpdate = true if !needUpdate
- end
- if self.city = "" && wxUser.city != ""
- self.city = wxUser.city
- needUpdate = true if !needUpdate
- end
- self.save if needUpdate
- return self.nickname
- end
- end
|