chore: init bj_power monorepo (dashboard/mes/wms/wms_client/workstation), clear subproject git metadata and align naming to folder names
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"bj_power_mes/common/errorx"
|
||||
xhttp "bj_power_mes/common/httpx"
|
||||
"bj_power_mes/ent"
|
||||
"bj_power_mes/ent/user"
|
||||
"bj_power_mes/internal/svc"
|
||||
"bj_power_mes/internal/types"
|
||||
|
||||
"github.com/jinzhu/copier"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type UserinfoLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
// 获取当前用户信息
|
||||
func NewUserinfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserinfoLogic {
|
||||
return &UserinfoLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *UserinfoLogic) Userinfo() (resp *types.UserInfoReply, err error) {
|
||||
userId := xhttp.GetUidFromCtx(l.ctx)
|
||||
query := l.svcCtx.EntClient.User.Query().Where(user.ID(int(userId))).WithDept().WithRole()
|
||||
u, err := query.Only(l.ctx)
|
||||
if err != nil {
|
||||
if ent.IsNotFound(err) {
|
||||
return nil, errorx.New(errorx.UserNotFound)
|
||||
}
|
||||
return nil, fmt.Errorf("获取用户信息失败: %w", err)
|
||||
}
|
||||
|
||||
resp = new(types.UserInfoReply)
|
||||
if err := copier.Copy(resp, u); err != nil {
|
||||
l.Errorf("用户信息拷贝失败: %v", err)
|
||||
}
|
||||
|
||||
resp.CreatedAt = u.CreatedAt.Unix()
|
||||
|
||||
if u.Edges.Dept != nil {
|
||||
resp.DeptId = u.Edges.Dept.ID
|
||||
resp.DeptName = u.Edges.Dept.Name
|
||||
}
|
||||
|
||||
if u.Edges.Role != nil {
|
||||
resp.RoleId = u.Edges.Role.ID
|
||||
resp.RoleName = u.Edges.Role.Name
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
Reference in New Issue
Block a user