package svc

import (
	"time"

	"applet/app/db"
	"applet/app/db/model"
	"applet/app/md"
	"applet/app/utils"

	"github.com/gin-gonic/gin"
)

func FileSave(c *gin.Context, f *md.FileCallback) error {
	// todo 校验时间是否超时, 目前没必要做时间校验,如果已经上传,但超时,那么会造成三方存储存在,可我方表不存在,导致冗余
	// 校验签名是否正确
	//if qiniu.Sign(f.Time) != f.Sign {
	//	return e.NewErrCode(e.ERR_SIGN)
	//}
	newFile := &model.SysFile{
		ParentFid: utils.StrToInt64(f.DirId),
		FileType:  1,
		ShowName:  f.FileName,
		SaveName:  f.FileName,
		Uid:       utils.StrToInt(f.Uid),
		Ext:       utils.FileExt(f.FileName),
		Hash:      f.Hash,
		Mime:      f.Mime,
		Provider:  f.Provider,
		Width:     utils.StrToInt(f.Width),
		Height:    utils.StrToInt(f.Height),
		Bucket:    f.Bucket,
		FileSize:  utils.StrToInt64(f.FileSize),
		CreateAt:  int(time.Now().Unix()),
	}

	file, _ := db.FileGetByPFidAndName(db.DBs[c.GetString("mid")], f.DirId, f.FileName)
	if file != nil {
		newFile.Fid = file.Fid
		// 更新数据
		return db.FileUpdate(db.DBs[c.GetString("mid")], newFile)
	}
	return db.FileInsert(db.DBs[c.GetString("mid")], newFile)
}
