作者 yangfu

默认公司LOGO、缓存清理

@@ -21,6 +21,10 @@ service Core { @@ -21,6 +21,10 @@ service Core {
21 @doc "日志查询" 21 @doc "日志查询"
22 @handler commonGetLog 22 @handler commonGetLog
23 get /log/:module 23 get /log/:module
  24 +
  25 + @doc "清理缓存"
  26 + @handler commonGetClearCache
  27 + get /clear
24 } 28 }
25 29
26 // 短信验证码 30 // 短信验证码
  1 +package common
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/zeromicro/go-zero/rest/httpx"
  7 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/common"
  8 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
  9 +)
  10 +
  11 +func CommonGetClearCacheHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
  12 + return func(w http.ResponseWriter, r *http.Request) {
  13 + l := common.NewCommonGetClearCacheLogic(r.Context(), svcCtx)
  14 + err := l.CommonGetClearCache()
  15 + if err != nil {
  16 + httpx.ErrorCtx(r.Context(), w, err)
  17 + } else {
  18 + httpx.Ok(w)
  19 + }
  20 + }
  21 +}
@@ -31,6 +31,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { @@ -31,6 +31,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
31 Path: "/log/:module", 31 Path: "/log/:module",
32 Handler: common.CommonGetLogHandler(serverCtx), 32 Handler: common.CommonGetLogHandler(serverCtx),
33 }, 33 },
  34 + {
  35 + Method: http.MethodGet,
  36 + Path: "/clear",
  37 + Handler: common.CommonGetClearCacheHandler(serverCtx),
  38 + },
34 }, 39 },
35 rest.WithPrefix("/v1"), 40 rest.WithPrefix("/v1"),
36 ) 41 )
  1 +package common
  2 +
  3 +import (
  4 + "context"
  5 + "fmt"
  6 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr"
  7 + "strings"
  8 +
  9 + "github.com/zeromicro/go-zero/core/logx"
  10 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
  11 +)
  12 +
  13 +type CommonGetClearCacheLogic struct {
  14 + logx.Logger
  15 + ctx context.Context
  16 + svcCtx *svc.ServiceContext
  17 +}
  18 +
  19 +func NewCommonGetClearCacheLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CommonGetClearCacheLogic {
  20 + return &CommonGetClearCacheLogic{
  21 + Logger: logx.WithContext(ctx),
  22 + ctx: ctx,
  23 + svcCtx: svcCtx,
  24 + }
  25 +}
  26 +
  27 +func (l *CommonGetClearCacheLogic) CommonGetClearCache() error {
  28 + var (
  29 + appName = l.svcCtx.Config.Name
  30 + success int
  31 + )
  32 + if strings.TrimSpace(appName) == "" {
  33 + return nil
  34 + }
  35 + keyPattern := fmt.Sprintf("%s*", appName)
  36 + list, err := l.svcCtx.Redis.Keys(keyPattern)
  37 + if err != nil {
  38 + return xerr.NewErrMsg(err.Error())
  39 + }
  40 + for _, key := range list {
  41 + if _, err = l.svcCtx.Redis.Del(key); err == nil {
  42 + success++
  43 + }
  44 + }
  45 + logx.Infof("清理缓存:%d/%d", success, len(list))
  46 + return nil
  47 +}
@@ -57,6 +57,6 @@ func NewCompany(item *domain.Company) types.Company { @@ -57,6 +57,6 @@ func NewCompany(item *domain.Company) types.Company {
57 Id: item.Id, 57 Id: item.Id,
58 Name: item.Name, 58 Name: item.Name,
59 Code: item.Code, 59 Code: item.Code,
60 - Logo: item.Logo, 60 + Logo: lo.Ternary(item.Logo != "", item.Logo, domain.DefaultCompanyLog),
61 } 61 }
62 } 62 }
@@ -52,6 +52,9 @@ func (l *SystemUserAccountSaveLogic) SystemUserAccountSave(req *types.SystemUser @@ -52,6 +52,9 @@ func (l *SystemUserAccountSaveLogic) SystemUserAccountSave(req *types.SystemUser
52 if err != nil { 52 if err != nil {
53 return nil, xerr.NewErrMsgErr("申请失败", err) 53 return nil, xerr.NewErrMsgErr("申请失败", err)
54 } 54 }
  55 + if user != nil {
  56 + return nil, xerr.NewErrMsgErr("用户手机号已存在", err)
  57 + }
55 if err = transaction.UseTrans(l.ctx, l.svcCtx.DB, func(ctx context.Context, conn transaction.Conn) error { 58 if err = transaction.UseTrans(l.ctx, l.svcCtx.DB, func(ctx context.Context, conn transaction.Conn) error {
56 user = &domain.User{ 59 user = &domain.User{
57 CompanyId: company.Id, 60 CompanyId: company.Id,
@@ -87,8 +87,12 @@ func (l *SystemUserInfoLogic) SystemUserInfo(req *types.SystemUserInfoRequest) ( @@ -87,8 +87,12 @@ func (l *SystemUserInfoLogic) SystemUserInfo(req *types.SystemUserInfoRequest) (
87 company.Logo = response.CurrentCompany.Logo 87 company.Logo = response.CurrentCompany.Logo
88 changed = true 88 changed = true
89 } 89 }
  90 + if company.Logo == "" {
  91 + company.Logo = domain.DefaultCompanyLog
  92 + changed = true
  93 + }
90 if changed { 94 if changed {
91 - if company, err = l.svcCtx.CompanyRepository.UpdateWithVersion(l.ctx, conn, company); err != nil { 95 + if company, err = l.svcCtx.CompanyRepository.Update(l.ctx, conn, company); err != nil {
92 return nil, xerr.NewErrMsgErr("获取用户资料失败", err) 96 return nil, xerr.NewErrMsgErr("获取用户资料失败", err)
93 } 97 }
94 } 98 }
@@ -33,3 +33,5 @@ func (m *Company) Identify() interface{} { @@ -33,3 +33,5 @@ func (m *Company) Identify() interface{} {
33 } 33 }
34 return m.Id 34 return m.Id
35 } 35 }
  36 +
  37 +var DefaultCompanyLog = "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/test/20231114/object/1699934114_3r7QHThtbWfEDWh7CAHSzzWytFPzsjF6.png"