|
|
package FileRelateDao
|
|
|
|
|
|
import (
|
|
|
"dsSzxy/Utils/CommonUtil"
|
|
|
"dsSzxy/Utils/ConfigUtil"
|
|
|
"dsSzxy/Utils/DbUtil"
|
|
|
"dsSzxy/models"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"github.com/xormplus/builder"
|
|
|
"net/url"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
var db = DbUtil.Engine
|
|
|
|
|
|
/**
|
|
|
功能:生成下载地址带中文名
|
|
|
*/
|
|
|
func GetFileDownLoadUrl(key string, originName string) string {
|
|
|
infix := "?response-content-disposition=attachment%3BfileName%2A%3DUTF-8%27%27"
|
|
|
downloadUrl := ConfigUtil.MinioDownloadPrefix + ConfigUtil.MinioBucket + "/" + key + infix + url.QueryEscape(url.QueryEscape(originName))
|
|
|
return downloadUrl
|
|
|
}
|
|
|
|
|
|
//文件记录
|
|
|
func FileRecord(fileName string, indentityId int32, personId int32, targetGroupId int32, tIdentityId int32, tPersonId int32, systemId int32, fileSize int32, extName string) {
|
|
|
var model models.TZhxyFile
|
|
|
model.FileId = CommonUtil.GetUUID()
|
|
|
model.FileName = fileName
|
|
|
model.FileSize = fileSize
|
|
|
model.BaseId = "-1"
|
|
|
model.BUse = 1
|
|
|
model.ExtName = extName
|
|
|
model.SystemId = systemId
|
|
|
model.TargetGroupId = targetGroupId
|
|
|
model.TargetIdentityId = tIdentityId
|
|
|
model.TargetPersonId = tPersonId
|
|
|
model.SourceIndentityId = indentityId
|
|
|
model.SourcePersonId = personId
|
|
|
model.RecordTime = time.Now()
|
|
|
c, err := GetFileTypeByExtName(extName)
|
|
|
if err == nil {
|
|
|
model.TypeId = int32(c)
|
|
|
} else {
|
|
|
model.TypeId = 0
|
|
|
}
|
|
|
_, err = db.Insert(model)
|
|
|
if err != nil {
|
|
|
fmt.Println(err)
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//修改文件名称
|
|
|
func FileUpdate(fileId string, fileName string) {
|
|
|
var myBuilder = builder.Dialect(builder.MYSQL).Update(builder.Eq{"file_name": fileName}).
|
|
|
From(`t_zhxy_file`).Where(builder.Eq{"file_id": fileId})
|
|
|
sql, _ := myBuilder.ToBoundSQL()
|
|
|
_, err := db.SQL(sql).Execute()
|
|
|
if err != nil {
|
|
|
fmt.Println(err.Error())
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//复制文件记录
|
|
|
func FileCopy(fileId string, sIdentityId int32, sPersonId int32, tIdentityId int32, tPersonId int32, tGroudpId int32) (bool, error) {
|
|
|
//1、查询这个文件原来是谁的
|
|
|
modelArray := make([]models.TZhxyFile, 0)
|
|
|
err := db.Where("file_id = ?", fileId).Limit(1, 1).Find(&modelArray)
|
|
|
if err != nil {
|
|
|
fmt.Println("在检索时发生错误:", err.Error())
|
|
|
return false, err
|
|
|
}
|
|
|
//2、拷贝一份
|
|
|
if len(modelArray) == 0 {
|
|
|
return false, errors.New("没有找到指定的file_id")
|
|
|
}
|
|
|
model := modelArray[0]
|
|
|
model.FileId = CommonUtil.GetUUID()
|
|
|
model.SourceIndentityId = sIdentityId
|
|
|
model.SourcePersonId = sPersonId
|
|
|
model.TargetIdentityId = tIdentityId
|
|
|
model.TargetPersonId = tPersonId
|
|
|
model.TargetGroupId = tGroudpId
|
|
|
model.RecordTime = time.Now()
|
|
|
_, err = db.Insert(model)
|
|
|
if err != nil {
|
|
|
fmt.Println(err.Error())
|
|
|
return false, errors.New("写入数据库时发生错误")
|
|
|
}
|
|
|
return true, nil
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
功能:获取文件扩展名对应的类型ID
|
|
|
*/
|
|
|
func GetFileTypeByExtName(extName string) (int64, error) {
|
|
|
var myBuilder = builder.Dialect(builder.MYSQL).Select(`type_id`).
|
|
|
From(`t_zhxy_file_type_ext`).Where(builder.Eq{"ext_name": extName})
|
|
|
sql, _ := myBuilder.ToBoundSQL()
|
|
|
res, _ := db.SQL(sql).Query().List()
|
|
|
if len(res) == 0 {
|
|
|
return 0, nil
|
|
|
}
|
|
|
return res[0]["type_id"].(int64), nil
|
|
|
}
|
|
|
|
|
|
//增加云盘结点
|
|
|
func AddNode(identityId int32, personId int32, parentNodeId string, nodeName string) (bool, error) {
|
|
|
var model models.TZhxyClouddiskTree
|
|
|
model.NodeId = CommonUtil.GetUUID()
|
|
|
model.NodeName = nodeName
|
|
|
model.IndentityId = identityId
|
|
|
model.PersonId = personId
|
|
|
model.ParentId = parentNodeId
|
|
|
_, err := db.Insert(model)
|
|
|
if err != nil {
|
|
|
return false, err
|
|
|
} else {
|
|
|
return true, nil
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//更新云盘结点名称
|
|
|
func UpdateNode(nodeId string, nodeName string) (bool, error) {
|
|
|
sql := `update t_zhxy_clouddisk_tree set node_name=? where node_id=?`
|
|
|
_, err := db.SQL(sql, nodeName, nodeId).Execute()
|
|
|
if err != nil {
|
|
|
return false, err
|
|
|
}
|
|
|
return true, nil
|
|
|
}
|
|
|
|
|
|
//删除云盘结点
|
|
|
func DelNode(nodeId string) (bool, error) {
|
|
|
sql := `delete from t_zhxy_clouddisk_tree where node_id=?`
|
|
|
_, err := db.SQL(sql, nodeId).Execute()
|
|
|
if err != nil {
|
|
|
return false, err
|
|
|
}
|
|
|
return true, nil
|
|
|
}
|
|
|
|
|
|
//增加云盘结点文件
|
|
|
func addNodeFile(nodeId string, fileId string) {
|
|
|
|
|
|
}
|
|
|
|
|
|
//删除云盘结点文件
|
|
|
func delNodeFile(nodeId string, fileId string) {
|
|
|
|
|
|
}
|