From 761e6c473f9d538e75fdb40f6d7685f16e74c9c0 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Tue, 8 Oct 2019 10:37:16 +0800 Subject: [PATCH] fix admins portal image setting --- app/libs/util/file_manage.rb | 15 +++++++++++---- app/services/admins/drag_portal_image_service.rb | 6 +++--- ...=> 20191007010405_resort_portal_image_data.rb} | 0 3 files changed, 14 insertions(+), 7 deletions(-) rename db/migrate/{20190930010405_resort_portal_image_data.rb => 20191007010405_resort_portal_image_data.rb} (100%) diff --git a/app/libs/util/file_manage.rb b/app/libs/util/file_manage.rb index b6cd79e57..822bfca4f 100644 --- a/app/libs/util/file_manage.rb +++ b/app/libs/util/file_manage.rb @@ -22,12 +22,19 @@ module Util::FileManage File.exist?(disk_filename(source.class, source.id)) end - def disk_file_url(source_type, source_id) - File.join('/images', relative_path, "#{source_type}", "#{source_id}") + def disk_file_url(source_type, source_id, suffix = nil) + t = ctime(source_type, source_id) + File.join('/images', relative_path, "#{source_type}", "#{source_id}#{suffix}") + "?t=#{t}" end def source_disk_file_url(source) - File.join('/images', relative_path, "#{source.class}", "#{source.id}") + disk_file_url(source.class, source.id) + end + + def ctime(source_type, source_id) + return nil unless exist?(source_type, source_id) + + File.ctime(disk_filename(source_type, source_id)).to_i end def disk_auth_filename(source_type, source_id, type) @@ -39,7 +46,7 @@ module Util::FileManage end def auth_file_url(source_type, source_id, type) - File.join('/images', relative_path, source_type, "#{source_id}#{type}") + disk_file_url(source_type, source_id, type) end def real_name_auth_file_url(source_id) diff --git a/app/services/admins/drag_portal_image_service.rb b/app/services/admins/drag_portal_image_service.rb index 6fe1ea86d..9f8adea38 100644 --- a/app/services/admins/drag_portal_image_service.rb +++ b/app/services/admins/drag_portal_image_service.rb @@ -14,7 +14,7 @@ class Admins::DragPortalImageService < ApplicationService images = PortalImage.all ActiveRecord::Base.transaction do - if after.blank? # 移动至末尾 + if after.blank? || move.id == after.id # 移动至末尾 total = images.count images.where('position > ?', move.position).update_all('position = position - 1') @@ -26,8 +26,8 @@ class Admins::DragPortalImageService < ApplicationService images.where('position >= ? AND position < ?', after.position, move.position).update_all('position = position + 1') move.update!(position: after.position) else # 后移 - images.where('position > ? AND position <= ?', move.position, after.position).update_all('position = position - 1') - move.update!(position: after.position) + images.where('position > ? AND position < ?', move.position, after.position).update_all('position = position - 1') + move.update!(position: after.position - 1) end end end diff --git a/db/migrate/20190930010405_resort_portal_image_data.rb b/db/migrate/20191007010405_resort_portal_image_data.rb similarity index 100% rename from db/migrate/20190930010405_resort_portal_image_data.rb rename to db/migrate/20191007010405_resort_portal_image_data.rb