feat: device info and bind
CI / changes (push) Successful in 1m30s
CI / ad (push) Successful in 31s
CI / admin (push) Successful in 24s
CI / bff (push) Successful in 31s
CI / chore (push) Successful in 27s
CI / equipment (push) Successful in 21s
CI / express (push) Successful in 23s
CI / factory (push) Successful in 21s
CI / message (push) Successful in 21s
CI / order (push) Successful in 22s
CI / payment (push) Successful in 20s
CI / percutaneous (push) Successful in 20s
CI / product (push) Successful in 20s
CI / record (push) Successful in 19s
CI / sale (push) Successful in 19s
CI / support (push) Successful in 20s
CI / task (push) Successful in 19s
CI / user (push) Successful in 21s
CI / wecom (push) Successful in 22s

This commit is contained in:
zzw
2026-10-16 15:36:17 +08:00
parent a65b6d2803
commit 46d3f672bf
42 changed files with 2142 additions and 197 deletions
+4 -1
View File
@@ -233,7 +233,10 @@ func issueLoginToken(ctx context.Context, jwtAuth *config.JWTAuth, row *dao.User
if jwtAuth == nil || jwtAuth.Access == nil || jwtAuth.Refresh == nil {
return nil, errors.New("jwt not initialized")
}
mobile, _ := utils.DecryptPhone(row.Mobile)
mobile, perr := utils.DecryptPhone(row.Mobile)
if perr != nil {
return nil, errors.New("decrypt phone error")
}
session := toSession(*row, mobile, client)
if err := fillSessionBizIds(ctx, &session, row.Id, client); err != nil {
return nil, err
+4 -4
View File
@@ -16,7 +16,7 @@ import (
"google.golang.org/grpc/status"
)
func ensureClientBizUser(ctx context.Context, userId int64, clientCode string) error {
func ensureClientBizUser(ctx context.Context, svcCtx *svc.ServiceContext, userId int64, clientCode string) error {
var row dao.UserClient
err := model.UserClientModel{}.Init().GetOne(modelbase.Params{
Eq: map[string]string{
@@ -34,7 +34,7 @@ func ensureClientBizUser(ctx context.Context, userId int64, clientCode string) e
return nil
}
bizId, err := createBizUser(ctx, clientCode)
bizId, err := createBizUser(ctx, svcCtx, clientCode)
if err != nil {
return err
}
@@ -50,10 +50,10 @@ func ensureClientBizUser(ctx context.Context, userId int64, clientCode string) e
return err
}
func createBizUser(ctx context.Context, serviceKey string) (int64, error) {
func createBizUser(ctx context.Context, svcCtx *svc.ServiceContext, serviceKey string) (int64, error) {
switch serviceKey {
case "user_skin":
return createAnalysisBizUser(ctx, "analysis")
return createAnalysisBizUser(ctx, svcCtx.AnalysisSvcName)
default:
return utils.NumberZero, status.Error(codes.InvalidArgument, fmt.Sprintf("unsupported biz_user service: %s", serviceKey))
}
+1 -1
View File
@@ -80,7 +80,7 @@ func (l *LoginLogic) loginByOpenid(req validator.LoginValidator) (*user.Response
return failResponse(utils.Fail), nil
}
if bizErr := ensureClientBizUser(l.ctx, userId, req.ClientCode); bizErr != nil {
if bizErr := ensureClientBizUser(l.ctx, l.svcCtx, userId, req.ClientCode); bizErr != nil {
l.Errorf("login ensure biz user: %v", bizErr)
if st, ok := status.FromError(bizErr); ok {
return outResponse(utils.Fail, st.Message()), nil
+26 -12
View File
@@ -9,12 +9,14 @@ import (
)
type ServiceContext struct {
Config config.Config
DB *gorm.DB
Prefix string
JWT *config.JWTAuth
SaleSvcName string
ChoreSvcName string
Config config.Config
DB *gorm.DB
Prefix string
JWT *config.JWTAuth
SaleSvcName string
ChoreSvcName string
AnalysisSvcName string
StoreSvcName string
}
func NewServiceContext(c config.Config, db *gorm.DB, jwtAuth *config.JWTAuth) *ServiceContext {
@@ -27,12 +29,24 @@ func NewServiceContext(c config.Config, db *gorm.DB, jwtAuth *config.JWTAuth) *S
logx.Error("config services.chore empty")
}
analysisSvc := utils.GetConfigString("services.analysis")
if analysisSvc == utils.StringEmpty {
logx.Error("config services.analysis empty")
}
storeSvc := utils.GetConfigString("services.store")
if storeSvc == utils.StringEmpty {
logx.Error("config services.store empty")
}
return &ServiceContext{
Config: c,
DB: db,
Prefix: utils.GetConfigString("mysql.prefix"),
JWT: jwtAuth,
SaleSvcName: saleSvc,
ChoreSvcName: choreSvc,
Config: c,
DB: db,
Prefix: utils.GetConfigString("mysql.prefix"),
JWT: jwtAuth,
SaleSvcName: saleSvc,
ChoreSvcName: choreSvc,
AnalysisSvcName: analysisSvc,
StoreSvcName: storeSvc,
}
}