mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-03 03:40:49 +08:00
init project
This commit is contained in:
67
app/libs/util/file_manage.rb
Normal file
67
app/libs/util/file_manage.rb
Normal file
@@ -0,0 +1,67 @@
|
||||
module Util::FileManage
|
||||
module_function
|
||||
|
||||
# 不同的类型扩展不同的目录
|
||||
def relative_path
|
||||
"avatars"
|
||||
end
|
||||
|
||||
def storage_path
|
||||
File.join(Rails.root, "public", "images", relative_path)
|
||||
end
|
||||
|
||||
def disk_filename(source_type, source_id, suffix=nil)
|
||||
File.join(storage_path, "#{source_type}", "#{source_id}#{suffix}")
|
||||
end
|
||||
|
||||
def source_disk_filename(source, suffix=nil)
|
||||
disk_filename(source.class.name, source.id, suffix)
|
||||
end
|
||||
|
||||
def exist?(source_type, source_id, suffix=nil)
|
||||
File.exist?(disk_filename(source_type, source_id, suffix))
|
||||
end
|
||||
|
||||
def exists?(source, suffix=nil)
|
||||
File.exist?(disk_filename(source.class, source.id, suffix))
|
||||
end
|
||||
|
||||
def disk_file_url(source_type, source_id, suffix = nil)
|
||||
t = ctime(source_type, source_id, suffix)
|
||||
File.join('/images', relative_path, "#{source_type}", "#{source_id}#{suffix}") + "?t=#{t}"
|
||||
end
|
||||
|
||||
def source_disk_file_url(source, suffix=nil)
|
||||
disk_file_url(source.class, source.id, suffix)
|
||||
end
|
||||
|
||||
def ctime(source_type, source_id, suffix)
|
||||
return nil unless exist?(source_type, source_id, suffix)
|
||||
|
||||
File.ctime(disk_filename(source_type, source_id, suffix)).to_i
|
||||
end
|
||||
|
||||
def disk_auth_filename(source_type, source_id, type)
|
||||
File.join(storage_path, "#{source_type}", "#{source_id}#{type}")
|
||||
end
|
||||
|
||||
def disk_real_name_auth_filename(source_id)
|
||||
disk_auth_filename('UserAuthentication', source_id, 'ID')
|
||||
end
|
||||
|
||||
def auth_file_url(source_type, source_id, type)
|
||||
disk_file_url(source_type, source_id, type)
|
||||
end
|
||||
|
||||
def real_name_auth_file_url(source_id)
|
||||
auth_file_url('UserAuthentication', source_id, 'ID')
|
||||
end
|
||||
|
||||
def disk_professional_auth_filename(source_id)
|
||||
disk_auth_filename('UserAuthentication', source_id, 'PRO')
|
||||
end
|
||||
|
||||
def professional_auth_file_url(source_id)
|
||||
auth_file_url('UserAuthentication', source_id, 'PRO')
|
||||
end
|
||||
end
|
||||
9
app/libs/util/redis.rb
Normal file
9
app/libs/util/redis.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
module Util::Redis
|
||||
class << self
|
||||
def online_user_count
|
||||
if Rails.cache.is_a?(ActiveSupport::Cache::RedisStore)
|
||||
Rails.cache.data.scan(0, match: 'cache:_session_id:*', count: 100000).last.uniq.size
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
27
app/libs/util/uuid.rb
Normal file
27
app/libs/util/uuid.rb
Normal file
@@ -0,0 +1,27 @@
|
||||
module Util
|
||||
module UUID
|
||||
module_function
|
||||
|
||||
DCODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z)
|
||||
|
||||
def time_uuid(format: '%Y%m%d%H%M%S', suffix: 8)
|
||||
"#{Time.zone.now.strftime(format)}#{Random.rand(10**suffix).to_i}"
|
||||
end
|
||||
|
||||
# 随机生成字符
|
||||
def generate_identifier(container, num, pre='')
|
||||
code = DCODES.sample(num).join
|
||||
if container == User
|
||||
while container.exists?(login: pre+code) do
|
||||
code = DCODES.sample(num).join
|
||||
end
|
||||
else
|
||||
while container.exists?(identifier: code) do
|
||||
code = DCODES.sample(num).join
|
||||
end
|
||||
end
|
||||
code
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user