|
@@ -6,9 +6,13 @@ import (
|
|
|
"io"
|
|
|
"iot_manager_service/app/system/dao"
|
|
|
"iot_manager_service/app/system/model"
|
|
|
+ "iot_manager_service/config"
|
|
|
"iot_manager_service/util/cache"
|
|
|
"iot_manager_service/util/common"
|
|
|
"iot_manager_service/util/logger"
|
|
|
+ "iot_manager_service/util/minio"
|
|
|
+ "mime/multipart"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -181,3 +185,48 @@ func (s *userService) GetUserName(tenantId int, id int64) string {
|
|
|
func (s *userService) IsExist(user dao.User) bool {
|
|
|
return user.IsExist()
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+func (s *userService) UpAvatar(tenantId int, userId int64, fileHeader *multipart.FileHeader) *model.Link {
|
|
|
+
|
|
|
+ dao := &dao.User{TenantId: tenantId, ID: userId}
|
|
|
+ dao.GetAvatar()
|
|
|
+ oldAvatar := dao.Avatar
|
|
|
+
|
|
|
+ file, err := fileHeader.Open()
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ logger.Logger.Errorf("UploadFile fileHeader.Open fail, err = %s", err.Error())
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ fileNameArray := strings.Split(fileHeader.Filename, ".")
|
|
|
+ if len(fileNameArray) < 2 {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ bucket := fmt.Sprintf("picture-%d", tenantId)
|
|
|
+ objectName := "user/" + common.RandomString2(16) + "_" + common.RandomString2(6) + "." + fileNameArray[len(fileNameArray)-1]
|
|
|
+ err = minio.PutFile(minio.FileObject{
|
|
|
+ Bucket: bucket,
|
|
|
+ ObjectName: objectName,
|
|
|
+ ObjectSize: fileHeader.Size,
|
|
|
+ Reader: file,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ logger.Logger.Errorf("UploadFile PutFile fail, err = %s", err.Error())
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ if oldAvatar != "" {
|
|
|
+ old := strings.Split(oldAvatar, "user/")
|
|
|
+ oldName := "user/" + old[1]
|
|
|
+ minio.DeleteObject(bucket, oldName)
|
|
|
+ }
|
|
|
+
|
|
|
+ url := config.Instance().Minio.Link + "/" + bucket + "/" + objectName
|
|
|
+ dao.Avatar = url
|
|
|
+ dao.Update()
|
|
|
+ fmt.Printf("\n=====user:%+v\n", dao)
|
|
|
+ var link = model.Link{Link: url}
|
|
|
+ return &link
|
|
|
+}
|