31 lines
863 B
Ruby
31 lines
863 B
Ruby
class AsiaExportStore
|
|
require "fileutils"
|
|
include Mongoid::Document
|
|
include Mongoid::Timestamps
|
|
|
|
field :tmp_id, :type => String # for syncing
|
|
field :filter_str, :type => String
|
|
field :status, :type => Integer, :default => 0 # 0 => preparing, 1 => generating, 2 => finish
|
|
field :finish_percent, :type => Float, :default => 0
|
|
StoreDir = "tmp/asia_db_export"
|
|
index({filter_str: 1}, { unique: false, background: true })
|
|
index({tmp_id: -1}, { unique: false, background: true })
|
|
before_create do
|
|
FileUtils.mkdir_p(StoreDir)
|
|
FileUtils.rm(self.file_path, :force => true)
|
|
end
|
|
before_destroy do
|
|
FileUtils.rm(self.file_path, :force => true)
|
|
end
|
|
|
|
def file_path
|
|
"#{StoreDir}/#{tmp_id}.xlsx"
|
|
end
|
|
def reinit
|
|
FileUtils.mkdir_p(StoreDir)
|
|
FileUtils.rm(self.file_path, :force => true)
|
|
self.status = 0
|
|
self.finish_percent = 0.0
|
|
self.save
|
|
end
|
|
end |