From 78ce8c41bd72b01bb643ec705aa7121c6e6c2101 Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Thu, 26 Oct 2023 11:29:58 +0800 Subject: [PATCH 01/22] info --- model/gmodel/fs_user_info_logic.go | 40 +++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/model/gmodel/fs_user_info_logic.go b/model/gmodel/fs_user_info_logic.go index 31101b78..e88a5969 100644 --- a/model/gmodel/fs_user_info_logic.go +++ b/model/gmodel/fs_user_info_logic.go @@ -50,7 +50,29 @@ func (m *FsUserInfoModel) MergeMetadata(userId int64, meta any) error { return fssql.MetadataModulePATCH(m.db, "profile", FsUserInfo{}, meta, "user_id = ?", userId) } -func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId int64) (map[string]any, error) { +func (m *FsUserInfoModel) GetDefaultProfile(ctx context.Context, tname string) (map[string]any, error) { + var baseinfo map[string]any + condUser := "user_id = 0 and guest_id = 0" + rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$.') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", tname, condUser) + err := m.db.WithContext(ctx).Raw(rawsql).Take(&baseinfo).Error + if err != nil { + return nil, err + } + + v, ok := baseinfo["query"].(string) + if !ok { + return nil, fmt.Errorf("default userinfo profile is not exists") + } + + var info map[string]any + err = json.Unmarshal([]byte(v), &info) + if err != nil { + return nil, err + } + return info, nil +} + +func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId int64, guestId int64) (map[string]any, error) { var baseinfo map[string]any tname := fssql.GetGormTableName(m.db, FsUserInfo{}) @@ -61,7 +83,14 @@ func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId in pkey = "." + pkey } - rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$%s') as query from %s where user_id = ? and module = 'profile' order by ctime DESC limit 1", pkey, tname) + var condUser string + if userId == 0 { + condUser = fmt.Sprintf("user_id = 0 and guest_id = %d", guestId) + } else { + condUser = fmt.Sprintf("user_id = %d", userId) + } + + rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$%s') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", pkey, tname, condUser) err := m.db.WithContext(ctx).Raw(rawsql, userId).Take(&baseinfo).Error if err != nil { return nil, err @@ -69,7 +98,7 @@ func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId in v, ok := baseinfo["query"].(string) if !ok { - return nil, nil + return m.GetDefaultProfile(ctx, tname) } var info map[string]any @@ -77,6 +106,11 @@ func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId in if err != nil { return nil, err } + + if len(info) == 0 { + return m.GetDefaultProfile(ctx, tname) + } + return info, nil } func (m *FsUserInfoModel) FindOneByUser(ctx context.Context, userId, guestId int64, module string) (resp *FsUserInfo, err error) { From 21196c62ee3aa8d64b2448b090dc48c436369323 Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Thu, 26 Oct 2023 11:41:35 +0800 Subject: [PATCH 02/22] info --- model/gmodel/fs_user_info_logic.go | 29 ------------------- .../internal/logic/usergetprofilelogic.go | 2 +- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/model/gmodel/fs_user_info_logic.go b/model/gmodel/fs_user_info_logic.go index e88a5969..91a4d706 100644 --- a/model/gmodel/fs_user_info_logic.go +++ b/model/gmodel/fs_user_info_logic.go @@ -121,32 +121,3 @@ func (m *FsUserInfoModel) FindOneByUser(ctx context.Context, userId, guestId int } return resp, err } -func (m *FsUserInfoModel) GetProfileByUserIdGuestId(ctx context.Context, pkey string, userId, guestId int64) (map[string]any, error) { - - var baseinfo map[string]any - tname := fssql.GetGormTableName(m.db, FsUserInfo{}) - - if pkey == "." { - pkey = "" - } else { - pkey = "." + pkey - } - - rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$%s') as query from %s where user_id = ? and guest_id = ? and module = 'profile' order by ctime DESC limit 1", pkey, tname) - err := m.db.WithContext(ctx).Raw(rawsql, userId, guestId).Take(&baseinfo).Error - if err != nil { - return nil, err - } - - v, ok := baseinfo["query"].(string) - if !ok { - return nil, nil - } - - var info map[string]any - err = json.Unmarshal([]byte(v), &info) - if err != nil { - return nil, err - } - return info, nil -} diff --git a/server/info/internal/logic/usergetprofilelogic.go b/server/info/internal/logic/usergetprofilelogic.go index 9173cbf3..b94f5caa 100644 --- a/server/info/internal/logic/usergetprofilelogic.go +++ b/server/info/internal/logic/usergetprofilelogic.go @@ -34,7 +34,7 @@ func (l *UserGetProfileLogic) UserGetProfile(req *types.QueryProfileRequest, use // 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data) // userinfo 传入值时, 一定不为null - profileBase, err := l.svcCtx.AllModels.FsUserInfo.GetProfile(l.ctx, req.TopKey, userinfo.UserId) + profileBase, err := l.svcCtx.AllModels.FsUserInfo.GetProfile(l.ctx, req.TopKey, userinfo.UserId, userinfo.GuestId) if err != nil { return resp.SetStatusWithMessage(basic.CodeApiErr, err.Error()) } From aef2ee18dd12950044aebc1bfadfc758f82e6e10 Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Thu, 26 Oct 2023 11:43:19 +0800 Subject: [PATCH 03/22] info --- model/gmodel/fs_user_info_logic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/gmodel/fs_user_info_logic.go b/model/gmodel/fs_user_info_logic.go index 91a4d706..13dc054c 100644 --- a/model/gmodel/fs_user_info_logic.go +++ b/model/gmodel/fs_user_info_logic.go @@ -91,7 +91,7 @@ func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId in } rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$%s') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", pkey, tname, condUser) - err := m.db.WithContext(ctx).Raw(rawsql, userId).Take(&baseinfo).Error + err := m.db.WithContext(ctx).Raw(rawsql).Take(&baseinfo).Error if err != nil { return nil, err } From f9ae25ace59308f84c4e907dd9d4cd6e7462f5c8 Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Thu, 26 Oct 2023 11:44:12 +0800 Subject: [PATCH 04/22] info --- model/gmodel/fs_user_info_logic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/gmodel/fs_user_info_logic.go b/model/gmodel/fs_user_info_logic.go index 13dc054c..8a446689 100644 --- a/model/gmodel/fs_user_info_logic.go +++ b/model/gmodel/fs_user_info_logic.go @@ -53,7 +53,7 @@ func (m *FsUserInfoModel) MergeMetadata(userId int64, meta any) error { func (m *FsUserInfoModel) GetDefaultProfile(ctx context.Context, tname string) (map[string]any, error) { var baseinfo map[string]any condUser := "user_id = 0 and guest_id = 0" - rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$.') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", tname, condUser) + rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$.*') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", tname, condUser) err := m.db.WithContext(ctx).Raw(rawsql).Take(&baseinfo).Error if err != nil { return nil, err From a6cdd880c882a603e1a122d0547e9a4faab6466f Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Thu, 26 Oct 2023 11:45:52 +0800 Subject: [PATCH 05/22] info --- model/gmodel/fs_user_info_logic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/gmodel/fs_user_info_logic.go b/model/gmodel/fs_user_info_logic.go index 8a446689..23304365 100644 --- a/model/gmodel/fs_user_info_logic.go +++ b/model/gmodel/fs_user_info_logic.go @@ -53,7 +53,7 @@ func (m *FsUserInfoModel) MergeMetadata(userId int64, meta any) error { func (m *FsUserInfoModel) GetDefaultProfile(ctx context.Context, tname string) (map[string]any, error) { var baseinfo map[string]any condUser := "user_id = 0 and guest_id = 0" - rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$.*') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", tname, condUser) + rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", tname, condUser) err := m.db.WithContext(ctx).Raw(rawsql).Take(&baseinfo).Error if err != nil { return nil, err From 639e9f8d4acae0226d482e4f8055e83534cc8286 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 14:35:22 +0800 Subject: [PATCH 06/22] =?UTF-8?q?fix:=E5=89=8D=E5=8F=B0=E4=BB=8Elogo?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AD=98=E5=82=A8=E4=B8=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=B4=A0=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home-user-auth/internal/handler/routes.go | 5 + .../handler/userlogodatasethandler.go | 35 +++++++ .../internal/logic/userlogodatasetlogic.go | 97 +++++++++++++++++++ server/home-user-auth/internal/types/types.go | 4 + server_api/home-user-auth.api | 34 ++++--- 5 files changed, 163 insertions(+), 12 deletions(-) create mode 100644 server/home-user-auth/internal/handler/userlogodatasethandler.go create mode 100644 server/home-user-auth/internal/logic/userlogodatasetlogic.go diff --git a/server/home-user-auth/internal/handler/routes.go b/server/home-user-auth/internal/handler/routes.go index d8855f3a..4524f011 100644 --- a/server/home-user-auth/internal/handler/routes.go +++ b/server/home-user-auth/internal/handler/routes.go @@ -72,6 +72,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { Path: "/api/user/logo-templatetag-set", Handler: UserLogoTemplateTagSetHandler(serverCtx), }, + { + Method: http.MethodPost, + Path: "/api/user/logo-data-set", + Handler: UserLogoDataSetHandler(serverCtx), + }, }, ) } diff --git a/server/home-user-auth/internal/handler/userlogodatasethandler.go b/server/home-user-auth/internal/handler/userlogodatasethandler.go new file mode 100644 index 00000000..772b3df5 --- /dev/null +++ b/server/home-user-auth/internal/handler/userlogodatasethandler.go @@ -0,0 +1,35 @@ +package handler + +import ( + "net/http" + "reflect" + + "fusenapi/utils/basic" + + "fusenapi/server/home-user-auth/internal/logic" + "fusenapi/server/home-user-auth/internal/svc" + "fusenapi/server/home-user-auth/internal/types" +) + +func UserLogoDataSetHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + + var req types.UserLogoDataSetReq + userinfo, err := basic.RequestParse(w, r, svcCtx, &req) + if err != nil { + return + } + + // 创建一个业务逻辑层实例 + l := logic.NewUserLogoDataSetLogic(r.Context(), svcCtx) + + rl := reflect.ValueOf(l) + basic.BeforeLogic(w, r, rl) + + resp := l.UserLogoDataSet(&req, userinfo) + + if !basic.AfterLogic(w, r, rl, resp) { + basic.NormalAfterLogic(w, r, resp) + } + } +} diff --git a/server/home-user-auth/internal/logic/userlogodatasetlogic.go b/server/home-user-auth/internal/logic/userlogodatasetlogic.go new file mode 100644 index 00000000..c0275d23 --- /dev/null +++ b/server/home-user-auth/internal/logic/userlogodatasetlogic.go @@ -0,0 +1,97 @@ +package logic + +import ( + "errors" + "fusenapi/model/gmodel" + "fusenapi/utils/auth" + "fusenapi/utils/basic" + "fusenapi/utils/s3url_to_s3id" + "time" + + "context" + + "fusenapi/server/home-user-auth/internal/svc" + "fusenapi/server/home-user-auth/internal/types" + + "github.com/zeromicro/go-zero/core/logc" + "github.com/zeromicro/go-zero/core/logx" + "gorm.io/gorm" +) + +type UserLogoDataSetLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewUserLogoDataSetLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserLogoDataSetLogic { + return &UserLogoDataSetLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +// 处理进入前逻辑w,r +// func (l *UserLogoDataSetLogic) BeforeLogic(w http.ResponseWriter, r *http.Request) { +// } + +func (l *UserLogoDataSetLogic) UserLogoDataSet(req *types.UserLogoDataSetReq, userinfo *auth.UserInfo) (resp *basic.Response) { + // 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data) + // userinfo 传入值时, 一定不为null + if userinfo.IsOnlooker() { + // 如果是,返回未授权的错误码 + return resp.SetStatus(basic.CodeUnAuth) + } + var userId int64 + var guestId int64 + + // 检查用户是否是游客 + if userinfo.IsGuest() { + // 如果是,使用游客ID和游客键名格式 + guestId = userinfo.GuestId + } else { + // 否则,使用用户ID和用户键名格式 + userId = userinfo.UserId + } + var logoData = gmodel.FsPreprocessLogo{} + result := l.svcCtx.MysqlConn.Model(&gmodel.FsPreprocessLogo{}).Where("id = ?", req.LogoDataId).Take(&logoData) + err := result.Error + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + logc.Errorf(l.ctx, "UserLogoDataSet logoData find err:%+v", err) + basic.CodeApiErr.Message = "logo data not find" + return resp.SetStatus(basic.CodeApiErr) + } + return resp.SetStatus(basic.CodeApiErr) + } + // 新增素材 + var module = "logo" + var nowTime = time.Now().UTC() + var resourceId = s3url_to_s3id.GetS3ResourceIdFormUrl(*logoData.ResourceUrl) + // 新增素材记录 + materialInfo := gmodel.FsUserMaterial{ + Module: &module, + UserId: &userId, + GuestId: &guestId, + ResourceId: &resourceId, + ResourceUrl: logoData.ResourceUrl, + Ctime: &nowTime, + } + resCreate := l.svcCtx.MysqlConn.Create(&materialInfo) + err = resCreate.Error + if err != nil { + logc.Errorf(l.ctx, "UserLogoDataSet logoData find err:%+v", err) + return resp.SetStatus(basic.CodeApiErr) + } + + // 返回成功的响应和上传URL + return resp.SetStatus(basic.CodeOK, map[string]interface{}{ + "user_material_id": materialInfo.Id, + }) +} + +// 处理逻辑后 w,r 如:重定向, resp 必须重新处理 +// func (l *UserLogoDataSetLogic) AfterLogic(w http.ResponseWriter, r *http.Request, resp *basic.Response) { +// // httpx.OkJsonCtx(r.Context(), w, resp) +// } diff --git a/server/home-user-auth/internal/types/types.go b/server/home-user-auth/internal/types/types.go index 00d9fa47..7f95ec3f 100644 --- a/server/home-user-auth/internal/types/types.go +++ b/server/home-user-auth/internal/types/types.go @@ -5,6 +5,10 @@ import ( "fusenapi/utils/basic" ) +type UserLogoDataSetReq struct { + LogoDataId int64 `form:"logo_data_id"` +} + type UserLogoTemplateTagSetReq struct { TemplateTag string `form:"template_tag"` TemplateTagColorIndex int64 `form:"template_tag_color_index"` diff --git a/server_api/home-user-auth.api b/server_api/home-user-auth.api index 5bc06711..ca794534 100644 --- a/server_api/home-user-auth.api +++ b/server_api/home-user-auth.api @@ -10,60 +10,70 @@ info ( import "basic.api" service home-user-auth { - + // @handler UserRegisterHandler // post /api/user/register(RequestUserRegister) returns (response); //用户字体 @handler UserFontsHandler get /api/user/fonts(request) returns (response); - + //状态配置 @handler UserStatusConfigHandler get /api/user/status-config(request) returns (response); - + //联系服务 @handler UserContactServiceHandler post /api/user/contact-service (RequestContactService) returns (response); - + // @handler UserOderListHandler // get /api/user/order-list(RequestOrderId) returns (response); //删除订单 @handler UserOderDeleteHandler post /api/user/order-delete(RequestOrderId) returns (response); - + //订单列表 @handler UserOrderListHandler get /api/user/order-list (UserOrderListReq) returns (response); - + //删除订单 @handler UserOrderDeleteHandler get /api/user/order-delete (UserOrderDeleteReq) returns (response); - + //取消订单 @handler UserOrderCancelHandler get /api/user/order-cancel (UserOrderCancelReq) returns (response); - + // 用户logo列表 @handler UserLogoListHandler get /api/user/logo-list (UserLogoListReq) returns (response); - + // 再来一单 @handler UserAgainOrderHandler get /api/user/one-more-order (UserAgainOrderReq) returns (response); - + // 保存商户信息 @handler UserInfoSetHandler post /api/user/set_user_info (UserInfoSetReq) returns (response); - + // 用户logo设置当前 @handler UserLogoSetHandler post /api/user/logo-set (UserLogoSetReq) returns (response); - + // 用户logo模版信息 @handler UserLogoTemplateTagSetHandler post /api/user/logo-templatetag-set (UserLogoTemplateTagSetReq) returns (response); + + // 用户logo数据设置用户logo素材 + @handler UserLogoDataSetHandler + post /api/user/logo-data-set (UserLogoDataSetReq) returns (response); } +type ( + UserLogoDataSetReq { + LogoDataId int64 `form:"logo_data_id"` + } +) + type ( UserLogoTemplateTagSetReq { TemplateTag string `form:"template_tag"` From c9b0abb5257dc67bc6888ecb05a9410fea72eaf4 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 14:46:22 +0800 Subject: [PATCH 07/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/basic/basic.go | 2 ++ utils/file/upload.go | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/utils/basic/basic.go b/utils/basic/basic.go index bf498628..d8d4eae0 100644 --- a/utils/basic/basic.go +++ b/utils/basic/basic.go @@ -16,6 +16,8 @@ var StorageBucketName = aws.String("storage.fusenpack.com") // 全局的BucketName 缓存使用 var TempfileBucketName = aws.String("tempfile.fusenpack.com") +var FusenLogoDbBucketName = aws.String("fusenlogodb") + const UploadFileLimitSize = 200 << 20 // File uploadfile 文件(multipart...) diff --git a/utils/file/upload.go b/utils/file/upload.go index 91c40b02..20991344 100644 --- a/utils/file/upload.go +++ b/utils/file/upload.go @@ -108,7 +108,7 @@ func (upload *Upload) UploadFileByBase64(req *UploadBaseReq) (*UploadBaseRes, er &s3.PutObjectInput{ Bucket: bucketName, Key: &resourceId, - CacheControl: aws.String("no-cache, must-revalidate"), + CacheControl: aws.String("no-cache"), }, ) @@ -192,6 +192,8 @@ func (upload *Upload) UploadFileByByte(req *UploadBaseReq) (*UploadBaseRes, erro switch req.UploadBucket { case 2: bucketName = basic.TempfileBucketName + case 3: + bucketName = basic.FusenLogoDbBucketName default: bucketName = basic.StorageBucketName } @@ -237,7 +239,7 @@ func (upload *Upload) UploadFileByByte(req *UploadBaseReq) (*UploadBaseRes, erro &s3.PutObjectInput{ Bucket: bucketName, Key: &resourceId, - CacheControl: aws.String("no-cache, must-revalidate"), + CacheControl: aws.String("no-cache"), }, ) From 7cc39dfd3b6c37be631d9b4625d3bca033ec8271 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 14:48:25 +0800 Subject: [PATCH 08/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/file/upload.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utils/file/upload.go b/utils/file/upload.go index 20991344..f22b926e 100644 --- a/utils/file/upload.go +++ b/utils/file/upload.go @@ -57,6 +57,8 @@ func (upload *Upload) UploadFileByBase64(req *UploadBaseReq) (*UploadBaseRes, er switch req.UploadBucket { case 2: bucketName = basic.TempfileBucketName + case 3: + bucketName = basic.FusenLogoDbBucketName default: bucketName = basic.StorageBucketName } From 094423042ed77effe728bf5317dbadcbc5cf35ae Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 15:00:11 +0800 Subject: [PATCH 09/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/upload/internal/types/types.go | 70 +++++++++++++-------------- server_api/upload.api | 62 ++++++++++++------------ 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/server/upload/internal/types/types.go b/server/upload/internal/types/types.go index 665d70db..3f496b19 100644 --- a/server/upload/internal/types/types.go +++ b/server/upload/internal/types/types.go @@ -14,16 +14,16 @@ type UploadLogoStandardReq struct { } type UploadFileBaseReq struct { - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - FileKey string `form:"file_key"` // 上传唯一标识信息 - FileData string `form:"file_data"` // 上传文件额外信息 - Metadata string `form:"meta_data,optional"` // 上传文件额外信息 - UserId int64 `form:"user_id,optional"` // 上传文件额外信息 - GuestId int64 `form:"guest_id,optional"` // 上传文件额外信息 - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - Source string `form:"source"` // 上传来源 - Refresh int64 `form:"refresh,optional"` // 强制更新 10 - ResourceId string `form:"resource_id,optional"` // 资源ID + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + FileKey string `form:"file_key"` // 上传唯一标识信息 + FileData string `form:"file_data"` // 上传文件额外信息 + Metadata string `form:"meta_data,optional"` // 上传文件额外信息 + UserId int64 `form:"user_id,optional"` // 上传文件额外信息 + GuestId int64 `form:"guest_id,optional"` // 上传文件额外信息 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + Source string `form:"source"` // 上传来源 + Refresh int64 `form:"refresh,optional"` // 强制更新 10 + ResourceId string `form:"resource_id,optional"` // 资源ID } type UploadLogoReq struct { @@ -34,33 +34,33 @@ type UploadLogoReq struct { } type UploadFileBackendReq struct { - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - FileKey string `form:"file_key"` // 上传唯一标识信息 - FileSize int64 `form:"file_size,optional"` // 上传唯一标识信息 - Metadata string `form:"meta_data,optional"` // 上传文件额外信息 - Source string `form:"source"` // 上传来源 - Refresh int64 `form:"refresh,optional"` // 强制更新 10 - ResourceId string `form:"resource_id,optional"` // 资源ID + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + FileKey string `form:"file_key"` // 上传唯一标识信息 + FileSize int64 `form:"file_size,optional"` // 上传唯一标识信息 + Metadata string `form:"meta_data,optional"` // 上传文件额外信息 + Source string `form:"source"` // 上传来源 + Refresh int64 `form:"refresh,optional"` // 强制更新 10 + ResourceId string `form:"resource_id,optional"` // 资源ID } type UploadFilesReq struct { - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - UploadInfo string `form:"upload_info"` // 上传信息 json - Source string `form:"source"` // 上传来源 - Refresh int64 `form:"refresh,optional"` // 强制更新 10 - ResourceId string `form:"resource_id,optional"` // 资源ID + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + UploadInfo string `form:"upload_info"` // 上传信息 json + Source string `form:"source"` // 上传来源 + Refresh int64 `form:"refresh,optional"` // 强制更新 10 + ResourceId string `form:"resource_id,optional"` // 资源ID } type UploadCallbackReq struct { - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - ResourceId string `form:"resource_id"` // 资源ID - ResourceType string `form:"resource_type"` // 资源类型 - ResourceUrl string `form:"resource_url"` // 资源URL - Metadata string `form:"metadata,optional"` // 元数据,json格式,存储图像分率 - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - Source string `form:"source"` // 上传来源 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + ResourceId string `form:"resource_id"` // 资源ID + ResourceType string `form:"resource_type"` // 资源类型 + ResourceUrl string `form:"resource_url"` // 资源URL + Metadata string `form:"metadata,optional"` // 元数据,json格式,存储图像分率 + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + Source string `form:"source"` // 上传来源 } type RequestUpFile struct { @@ -114,10 +114,10 @@ type File struct { } type Meta struct { - TotalCount int64 `json:"totalCount"` - PageCount int64 `json:"pageCount"` - CurrentPage int `json:"currentPage"` - PerPage int `json:"perPage"` + TotalCount int64 `json:"total_count"` + PageCount int64 `json:"page_count"` + CurrentPage int `json:"current_page"` + PerPage int `json:"per_page"` } // Set 设置Response的Code和Message值 diff --git a/server_api/upload.api b/server_api/upload.api index 092a5e45..3935933f 100644 --- a/server_api/upload.api +++ b/server_api/upload.api @@ -59,16 +59,16 @@ type ( type ( UploadFileBaseReq { - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - FileKey string `form:"file_key"` // 上传唯一标识信息 - FileData string `form:"file_data"` // 上传文件额外信息 - Metadata string `form:"meta_data,optional"` // 上传文件额外信息 - UserId int64 `form:"user_id,optional"` // 上传文件额外信息 - GuestId int64 `form:"guest_id,optional"` // 上传文件额外信息 - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - Source string `form:"source"` // 上传来源 - Refresh int64 `form:"refresh,optional"` // 强制更新 10 - ResourceId string `form:"resource_id,optional"` // 资源ID + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + FileKey string `form:"file_key"` // 上传唯一标识信息 + FileData string `form:"file_data"` // 上传文件额外信息 + Metadata string `form:"meta_data,optional"` // 上传文件额外信息 + UserId int64 `form:"user_id,optional"` // 上传文件额外信息 + GuestId int64 `form:"guest_id,optional"` // 上传文件额外信息 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + Source string `form:"source"` // 上传来源 + Refresh int64 `form:"refresh,optional"` // 强制更新 10 + ResourceId string `form:"resource_id,optional"` // 资源ID } ) @@ -83,32 +83,32 @@ type ( type ( UploadFileBackendReq { - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - FileKey string `form:"file_key"` // 上传唯一标识信息 - FileSize int64 `form:"file_size,optional"` // 上传唯一标识信息 - Metadata string `form:"meta_data,optional"` // 上传文件额外信息 - Source string `form:"source"` // 上传来源 - Refresh int64 `form:"refresh,optional"` // 强制更新 10 - ResourceId string `form:"resource_id,optional"` // 资源ID + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + FileKey string `form:"file_key"` // 上传唯一标识信息 + FileSize int64 `form:"file_size,optional"` // 上传唯一标识信息 + Metadata string `form:"meta_data,optional"` // 上传文件额外信息 + Source string `form:"source"` // 上传来源 + Refresh int64 `form:"refresh,optional"` // 强制更新 10 + ResourceId string `form:"resource_id,optional"` // 资源ID } UploadFilesReq { - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - UploadInfo string `form:"upload_info"` // 上传信息 json - Source string `form:"source"` // 上传来源 - Refresh int64 `form:"refresh,optional"` // 强制更新 10 - ResourceId string `form:"resource_id,optional"` // 资源ID + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + UploadInfo string `form:"upload_info"` // 上传信息 json + Source string `form:"source"` // 上传来源 + Refresh int64 `form:"refresh,optional"` // 强制更新 10 + ResourceId string `form:"resource_id,optional"` // 资源ID } UploadCallbackReq { - UploadBucket int64 `form:"upload_bucket,options=[1,2],default=1"` // 上传桶名:1=缓存,2=持久 - ResourceId string `form:"resource_id"` // 资源ID - ResourceType string `form:"resource_type"` // 资源类型 - ResourceUrl string `form:"resource_url"` // 资源URL - Metadata string `form:"metadata,optional"` // 元数据,json格式,存储图像分率 - ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 - Source string `form:"source"` // 上传来源 + UploadBucket int64 `form:"upload_bucket,options=[1,2,3],default=1"` // 上传桶名:1=缓存,2=持久 + ResourceId string `form:"resource_id"` // 资源ID + ResourceType string `form:"resource_type"` // 资源类型 + ResourceUrl string `form:"resource_url"` // 资源URL + Metadata string `form:"metadata,optional"` // 元数据,json格式,存储图像分率 + ApiType int64 `form:"api_type,options=[1,2],default=1"` // 调用类型:1=对外,2=对内 + Source string `form:"source"` // 上传来源 } ) From e892768dc35fab0947bd87042205279c2cc27ff9 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 15:03:54 +0800 Subject: [PATCH 10/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/file/upload.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/utils/file/upload.go b/utils/file/upload.go index f22b926e..0e97475a 100644 --- a/utils/file/upload.go +++ b/utils/file/upload.go @@ -57,15 +57,18 @@ func (upload *Upload) UploadFileByBase64(req *UploadBaseReq) (*UploadBaseRes, er switch req.UploadBucket { case 2: bucketName = basic.TempfileBucketName + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-west-1") case 3: bucketName = basic.FusenLogoDbBucketName + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-east-2") default: bucketName = basic.StorageBucketName + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-west-1") } - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-west-1") - // 创建新的S3服务实例 svc := s3.New(upload.AwsSession) From c8f2f1346dc492dac77e524b820f7ea6762a7654 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 15:06:07 +0800 Subject: [PATCH 11/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/file/upload.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/utils/file/upload.go b/utils/file/upload.go index 0e97475a..2a2816b2 100644 --- a/utils/file/upload.go +++ b/utils/file/upload.go @@ -197,10 +197,16 @@ func (upload *Upload) UploadFileByByte(req *UploadBaseReq) (*UploadBaseRes, erro switch req.UploadBucket { case 2: bucketName = basic.TempfileBucketName + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-west-1") case 3: bucketName = basic.FusenLogoDbBucketName + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-east-2") default: bucketName = basic.StorageBucketName + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-west-1") } // 设置AWS会话的区域 From 850c8f0d395144e7c3cfc83e7f5d97b313ba9844 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 15:08:41 +0800 Subject: [PATCH 12/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/file/upload.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/utils/file/upload.go b/utils/file/upload.go index 2a2816b2..c55a6699 100644 --- a/utils/file/upload.go +++ b/utils/file/upload.go @@ -209,9 +209,6 @@ func (upload *Upload) UploadFileByByte(req *UploadBaseReq) (*UploadBaseRes, erro upload.AwsSession.Config.Region = aws.String("us-west-1") } - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-west-1") - // 创建新的S3服务实例 svc := s3.New(upload.AwsSession) From 1e2ce0a18fa7cb3626104d22cf51e04ec17010cc Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 15:28:19 +0800 Subject: [PATCH 13/22] =?UTF-8?q?fix:=E5=89=8D=E5=8F=B0=E4=BB=8Elogo?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AD=98=E5=82=A8=E4=B8=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=B4=A0=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/logic/userlogodatasetlogic.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server/home-user-auth/internal/logic/userlogodatasetlogic.go b/server/home-user-auth/internal/logic/userlogodatasetlogic.go index c0275d23..5f42a49c 100644 --- a/server/home-user-auth/internal/logic/userlogodatasetlogic.go +++ b/server/home-user-auth/internal/logic/userlogodatasetlogic.go @@ -87,8 +87,17 @@ func (l *UserLogoDataSetLogic) UserLogoDataSet(req *types.UserLogoDataSetReq, us // 返回成功的响应和上传URL return resp.SetStatus(basic.CodeOK, map[string]interface{}{ - "user_material_id": materialInfo.Id, + "id": materialInfo.Id, + "module": materialInfo.Module, + "user_id": materialInfo.UserId, + "guest_id": materialInfo.GuestId, + "resource_id": materialInfo.ResourceId, + "resource_url": materialInfo.ResourceUrl, + "metadata": nil, + "ctime": materialInfo.Ctime, + "resource_info": nil, }) + } // 处理逻辑后 w,r 如:重定向, resp 必须重新处理 From 17c00236cfb611c07745a6d5607a30cfbffdae95 Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Thu, 26 Oct 2023 15:28:44 +0800 Subject: [PATCH 14/22] info --- model/gmodel/fs_user_info_logic.go | 12 +++-- server/info/internal/handler/routes.go | 5 ++ .../handler/usergetdefaultprofilehandler.go | 35 ++++++++++++++ .../logic/usergetdefaultprofilelogic.go | 47 +++++++++++++++++++ server_api/info.api | 3 ++ 5 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 server/info/internal/handler/usergetdefaultprofilehandler.go create mode 100644 server/info/internal/logic/usergetdefaultprofilelogic.go diff --git a/model/gmodel/fs_user_info_logic.go b/model/gmodel/fs_user_info_logic.go index 23304365..51b1d329 100644 --- a/model/gmodel/fs_user_info_logic.go +++ b/model/gmodel/fs_user_info_logic.go @@ -50,7 +50,7 @@ func (m *FsUserInfoModel) MergeMetadata(userId int64, meta any) error { return fssql.MetadataModulePATCH(m.db, "profile", FsUserInfo{}, meta, "user_id = ?", userId) } -func (m *FsUserInfoModel) GetDefaultProfile(ctx context.Context, tname string) (map[string]any, error) { +func (m *FsUserInfoModel) getDefaultProfile(ctx context.Context, tname string) (map[string]any, error) { var baseinfo map[string]any condUser := "user_id = 0 and guest_id = 0" rawsql := fmt.Sprintf("select JSON_EXTRACT(metadata,'$') as query from %s where %s and module = 'profile' order by ctime DESC limit 1", tname, condUser) @@ -98,7 +98,7 @@ func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId in v, ok := baseinfo["query"].(string) if !ok { - return m.GetDefaultProfile(ctx, tname) + return m.getDefaultProfile(ctx, tname) } var info map[string]any @@ -108,11 +108,17 @@ func (m *FsUserInfoModel) GetProfile(ctx context.Context, pkey string, userId in } if len(info) == 0 { - return m.GetDefaultProfile(ctx, tname) + return m.getDefaultProfile(ctx, tname) } return info, nil } + +func (m *FsUserInfoModel) GetDefaultProfile(ctx context.Context) (map[string]any, error) { + tname := fssql.GetGormTableName(m.db, FsUserInfo{}) + return m.getDefaultProfile(ctx, tname) +} + func (m *FsUserInfoModel) FindOneByUser(ctx context.Context, userId, guestId int64, module string) (resp *FsUserInfo, err error) { if userId > 0 { err = m.db.WithContext(ctx).Model(&FsUserInfo{}).Where("user_id = ? and module = ?", userId, module).Take(&resp).Error diff --git a/server/info/internal/handler/routes.go b/server/info/internal/handler/routes.go index 2f095f92..eda05c28 100644 --- a/server/info/internal/handler/routes.go +++ b/server/info/internal/handler/routes.go @@ -22,6 +22,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { Path: "/api/info/user/profile", Handler: UserGetProfileHandler(serverCtx), }, + { + Method: http.MethodGet, + Path: "/api/info/user/profile/default", + Handler: UserGetDefaultProfileHandler(serverCtx), + }, { Method: http.MethodPost, Path: "/api/info/user/profile/base/update", diff --git a/server/info/internal/handler/usergetdefaultprofilehandler.go b/server/info/internal/handler/usergetdefaultprofilehandler.go new file mode 100644 index 00000000..e3507db8 --- /dev/null +++ b/server/info/internal/handler/usergetdefaultprofilehandler.go @@ -0,0 +1,35 @@ +package handler + +import ( + "net/http" + "reflect" + + "fusenapi/utils/basic" + + "fusenapi/server/info/internal/logic" + "fusenapi/server/info/internal/svc" + "fusenapi/server/info/internal/types" +) + +func UserGetDefaultProfileHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + + var req types.Request + userinfo, err := basic.RequestParse(w, r, svcCtx, &req) + if err != nil { + return + } + + // 创建一个业务逻辑层实例 + l := logic.NewUserGetDefaultProfileLogic(r.Context(), svcCtx) + + rl := reflect.ValueOf(l) + basic.BeforeLogic(w, r, rl) + + resp := l.UserGetDefaultProfile(&req, userinfo) + + if !basic.AfterLogic(w, r, rl, resp) { + basic.NormalAfterLogic(w, r, resp) + } + } +} diff --git a/server/info/internal/logic/usergetdefaultprofilelogic.go b/server/info/internal/logic/usergetdefaultprofilelogic.go new file mode 100644 index 00000000..36f4de89 --- /dev/null +++ b/server/info/internal/logic/usergetdefaultprofilelogic.go @@ -0,0 +1,47 @@ +package logic + +import ( + "fusenapi/utils/auth" + "fusenapi/utils/basic" + + "context" + + "fusenapi/server/info/internal/svc" + "fusenapi/server/info/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UserGetDefaultProfileLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewUserGetDefaultProfileLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserGetDefaultProfileLogic { + return &UserGetDefaultProfileLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +// 处理进入前逻辑w,r +// func (l *UserGetDefaultProfileLogic) BeforeLogic(w http.ResponseWriter, r *http.Request) { +// } + +func (l *UserGetDefaultProfileLogic) UserGetDefaultProfile(req *types.Request, userinfo *auth.UserInfo) (resp *basic.Response) { + // 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data) + // userinfo 传入值时, 一定不为null + defaultProfile, err := l.svcCtx.AllModels.FsUserInfo.GetDefaultProfile(l.ctx) + if err != nil { + return resp.SetStatusWithMessage(basic.CodeApiErr, err.Error()) + } + + return resp.SetStatus(basic.CodeOK, defaultProfile) +} + +// 处理逻辑后 w,r 如:重定向, resp 必须重新处理 +// func (l *UserGetDefaultProfileLogic) AfterLogic(w http.ResponseWriter, r *http.Request, resp *basic.Response) { +// // httpx.OkJsonCtx(r.Context(), w, resp) +// } diff --git a/server_api/info.api b/server_api/info.api index 20e6d88c..ebc8fe54 100644 --- a/server_api/info.api +++ b/server_api/info.api @@ -16,6 +16,9 @@ service info { @handler UserGetProfileHandler post /api/info/user/profile(QueryProfileRequest) returns (response); + @handler UserGetDefaultProfileHandler + get /api/info/user/profile/default(request) returns (response); + @handler UpdateProfileBaseHandler post /api/info/user/profile/base/update(ProfileRequest) returns (response); From 1a034d7e9b54b12ba44dd95054c2111be16e976d Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 15:36:28 +0800 Subject: [PATCH 15/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/basic/basic.go | 6 +++--- utils/file/upload.go | 20 ++++++-------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/utils/basic/basic.go b/utils/basic/basic.go index d8d4eae0..fc936c52 100644 --- a/utils/basic/basic.go +++ b/utils/basic/basic.go @@ -11,12 +11,12 @@ import ( ) // 全局的BucketName -var StorageBucketName = aws.String("storage.fusenpack.com") +var StorageBucketName = aws.String("fusenstorage") // 全局的BucketName 缓存使用 -var TempfileBucketName = aws.String("tempfile.fusenpack.com") +var TempfileBucketName = aws.String("fusentempfile") -var FusenLogoDbBucketName = aws.String("fusenlogodb") +var FusenLogoDbBucketName = aws.String("fusenstorage") const UploadFileLimitSize = 200 << 20 diff --git a/utils/file/upload.go b/utils/file/upload.go index c55a6699..69c94f31 100644 --- a/utils/file/upload.go +++ b/utils/file/upload.go @@ -57,17 +57,13 @@ func (upload *Upload) UploadFileByBase64(req *UploadBaseReq) (*UploadBaseRes, er switch req.UploadBucket { case 2: bucketName = basic.TempfileBucketName - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-west-1") case 3: - bucketName = basic.FusenLogoDbBucketName - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-east-2") + bucketName = basic.StorageBucketName default: bucketName = basic.StorageBucketName - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-west-1") } + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-east-2") // 创建新的S3服务实例 svc := s3.New(upload.AwsSession) @@ -197,17 +193,13 @@ func (upload *Upload) UploadFileByByte(req *UploadBaseReq) (*UploadBaseRes, erro switch req.UploadBucket { case 2: bucketName = basic.TempfileBucketName - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-west-1") case 3: - bucketName = basic.FusenLogoDbBucketName - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-east-2") + bucketName = basic.StorageBucketName default: bucketName = basic.StorageBucketName - // 设置AWS会话的区域 - upload.AwsSession.Config.Region = aws.String("us-west-1") } + // 设置AWS会话的区域 + upload.AwsSession.Config.Region = aws.String("us-east-2") // 创建新的S3服务实例 svc := s3.New(upload.AwsSession) From 6d8401d3e072abb2864d86d00302a5b7d2dda7f2 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 15:50:02 +0800 Subject: [PATCH 16/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/home-user-auth/internal/logic/userlogodatasetlogic.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/home-user-auth/internal/logic/userlogodatasetlogic.go b/server/home-user-auth/internal/logic/userlogodatasetlogic.go index 5f42a49c..a8e34190 100644 --- a/server/home-user-auth/internal/logic/userlogodatasetlogic.go +++ b/server/home-user-auth/internal/logic/userlogodatasetlogic.go @@ -76,6 +76,7 @@ func (l *UserLogoDataSetLogic) UserLogoDataSet(req *types.UserLogoDataSetReq, us GuestId: &guestId, ResourceId: &resourceId, ResourceUrl: logoData.ResourceUrl, + Metadata: logoData.Metadata, Ctime: &nowTime, } resCreate := l.svcCtx.MysqlConn.Create(&materialInfo) @@ -93,7 +94,7 @@ func (l *UserLogoDataSetLogic) UserLogoDataSet(req *types.UserLogoDataSetReq, us "guest_id": materialInfo.GuestId, "resource_id": materialInfo.ResourceId, "resource_url": materialInfo.ResourceUrl, - "metadata": nil, + "metadata": materialInfo.Metadata, "ctime": materialInfo.Ctime, "resource_info": nil, }) From ace57c52f41f32f6e7293c526bd575589b69189c Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 16:46:14 +0800 Subject: [PATCH 17/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/logic/userlogodatasetlogic.go | 25 ++++++++++++++++++- .../internal/logic/userlogosetlogic.go | 10 ++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/server/home-user-auth/internal/logic/userlogodatasetlogic.go b/server/home-user-auth/internal/logic/userlogodatasetlogic.go index a8e34190..f2eec55b 100644 --- a/server/home-user-auth/internal/logic/userlogodatasetlogic.go +++ b/server/home-user-auth/internal/logic/userlogodatasetlogic.go @@ -2,7 +2,9 @@ package logic import ( "errors" + "fmt" "fusenapi/model/gmodel" + "fusenapi/service/repositories" "fusenapi/utils/auth" "fusenapi/utils/basic" "fusenapi/utils/s3url_to_s3id" @@ -65,6 +67,27 @@ func (l *UserLogoDataSetLogic) UserLogoDataSet(req *types.UserLogoDataSetReq, us } return resp.SetStatus(basic.CodeApiErr) } + + var userMaterialMetadata []byte + if logoData.Metadata == nil { + var resultStr string + resLogoStandard, err := l.svcCtx.Repositories.ImageHandle.LogoInfoSet(l.ctx, &repositories.LogoInfoSetReq{ + LogoUrl: *logoData.ResourceUrl, + Version: l.svcCtx.Config.BLMService.Version, + Debug: userinfo.Debug, + }) + + if err != nil { + logx.Error(err) + basic.CodeServiceErr.Message = fmt.Sprintf("算法请求--LOGO信息--错误:%+v", err) + return resp.SetStatus(basic.CodeServiceErr, fmt.Sprintf("算法请求--LOGO信息--错误:%+v", err)) + } + resultStr = resLogoStandard.Res + userMaterialMetadata = []byte(resultStr) + } else { + userMaterialMetadata = *logoData.Metadata + } + // 新增素材 var module = "logo" var nowTime = time.Now().UTC() @@ -76,7 +99,7 @@ func (l *UserLogoDataSetLogic) UserLogoDataSet(req *types.UserLogoDataSetReq, us GuestId: &guestId, ResourceId: &resourceId, ResourceUrl: logoData.ResourceUrl, - Metadata: logoData.Metadata, + Metadata: &userMaterialMetadata, Ctime: &nowTime, } resCreate := l.svcCtx.MysqlConn.Create(&materialInfo) diff --git a/server/home-user-auth/internal/logic/userlogosetlogic.go b/server/home-user-auth/internal/logic/userlogosetlogic.go index 2aa57b56..1912e2e5 100644 --- a/server/home-user-auth/internal/logic/userlogosetlogic.go +++ b/server/home-user-auth/internal/logic/userlogosetlogic.go @@ -106,6 +106,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth return err } } + var logoCategoryId int64 // 更新merchant_category if req.SetLogoCategory == 1 { var metadataChildUserMaterial = make(map[string]interface{}, 1) @@ -129,7 +130,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth return err } } - + logoCategoryId = req.CategoryId } var module = "profile" if req.SetLogoSelected == 1 { @@ -182,11 +183,16 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth templateTagSelected["template_tag"] = userMaterialTemplateIdTagId templateTagSelected["selected_index"] = 0 - metadataChildUserInfo["logo_selected"] = map[string]interface{}{ + var logoSelectedMap = map[string]interface{}{ "logo_selected_id": req.LogoSelectedId, "logo_url": userMaterialInfo.ResourceUrl, "template_tag_selected": templateTagSelected, } + if logoCategoryId != 0 { + logoSelectedMap["merchant_category"] = logoCategoryId + } + + metadataChildUserInfo["logo_selected"] = logoSelectedMap metadataMapUserInfo, err := metadata.SetMetadata(metadataChildUserInfo, metadataMapOldUserInfo) if err != nil { From 53675d2d603d4e44ccddb1ad2449d29a2da45119 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 17:04:03 +0800 Subject: [PATCH 18/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/home-user-auth/internal/logic/userlogosetlogic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/home-user-auth/internal/logic/userlogosetlogic.go b/server/home-user-auth/internal/logic/userlogosetlogic.go index 1912e2e5..f20bd4f2 100644 --- a/server/home-user-auth/internal/logic/userlogosetlogic.go +++ b/server/home-user-auth/internal/logic/userlogosetlogic.go @@ -218,7 +218,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth } else { // 更新 userInfo.Utime = &nowTime - resUpdates := tx.Model(&userInfo).Select("metadata").Where("id = ?", userInfo.Id).Updates(&userInfo) + resUpdates := tx.Model(&userInfo).Select("metadata").Updates(&userInfo) err = resUpdates.Error } From c26c3ea192f7a1c746730b54d71cb07420493867 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 17:05:01 +0800 Subject: [PATCH 19/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/home-user-auth/internal/logic/userlogosetlogic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/home-user-auth/internal/logic/userlogosetlogic.go b/server/home-user-auth/internal/logic/userlogosetlogic.go index f20bd4f2..a83357b0 100644 --- a/server/home-user-auth/internal/logic/userlogosetlogic.go +++ b/server/home-user-auth/internal/logic/userlogosetlogic.go @@ -218,7 +218,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth } else { // 更新 userInfo.Utime = &nowTime - resUpdates := tx.Model(&userInfo).Select("metadata").Updates(&userInfo) + resUpdates := tx.Model(&userInfo).Select("metadata,utime").Updates(&userInfo) err = resUpdates.Error } From 1f4efbb72b61912cdc209be9fa119f30d35ae9b1 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 17:21:31 +0800 Subject: [PATCH 20/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/home-user-auth/internal/logic/userlogosetlogic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/home-user-auth/internal/logic/userlogosetlogic.go b/server/home-user-auth/internal/logic/userlogosetlogic.go index a83357b0..834f0c56 100644 --- a/server/home-user-auth/internal/logic/userlogosetlogic.go +++ b/server/home-user-auth/internal/logic/userlogosetlogic.go @@ -218,7 +218,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth } else { // 更新 userInfo.Utime = &nowTime - resUpdates := tx.Model(&userInfo).Select("metadata,utime").Updates(&userInfo) + resUpdates := tx.Model(&gmodel.FsUserInfo{}).Select("metadata", "ctime").Where("id = ?", userInfo.Id).Updates(&userInfo) err = resUpdates.Error } From 3e018487c63183d71c30a3a92d50b477541daa8c Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 17:23:42 +0800 Subject: [PATCH 21/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/home-user-auth/internal/logic/userlogosetlogic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/home-user-auth/internal/logic/userlogosetlogic.go b/server/home-user-auth/internal/logic/userlogosetlogic.go index 834f0c56..6ea1586c 100644 --- a/server/home-user-auth/internal/logic/userlogosetlogic.go +++ b/server/home-user-auth/internal/logic/userlogosetlogic.go @@ -122,7 +122,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth return err } userMaterialInfo.Metadata = &metadataBUserMaterial - resUpdates := tx.Select("metadata").Where("id = ?", req.LogoSelectedId).Updates(&userMaterialInfo) + resUpdates := tx.Model(&gmodel.FsUserMaterial{}).Select("metadata", "ctime").Where("id = ?", req.LogoSelectedId).Updates(&userMaterialInfo) err = resUpdates.Error if err != nil { if err != gorm.ErrRecordNotFound { From 6e71fde6f575f8a38f98ee4b12770bf92c57d267 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Thu, 26 Oct 2023 17:36:49 +0800 Subject: [PATCH 22/22] =?UTF-8?q?fix:upload=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/home-user-auth/internal/logic/userlogosetlogic.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/home-user-auth/internal/logic/userlogosetlogic.go b/server/home-user-auth/internal/logic/userlogosetlogic.go index 6ea1586c..27b6a822 100644 --- a/server/home-user-auth/internal/logic/userlogosetlogic.go +++ b/server/home-user-auth/internal/logic/userlogosetlogic.go @@ -122,7 +122,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth return err } userMaterialInfo.Metadata = &metadataBUserMaterial - resUpdates := tx.Model(&gmodel.FsUserMaterial{}).Select("metadata", "ctime").Where("id = ?", req.LogoSelectedId).Updates(&userMaterialInfo) + resUpdates := tx.Model(&gmodel.FsUserMaterial{}).Select("metadata", "utime").Where("id = ?", req.LogoSelectedId).Updates(&userMaterialInfo) err = resUpdates.Error if err != nil { if err != gorm.ErrRecordNotFound { @@ -218,7 +218,7 @@ func (l *UserLogoSetLogic) UserLogoSet(req *types.UserLogoSetReq, userinfo *auth } else { // 更新 userInfo.Utime = &nowTime - resUpdates := tx.Model(&gmodel.FsUserInfo{}).Select("metadata", "ctime").Where("id = ?", userInfo.Id).Updates(&userInfo) + resUpdates := tx.Model(&gmodel.FsUserInfo{}).Select("metadata", "utime").Where("id = ?", userInfo.Id).Updates(&userInfo) err = resUpdates.Error }