autoImport('LocalUnionWallPhoto') autoImport('NetIngUnionWallPhoto_ScenicSpot') autoImport('NetIngUnionWallPhoto_Personal') autoImport('UnionWallPhotoCallback') autoImport('StringUtility') autoImport('PhotoFileInfo') UnionWallPhoto = class('UnionWallPhoto') UnionWallPhoto.thumbnailCoefficient = 0.1 UnionWallPhoto.ins = nil function UnionWallPhoto.Ins() if UnionWallPhoto.ins == nil then UnionWallPhoto.ins = UnionWallPhoto.new() end return UnionWallPhoto.ins end function UnionWallPhoto:Initialize() self.callback = UnionWallPhotoCallback.new() self.isGetingOForMakeT = {} self.isMakingTWhenGetThumbnail = {} self.willStopMakeThumbnailWhenGetThumbnail = {} self.isGettingO = {} -- outside call self.isGettingT = {} -- outside call end -- region personal -- progress_callback -- function (progressValue) -- end -- success_callback -- function (bytes, timestamp) -- end -- error_callback -- function (errorMessage) -- end function UnionWallPhoto:GetOriginImage_Personal(role_id, pos_index, timestamp, progress_callback, success_callback, error_callback, is_keep_previous_callback, is_through_unionwallphotocallback, extension) print(string.format('UnionWallPhoto:GetOriginImage_Personal\nrole_id=%s\npos_index=%s\ntimestamp=%s\nis_keep_previous_callback=%s\nextension=%s', tostring(role_id), tostring(pos_index), tostring(timestamp), tostring(is_keep_previous_callback), extension)) local photoID = self:GetPhotoID(role_id, pos_index, 'p') if not is_through_unionwallphotocallback then if not is_keep_previous_callback then self.callback:ClearCallback(photoID, true) end self.callback:RegisterCallback(photoID, progress_callback, success_callback, error_callback, true) if self:IsGettingO(photoID) then return end self.isGettingO[photoID] = 0 end local isLatestLocal = false local localTimestamp = LocalUnionWallPhoto.Ins():GetTimestamp(photoID, true) if localTimestamp ~= nil then isLatestLocal = localTimestamp >= timestamp else isLatestLocal = false end if isLatestLocal then local bytes = LocalUnionWallPhoto.Ins():Get(photoID, localTimestamp, true) if bytes == nil then local tempExtension = PhotoFileInfo.Extension PhotoFileInfo.Extension = PhotoFileInfo.OldExtension bytes = LocalUnionWallPhoto.Ins():Get(photoID, localTimestamp, true) PhotoFileInfo.Extension = tempExtension end self.isGettingO[photoID] = nil self.callback:FireSuccess(photoID, bytes, localTimestamp, true) if is_through_unionwallphotocallback then if success_callback ~= nil then success_callback(bytes, localTimestamp) end end else local isDownloading = NetIngUnionWallPhoto_Personal.Ins():IsDownloading(photoID, true) if not isDownloading then local downloadPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_Personal.Ins():GetTempDownloadPathOfLocal(photoID, true, extension) NetIngUnionWallPhoto_Personal.Ins():Download( role_id, pos_index, photoID, timestamp, function (x) local progressValue = x self.callback:FireProgress(photoID, progressValue, true) if is_through_unionwallphotocallback then if progress_callback ~= nil then progress_callback(progressValue) end end end, function () local bytes = FileHelper.LoadFile(downloadPath) LocalUnionWallPhoto.Ins():Save(photoID, bytes, timestamp, true, extension) FileHelper.DeleteFile(downloadPath) self.isGettingO[photoID] = nil self.callback:FireSuccess(photoID, bytes, timestamp, true) if is_through_unionwallphotocallback then if success_callback ~= nil then success_callback(bytes, timestamp) end end end, function (x) -- delete error temp download file if FileHelper.ExistFile(downloadPath) then FileHelper.DeleteFile(downloadPath) end local errorMessage = x self.isGettingO[photoID] = nil self.callback:FireError(photoID, errorMessage, true) if is_through_unionwallphotocallback then if error_callback ~= nil then error_callback(errorMessage) end end end, true, extension ) end end end function UnionWallPhoto:StopGetOriginImage_Personal(role_id, pos_index) local photoID = self:GetPhotoID(role_id, pos_index, 'p') NetIngUnionWallPhoto_Personal.Ins():StopDownload(photoID, true) end function UnionWallPhoto:GetThumbnail_Personal(role_id, pos_index, timestamp, progress_callback, success_callback, error_callback, is_keep_previous_callback, extension) print(string.format('UnionWallPhoto:GetThumbnail_Personal\nrole_id=%s\npos_index=%s\ntimestamp=%s\nis_keep_previous_callback=%s\nextension=%s', tostring(role_id), tostring(pos_index), tostring(timestamp), tostring(is_keep_previous_callback), extension)) local photoID = self:GetPhotoID(role_id, pos_index, 'p') if not is_keep_previous_callback then self.callback:ClearCallback(photoID, false) end self.callback:RegisterCallback(photoID, progress_callback, success_callback, error_callback, false) if self:IsGettingT(photoID) then return end self.isGettingT[photoID] = 0 local isLatestLocal = false local localTimestamp = LocalUnionWallPhoto.Ins():GetTimestamp(photoID, false) if localTimestamp ~= nil then isLatestLocal = localTimestamp >= timestamp else isLatestLocal = false end if isLatestLocal then local bytes = LocalUnionWallPhoto.Ins():Get(photoID, timestamp, false) if bytes == nil then local tempExtension = PhotoFileInfo.Extension PhotoFileInfo.Extension = PhotoFileInfo.OldExtension bytes = LocalUnionWallPhoto.Ins():Get(photoID, localTimestamp, true) PhotoFileInfo.Extension = tempExtension end self.isGettingT[photoID] = nil self.callback:FireSuccess(photoID, bytes, localTimestamp, false) else local isDownloading = NetIngUnionWallPhoto_Personal.Ins():IsDownloading(photoID, false) if not isDownloading and not self:IsGetingOForMakeT(photoID) and not self:IsMakingTWhenGetThumbnail(photoID) then local downloadPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_Personal.Ins():GetTempDownloadPathOfLocal(photoID, false, extension) NetIngUnionWallPhoto_Personal.Ins():Download( role_id, pos_index, photoID, timestamp, function (x) local progressValue = x self.callback:FireProgress(photoID, progressValue, false) end, function () local bytes = FileHelper.LoadFile(downloadPath) FileHelper.DeleteFile(downloadPath) LocalUnionWallPhoto.Ins():Save(photoID, bytes, timestamp, false, extension) self.isGettingT[photoID] = nil self.callback:FireSuccess(photoID, bytes, timestamp, false) end, function (x) -- delete error temp download file if FileHelper.ExistFile(downloadPath) then FileHelper.DeleteFile(downloadPath) end self.isGetingOForMakeT[photoID] = 0 -- If origin image exists on local, getting origin image will LRU. UnionWallPhotoHelper.Ins():GetOriginImage_Personal( role_id, pos_index, timestamp, nil, function (x, y) self.isGetingOForMakeT[photoID] = nil local bytesOfOriginImage = x local timestampOfOriginImage = y local texture = Texture2D(0,0,TextureFormat.RGB24,false) ImageConversion.LoadImage(texture, bytesOfOriginImage) self.isMakingTWhenGetThumbnail[photoID] = 0 FunctionTextureScale.ins:Scale(texture, UnionWallPhoto.thumbnailCoefficient, function (x) Object.DestroyImmediate(texture) local scaledTexture = x if self.willStopMakeThumbnailWhenGetThumbnail[photoID] ~= nil then Object.DestroyImmediate(scaledTexture) self.isMakingTWhenGetThumbnail[photoID] = nil self.willStopMakeThumbnailWhenGetThumbnail[photoID] = nil else local bytes = ImageConversion.EncodeToJPG(scaledTexture) Object.DestroyImmediate(scaledTexture) LocalUnionWallPhoto.Ins():Save(photoID, bytes, timestampOfOriginImage, false) self.isMakingTWhenGetThumbnail[photoID] = nil self.isGettingT[photoID] = nil self.callback:FireSuccess(photoID, bytes, timestampOfOriginImage, false) end end) end, function (x) self.isGetingOForMakeT[photoID] = nil local errorMessage = x self.isGettingT[photoID] = nil self.callback:FireError(photoID, errorMessage, false) end, true, true ) end, false, extension ) elseif self:IsMakingTWhenGetThumbnail(photoID) then self.willStopMakeThumbnailWhenGetThumbnail[photoID] = nil end end end function UnionWallPhoto:StopGetThumbnail_Personal(role_id, pos_index) local photoID = self:GetPhotoID(role_id, pos_index, 'p') NetIngUnionWallPhoto_Personal.Ins():StopDownload(photoID, false) if self:IsGetingOForMakeT(photoID) then UnionWallPhotoHelper.Ins():StopGetOriginImage_Personal(role_id, pos_index) elseif self:IsMakingTWhenGetThumbnail(photoID) then self.willStopMakeThumbnailWhenGetThumbnail[photoID] = 0 end end -- return value -- 1 bytes; 2 local timestamp function UnionWallPhoto:TryGetThumbnailFromLocal_Personal(role_id, pos_index, timestamp, is_force_timestamp) print(string.format('UnionWallPhoto:TryGetThumbnailFromLocal_Personal\nrole_id=%s\npos_index=%s\ntimestamp=%s\nis_force_timestamp=%s', tostring(role_id), tostring(pos_index), tostring(timestamp), tostring(is_force_timestamp))) local photoID = self:GetPhotoID(role_id, pos_index, 'p') local localTimestamp = LocalUnionWallPhoto.Ins():GetTimestamp(photoID, false) if is_force_timestamp and timestamp ~= localTimestamp then return nil end local retBytes, retTimestam = LocalUnionWallPhoto.Ins():Get(photoID, timestamp, false) if retBytes == nil then local tempExtension = PhotoFileInfo.Extension PhotoFileInfo.Extension = PhotoFileInfo.OldExtension retBytes, retTimestamp = LocalUnionWallPhoto.Ins():Get(photoID, timestamp, false) PhotoFileInfo.Extension = tempExtension end return retBytes, retTimestamp end function UnionWallPhoto:Clear_Personal(role_id, pos_index) print(string.format('UnionWallPhoto:Clear_Personal\nrole_id=%s\npos_index=%s', tostring(role_id), tostring(pos_index))) UnionWallPhotoHelper.Ins():StopGetOriginImage_Personal(role_id, pos_index) UnionWallPhotoHelper.Ins():StopGetThumbnail_Personal(role_id, pos_index) self:ClearLocal_Personal(role_id, pos_index) end function UnionWallPhoto:ClearLocal_Personal(role_id, pos_index) local photoID = self:GetPhotoID(role_id, pos_index, 'p') local downloadOPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_Personal.Ins():GetTempDownloadPathOfLocal(photoID, true) if FileHelper.ExistFile(downloadOPath) then FileHelper.DeleteFile(downloadOPath) end downloadOPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_Personal.Ins():GetTempDownloadPathOfLocal(photoID, true, PhotoFileInfo.OldExtension) if FileHelper.ExistFile(downloadOPath) then FileHelper.DeleteFile(downloadOPath) end local downloadTPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_Personal.Ins():GetTempDownloadPathOfLocal(photoID, false) if FileHelper.ExistFile(downloadTPath) then FileHelper.DeleteFile(downloadTPath) end downloadTPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_Personal.Ins():GetTempDownloadPathOfLocal(photoID, false, PhotoFileInfo.OldExtension) if FileHelper.ExistFile(downloadTPath) then FileHelper.DeleteFile(downloadTPath) end LocalUnionWallPhoto.Ins():Delete(photoID, true) LocalUnionWallPhoto.Ins():Delete(photoID, false) end -- region personal -- region scenic spot function UnionWallPhoto:GetOriginImage_ScenicSpot(role_id, scenic_spot_id, timestamp, progress_callback, success_callback, error_callback, is_keep_previous_callback, is_through_unionwallphotocallback, extension) print(string.format('UnionWallPhoto:GetOriginImage_ScenicSpot\nrole_id=%s\nscenic_spot_id=%s\ntimestamp=%s\nis_keep_previous_callback=%s', tostring(role_id), tostring(scenic_spot_id), tostring(timestamp), tostring(is_keep_previous_callback))) local photoID = self:GetPhotoID(role_id, scenic_spot_id, 's') if not is_through_unionwallphotocallback then if not is_keep_previous_callback then self.callback:ClearCallback(photoID, true) end self.callback:RegisterCallback(photoID, progress_callback, success_callback, error_callback, true) if self:IsGettingO(photoID) then return end self.isGettingO[photoID] = 0 end local isLatestLocal = false local localTimestamp = LocalUnionWallPhoto.Ins():GetTimestamp(photoID, true) if localTimestamp ~= nil then isLatestLocal = localTimestamp >= timestamp else isLatestLocal = false end if isLatestLocal then local bytes = LocalUnionWallPhoto.Ins():Get(photoID, localTimestamp, true) if bytes == nil then local tempExtension = PhotoFileInfo.Extension PhotoFileInfo.Extension = PhotoFileInfo.OldExtension bytes = LocalUnionWallPhoto.Ins():Get(photoID, localTimestamp, true) PhotoFileInfo.Extension = tempExtension end self.isGettingO[photoID] = nil self.callback:FireSuccess(photoID, bytes, localTimestamp, true) if is_through_unionwallphotocallback then if success_callback ~= nil then success_callback(bytes, localTimestamp) end end else local isDownloading = NetIngUnionWallPhoto_ScenicSpot.Ins():IsDownloading(photoID, true) if not isDownloading then local downloadPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_ScenicSpot.Ins():GetTempDownloadPathOfLocal(photoID, true, extension) NetIngUnionWallPhoto_ScenicSpot.Ins():Download( role_id, scenic_spot_id, photoID, timestamp, function (x) local progressValue = x self.callback:FireProgress(photoID, progressValue, true) if is_through_unionwallphotocallback then if progress_callback ~= nil then progress_callback(progressValue) end end end, function () local bytes = FileHelper.LoadFile(downloadPath) LocalUnionWallPhoto.Ins():Save(photoID, bytes, timestamp, true, extension) FileHelper.DeleteFile(downloadPath) self.isGettingO[photoID] = nil self.callback:FireSuccess(photoID, bytes, timestamp, true) if is_through_unionwallphotocallback then if success_callback ~= nil then success_callback(bytes, timestamp) end end end, function (x) -- delete error temp download file if FileHelper.ExistFile(downloadPath) then FileHelper.DeleteFile(downloadPath) end local errorMessage = x self.isGettingO[photoID] = nil self.callback:FireError(photoID, errorMessage, true) if is_through_unionwallphotocallback then if error_callback ~= nil then error_callback(errorMessage) end end end, true, extension ) end end end function UnionWallPhoto:IsGettingO(photoID) return self.isGettingO[photoID] ~= nil end function UnionWallPhoto:StopGetOriginImage_ScenicSpot(role_id, scenic_spot_id) local photoID = self:GetPhotoID(role_id, scenic_spot_id, 's') NetIngUnionWallPhoto_ScenicSpot.Ins():StopDownload(photoID, true) end function UnionWallPhoto:GetThumbnail_ScenicSpot(role_id, scenic_spot_id, timestamp, progress_callback, success_callback, error_callback, is_keep_previous_callback, extension) print(string.format('UnionWallPhoto:GetThumbnail_ScenicSpot\nrole_id=%s\nscenic_spot_id=%s\ntimestamp=%s\nis_keep_previous_callback=%s', tostring(role_id), tostring(scenic_spot_id), tostring(timestamp), tostring(is_keep_previous_callback))) local photoID = self:GetPhotoID(role_id, scenic_spot_id, 's') if not is_keep_previous_callback then self.callback:ClearCallback(photoID, false) end self.callback:RegisterCallback(photoID, progress_callback, success_callback, error_callback, false) if self:IsGettingT(photoID) then return end self.isGettingT[photoID] = 0 local isLatestLocal = false local localTimestamp = LocalUnionWallPhoto.Ins():GetTimestamp(photoID, false) if localTimestamp ~= nil then isLatestLocal = localTimestamp >= timestamp else isLatestLocal = false end if isLatestLocal then local bytes = LocalUnionWallPhoto.Ins():Get(photoID, timestamp, false) if bytes == nil then local tempExtension = PhotoFileInfo.Extension PhotoFileInfo.Extension = PhotoFileInfo.OldExtension bytes = LocalUnionWallPhoto.Ins():Get(photoID, localTimestamp, false) PhotoFileInfo.Extension = tempExtension end self.isGettingT[photoID] = nil self.callback:FireSuccess(photoID, bytes, localTimestamp, false) else local isDownloading = NetIngUnionWallPhoto_ScenicSpot.Ins():IsDownloading(photoID, false) if not isDownloading and not self:IsGetingOForMakeT(photoID) and not self:IsMakingTWhenGetThumbnail(photoID) then local downloadPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_ScenicSpot.Ins():GetTempDownloadPathOfLocal(photoID, false, extension) NetIngUnionWallPhoto_ScenicSpot.Ins():Download( role_id, scenic_spot_id, photoID, timestamp, function (x) local progressValue = x self.callback:FireProgress(photoID, progressValue, false) end, function () local bytes = FileHelper.LoadFile(downloadPath) FileHelper.DeleteFile(downloadPath) LocalUnionWallPhoto.Ins():Save(photoID, bytes, timestamp, false, extension) self.isGettingT[photoID] = nil self.callback:FireSuccess(photoID, bytes, timestamp, false) end, function (x) -- delete error temp download file if FileHelper.ExistFile(downloadPath) then FileHelper.DeleteFile(downloadPath) end self.isGetingOForMakeT[photoID] = 0 -- If origin image exists on local, getting origin image will LRU. UnionWallPhotoHelper.Ins():GetOriginImage_ScenicSpot( role_id, scenic_spot_id, timestamp, nil, function (x, y) self.isGetingOForMakeT[photoID] = nil local bytesOfOriginImage = x local timestampOfOriginImage = y local texture = Texture2D(0,0,TextureFormat.RGB24,false) ImageConversion.LoadImage(texture, bytesOfOriginImage) self.isMakingTWhenGetThumbnail[photoID] = 0 FunctionTextureScale.ins:Scale(texture, UnionWallPhoto.thumbnailCoefficient, function (x) Object.DestroyImmediate(texture) local scaledTexture = x if self.willStopMakeThumbnailWhenGetThumbnail[photoID] ~= nil then Object.DestroyImmediate(scaledTexture) self.isMakingTWhenGetThumbnail[photoID] = nil self.willStopMakeThumbnailWhenGetThumbnail[photoID] = nil else local bytes = ImageConversion.EncodeToJPG(scaledTexture) Object.DestroyImmediate(scaledTexture) LocalUnionWallPhoto.Ins():Save(photoID, bytes, timestampOfOriginImage, false) self.isMakingTWhenGetThumbnail[photoID] = nil self.isGettingT[photoID] = nil self.callback:FireSuccess(photoID, bytes, timestampOfOriginImage, false) end end) end, function (x) self.isGetingOForMakeT[photoID] = nil local errorMessage = x self.isGettingT[photoID] = nil self.callback:FireError(photoID, errorMessage, false) end, true, true ) end, false, extension ) elseif self:IsMakingTWhenGetThumbnail(photoID) then self.willStopMakeThumbnailWhenGetThumbnail[photoID] = nil end end end function UnionWallPhoto:IsGettingT(photoID) return self.isGettingT[photoID] ~= nil end function UnionWallPhoto:IsGetingOForMakeT(photoID) return self.isGetingOForMakeT[photoID] ~= nil end function UnionWallPhoto:IsMakingTWhenGetThumbnail(photoID) return self.isMakingTWhenGetThumbnail[photoID] ~= nil end function UnionWallPhoto:StopGetThumbnail_ScenicSpot(role_id, scenic_spot_id) local photoID = self:GetPhotoID(role_id, scenic_spot_id, 's') NetIngUnionWallPhoto_ScenicSpot.Ins():StopDownload(photoID, false) if self:IsGetingOForMakeT(photoID) then UnionWallPhotoHelper.Ins():StopGetOriginImage_ScenicSpot(role_id, scenic_spot_id) elseif self:IsMakingTWhenGetThumbnail(photoID) then self.willStopMakeThumbnailWhenGetThumbnail[photoID] = 0 end end -- return value -- 1 bytes; 2 local timestamp function UnionWallPhoto:TryGetThumbnailFromLocal_ScenicSpot(role_id, scenic_spot_id, timestamp, is_force_timestamp) print(string.format('UnionWallPhoto:TryGetThumbnailFromLocal_ScenicSpot\nrole_id=%s\nscenic_spot_id=%s\ntimestamp=%s\nis_force_timestamp=%s', tostring(role_id), tostring(scenic_spot_id), tostring(timestamp), tostring(is_force_timestamp))) local photoID = self:GetPhotoID(role_id, scenic_spot_id, 's') local localTimestamp = LocalUnionWallPhoto.Ins():GetTimestamp(photoID, false) if is_force_timestamp and timestamp ~= localTimestamp then return nil end local retBytes, retTimestamp = LocalUnionWallPhoto.Ins():Get(photoID, timestamp, false) if retBytes == nil then local tempExtension = PhotoFileInfo.Extension PhotoFileInfo.Extension = PhotoFileInfo.OldExtension retBytes, retTimestamp = LocalUnionWallPhoto.Ins():Get(photoID, timestamp, false) PhotoFileInfo.Extension = tempExtension end return retBytes, retTimestamp end function UnionWallPhoto:Clear_ScenicSpot(role_id, scenic_spot_id) print(string.format('UnionWallPhoto:Clear_ScenicSpot\nrole_id=%s\nscenic_spot_id=%s', tostring(role_id), tostring(scenic_spot_id))) UnionWallPhotoHelper.Ins():StopGetOriginImage_ScenicSpot(role_id, scenic_spot_id) UnionWallPhotoHelper.Ins():StopGetThumbnail_ScenicSpot(role_id, scenic_spot_id) self:ClearLocal_ScenicSpot(role_id, scenic_spot_id) end function UnionWallPhoto:ClearLocal_ScenicSpot(role_id, scenic_spot_id) local photoID = self:GetPhotoID(role_id, scenic_spot_id, 's') local downloadOPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_ScenicSpot.Ins():GetTempDownloadPathOfLocal(photoID, true) if FileHelper.ExistFile(downloadOPath) then FileHelper.DeleteFile(downloadOPath) end downloadOPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_ScenicSpot.Ins():GetTempDownloadPathOfLocal(photoID, true, PhotoFileInfo.OldExtension) if FileHelper.ExistFile(downloadOPath) then FileHelper.DeleteFile(downloadOPath) end local downloadTPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_ScenicSpot.Ins():GetTempDownloadPathOfLocal(photoID, false) if FileHelper.ExistFile(downloadTPath) then FileHelper.DeleteFile(downloadTPath) end downloadTPath = ApplicationHelper.persistentDataPath .. '/' .. NetIngUnionWallPhoto_ScenicSpot.Ins():GetTempDownloadPathOfLocal(photoID, false, PhotoFileInfo.OldExtensio) if FileHelper.ExistFile(downloadTPath) then FileHelper.DeleteFile(downloadTPath) end LocalUnionWallPhoto.Ins():Delete(photoID, true) LocalUnionWallPhoto.Ins():Delete(photoID, false) end -- region scenic spot function UnionWallPhoto:GetPhotoID(role_id, sid_or_pindex, p_or_s) return role_id .. '_' .. sid_or_pindex .. '_' .. p_or_s end function UnionWallPhoto:SeparatePhotoID(photo_id) local splitedPhotoID = StringUtility.Split(photo_id, '_') local roleID = tonumber(splitedPhotoID[1]) local pIndexOrSID = tonumber(splitedPhotoID[2]) local pOrS = splitedPhotoID[3] return roleID, pIndexOrSID, pOrS end function UnionWallPhoto:Clear(role_id) print(string.format('UnionWallPhoto:Clear\nrole_id=%s', role_id)) for k, v in pairs(self.isGettingO) do local photoID = k local roleID, pIndexOrSID, pOrS = self:SeparatePhotoID(photoID) if pOrS == 'p' then UnionWallPhotoHelper.Ins():StopGetOriginImage_Personal(roleID, pIndexOrSID) elseif pOrS == 's' then UnionWallPhotoHelper.Ins():StopGetOriginImage_ScenicSpot(roleID, pIndexOrSID) end end for k, v in pairs(self.isGettingT) do local photoID = k local roleID, pIndexOrSID, pOrS = self:SeparatePhotoID(photoID) if pOrS == 'p' then UnionWallPhotoHelper.Ins():StopGetThumbnail_Personal(roleID, pIndexOrSID) elseif pOrS == 's' then UnionWallPhotoHelper.Ins():StopGetThumbnail_ScenicSpot(roleID, pIndexOrSID) end end self:ClearLocal(role_id) end function UnionWallPhoto:ClearLocal(role_id) NetIngUnionWallPhoto_Personal.Ins():ClearTempDownloadFileOfRole(role_id) NetIngUnionWallPhoto_ScenicSpot.Ins():ClearTempDownloadFileOfRole(role_id) LocalUnionWallPhoto.Ins():DeleteAllPhotosOfRole(role_id) end