From 9cadffd46fe4903f6843712fa14b5c31544be665 Mon Sep 17 00:00:00 2001 From: wangfuduo Date: Wed, 8 Jul 2026 17:18:47 +0800 Subject: [PATCH] refactor: param string --- app/api/service/user.go | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/app/api/service/user.go b/app/api/service/user.go index 889c11b..5cd9d53 100644 --- a/app/api/service/user.go +++ b/app/api/service/user.go @@ -13,9 +13,15 @@ import ( "github.com/spf13/cast" ) +type Params map[string]any + +func (p Params) Str(key string) string { + return cast.ToString(p[key]) +} + type User struct { sess *session.ApiSession - params map[string]any + params Params ctx *gin.Context } @@ -83,21 +89,21 @@ func (u *User) VipCheck() *response.Response { // if expire < time.Now().Unix() { - resp = response.New(u.ctx, config.VipExpire, u.params[config.ServiceVipExpireNotice].(string)) + resp = response.New(u.ctx, config.VipExpire, u.params.Str(config.ServiceVipExpireNotice)) window := &response.Window{Close: false} resp.Window(window) buttons := make([]*response.Button, 0) // 首次支付按钮 if u.sess.GetUserInfo().VipCreateTime == 0 { if u.params[config.ServiceFirstPayWay] == config.FirstRechargeByCoupon { - resp.Message(u.params[config.ServerCouponNotice].(string)) + resp.Message(u.params.Str(config.ServerCouponNotice)) buttons = append(buttons, New(u.params).CouponButton()...) } else { buttons = append(buttons, New(u.params).PayButton()...) } } else { if u.params[config.ServicePayWay] == config.FirstRechargeByCoupon { - resp.Message(u.params[config.ServerCouponNotice].(string)) + resp.Message(u.params.Str(config.ServerCouponNotice)) buttons = append(buttons, New(u.params).CouponButton()...) } else { buttons = append(buttons, New(u.params).PayButton()...) @@ -129,10 +135,10 @@ func (u *User) PkgCheck() *response.Response { if pkg == nil { panic(config.ErrData.New().Append(err)) } - resp = response.New(u.ctx, config.UerNoPkg, u.params[config.ServiceUserPackageLack].(string)) + resp = response.New(u.ctx, config.UerNoPkg, u.params.Str(config.ServiceUserPackageLack)) button := &response.Button{ - Text: u.params[config.ServicePackageLackButton].(string), - Url: u.params[config.ServicePackageLackUrl].(string), + Text: u.params.Str(config.ServicePackageLackButton), + Url: u.params.Str(config.ServicePackageLackUrl), Type: config.ButtonClick, } window := &response.Window{Close: false} @@ -144,13 +150,13 @@ func (u *User) PkgCheck() *response.Response { // 先判断是否强制更新 if resp = u.expireCheck(userPkg, cast.ToInt(u.params[config.ServiceForceUpdateDay])); resp != nil { - resp.Window(&response.Window{Close: false, Title: u.params[config.ServiceForceUpdateNotice].(string)}) + resp.Window(&response.Window{Close: false, Title: u.params.Str(config.ServiceForceUpdateNotice)}) return resp } // 判断是否提示更新 if resp = u.expireCheck(userPkg, cast.ToInt(u.params[config.ServiceUpdateBeforeDay])); resp != nil { - msg := fmt.Sprintf(u.params[config.ServiceUpdateNotice].(string), time.Unix(userPkg.Pkg.ExpireTime, 0).Format("2006-01-02")) + msg := fmt.Sprintf(u.params.Str(config.ServiceUpdateNotice), time.Unix(userPkg.Pkg.ExpireTime, 0).Format("2006-01-02")) resp.Window(&response.Window{Close: true, Title: msg}) return resp } @@ -180,7 +186,7 @@ func (u *User) expireCheck(userPkg *model.UserPkgInfo, day int) *response.Respon } // 3. 如果都不可用,则提示联系客服 if pkg == nil { - resp = response.New(u.ctx, config.NoPkg, u.params[config.ServiceContactCustomer].(string)) + resp = response.New(u.ctx, config.NoPkg, u.params.Str(config.ServiceContactCustomer)) window := &response.Window{Close: false} resp.Window(window) return resp @@ -188,13 +194,13 @@ func (u *User) expireCheck(userPkg *model.UserPkgInfo, day int) *response.Respon } // 否则返回强制更新 - message := u.params[config.ServiceForceUpdateNotice].(string) + message := u.params.Str(config.ServiceForceUpdateNotice) if pkg.Name != userPkg.Pkg.Name { - message = u.params[config.ServiceUpdateOtherNotice].(string) + message = u.params.Str(config.ServiceUpdateOtherNotice) } resp = response.New(u.ctx, config.NeedUpgrade, message) button := &response.Button{ - Text: u.params[config.ServiceInstallButton].(string), + Text: u.params.Str(config.ServiceInstallButton), Url: pkg.Link, Type: config.ButtonClick, }