92 lines
2.4 KiB
Go
92 lines
2.4 KiB
Go
package common
|
|
|
|
import (
|
|
"context"
|
|
"strconv"
|
|
|
|
"lone-services/pkg/modelbase"
|
|
"lone-services/pkg/utils"
|
|
analysis "lone-services/rpc/analysis/pb"
|
|
"lone-services/services/analysis/internal/dao"
|
|
"lone-services/services/analysis/internal/model"
|
|
)
|
|
|
|
func RequireAdmin(ctx context.Context) (utils.UserInfo, *analysis.Response) {
|
|
user := utils.GetUserFromCtx(ctx)
|
|
if user.ID < utils.NumberOne {
|
|
return user, FailResponse(utils.ErrorNoLoginInfo)
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
func RequireBizUserId(ctx context.Context) (int64, utils.UserInfo, *analysis.Response) {
|
|
user := utils.GetUserFromCtx(ctx)
|
|
if user.BizId < utils.NumberOne {
|
|
return utils.NumberZero, user, OutResponse(utils.ErrorParams, "业务用户不存在")
|
|
}
|
|
return user.BizId, user, nil
|
|
}
|
|
|
|
func RequireStoreId(ctx context.Context) (int64, utils.UserInfo, *analysis.Response) {
|
|
user := utils.GetUserFromCtx(ctx)
|
|
if !user.Valid {
|
|
return utils.NumberZero, user, FailResponse(utils.ErrorNoLogin)
|
|
}
|
|
if user.Type != dao.TypeStore {
|
|
return utils.NumberZero, user, FailResponse(utils.ErrorAuthority)
|
|
}
|
|
|
|
storeId := user.BizId
|
|
if storeId < utils.NumberOne {
|
|
return utils.NumberZero, user, OutResponse(utils.ErrorParams, "门店信息不存在")
|
|
}
|
|
return storeId, user, nil
|
|
}
|
|
|
|
func RequireUserLogin(ctx context.Context) (utils.UserInfo, *analysis.Response) {
|
|
user := utils.GetUserFromCtx(ctx)
|
|
if !user.Valid {
|
|
return user, FailResponse(utils.ErrorNoLogin)
|
|
}
|
|
if user.Type != dao.TypeUser {
|
|
return user, FailResponse(utils.ErrorAuthority)
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
func RequireAnalysisUserId(ctx context.Context) (int64, utils.UserInfo, *analysis.Response) {
|
|
user, fail := RequireUserLogin(ctx)
|
|
if fail != nil {
|
|
return utils.NumberZero, user, fail
|
|
}
|
|
if user.BizId < utils.NumberOne {
|
|
return utils.NumberZero, user, OutResponse(utils.ErrorParams, "业务用户不存在")
|
|
}
|
|
return user.BizId, user, nil
|
|
}
|
|
|
|
func LoadAnalysisUser(id int64) (*dao.User, error) {
|
|
var row dao.User
|
|
err := model.UserModel{}.Init().GetOne(modelbase.Params{
|
|
Eq: map[string]string{"id": strconv.FormatInt(id, utils.NumberTen)},
|
|
}, &row)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if row.Id < utils.NumberOne {
|
|
return nil, nil
|
|
}
|
|
return &row, nil
|
|
}
|
|
|
|
func SkinTypeOf(clientCode string) (int32, bool) {
|
|
switch clientCode {
|
|
case dao.ClientCodeUserSkin:
|
|
return dao.SkinTypeUser, true
|
|
case dao.ClientCodeStoreSkin:
|
|
return dao.SkinTypeStore, true
|
|
default:
|
|
return 0, false
|
|
}
|
|
}
|