From 101714887c2bddfa9739b09e3545f6097ac8394c Mon Sep 17 00:00:00 2001 From: ellermister Date: Thu, 11 Mar 2021 11:50:23 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=B0=86=E8=8E=B7=E5=8F=96=E6=9B=B4?= =?UTF-8?q?=E6=96=B0EXIF=E5=9C=B0=E5=9D=80=E7=9A=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=87=BD=E6=95=B0=E6=9B=B4=E5=90=8D=E4=B8=BA?= =?UTF-8?q?=20GetEmptyLocationFilesByPage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2.页面API展示列表接口增加过滤默认空时间 --- models/file.go | 4 ++-- pkg/crontab/address.go | 2 +- pkg/filesystem/image.go | 37 ++++++++++++++++++++++--------------- pkg/filesystem/manage.go | 7 +++++-- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/models/file.go b/models/file.go index 9897e3f..86ea4b2 100644 --- a/models/file.go +++ b/models/file.go @@ -85,8 +85,8 @@ func GetFilesByIDs(ids []uint, uid uint) ([]File, error) { return files, result.Error } -// GetFilesWithPage 分页获取所有经纬度未更新文件 -func GetFilesWithPage(page uint, pageSize uint) ([]File, error) { +// GetEmptyLocationFilesByPage 分页获取所有经纬度未更新文件 +func GetEmptyLocationFilesByPage(page uint, pageSize uint) ([]File, error) { var files []File var result *gorm.DB var offset = int(page) * int(pageSize) - int(pageSize) diff --git a/pkg/crontab/address.go b/pkg/crontab/address.go index 14f2899..dea5a84 100644 --- a/pkg/crontab/address.go +++ b/pkg/crontab/address.go @@ -55,7 +55,7 @@ func syncPhotoLatLongToAddress() { page := 1 pageSize := 10 for true{ - files , _ := model.GetFilesWithPage(uint(page), uint(pageSize)) + files , _ := model.GetEmptyLocationFilesByPage(uint(page), uint(pageSize)) if len(files) <= 0 { break } diff --git a/pkg/filesystem/image.go b/pkg/filesystem/image.go index 2e133c7..7c5cbf1 100644 --- a/pkg/filesystem/image.go +++ b/pkg/filesystem/image.go @@ -94,24 +94,31 @@ func (fs *FileSystem) GenerateThumbnail(ctx context.Context, file *model.File) { currentPosition, err := source.Seek(0, 1) source.Seek(0,0) x, err := exif.Decode(source) + source.Seek(currentPosition, 0) if err != nil { util.Log().Warning("照片解析EXIF失败:%s", err) - } - source.Seek(currentPosition, 0) - ExifCamModel, _ := x.Get(exif.Model) // normally, don't ignore errors! - file.ExifModel,_ = ExifCamModel.StringVal() - ExifDateTime, _ := x.DateTime() - file.ExifDateTime = ExifDateTime - lat, long, _ := x.LatLong() - if lat > 0 && long > 0 { - file.ExifLatLong = fmt.Sprintf("%f,%f", lat, long) - } - util.Log().Debug("照片的经纬度:%f,%f", lat,long) - if file.Model.ID > 0 { - file.UpdatePicExifModel(file.ExifModel) - file.UpdatePicExifDateTime(file.ExifDateTime) + }else{ + ExifCamModel, _ := x.Get(exif.Model) + file.ExifModel,_ = ExifCamModel.StringVal() + + ExifDateTime, _ := x.DateTime() + if !ExifDateTime.IsZero() { + file.ExifDateTime = ExifDateTime + } + + lat, long, _ := x.LatLong() if lat > 0 && long > 0 { - file.UpdatePicExifLatLong(file.ExifLatLong) + file.ExifLatLong = fmt.Sprintf("%f,%f", lat, long) + } + util.Log().Debug("照片的经纬度:%f,%f", lat,long) + if file.Model.ID > 0 { + file.UpdatePicExifModel(file.ExifModel) + if !ExifDateTime.IsZero() { + file.UpdatePicExifDateTime(file.ExifDateTime) + } + if lat > 0 && long > 0 { + file.UpdatePicExifLatLong(file.ExifLatLong) + } } } diff --git a/pkg/filesystem/manage.go b/pkg/filesystem/manage.go index 7c1dae0..3ee5362 100644 --- a/pkg/filesystem/manage.go +++ b/pkg/filesystem/manage.go @@ -369,7 +369,10 @@ func (fs *FileSystem) listObjects(ctx context.Context, parent string, files []mo processedPath = parent } } - + ExifDateTimeText := "" + if !file.ExifDateTime.IsZero(){ + ExifDateTimeText = file.ExifDateTime.Format("2006-01-02 15:04:05") + } newFile := Object{ ID: hashid.HashID(file.ID, hashid.FileID), Name: file.Name, @@ -379,7 +382,7 @@ func (fs *FileSystem) listObjects(ctx context.Context, parent string, files []mo Type: "file", Date: file.CreatedAt.Format("2006-01-02 15:04:05"), ExifModel: file.ExifModel, - ExifDateTime: file.ExifDateTime.Format("2006-01-02 15:04:05"), + ExifDateTime: ExifDateTimeText, ExifLatLong: file.ExifLatLong, ExifAddress: file.ExifAddress, }