package logic import ( "context" "git.i2edu.net/i2/i2-bill-erp/internal/svc" "git.i2edu.net/i2/i2-bill-erp/model" "git.i2edu.net/i2/i2-bill-erp/transform" "git.i2edu.net/i2/go-zero/core/logx" "git.i2edu.net/i2/go-zero/core/stores/sqlc" ) type GetUserLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewGetUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserLogic { return &GetUserLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } func (l *GetUserLogic) GetUser(in *transform.UserRequest) (*transform.UserResponse, error) { tfr, user := transform.UserResponse{}, &model.SysUser{} var err error if in.Id != "" { user, err = l.svcCtx.SysUserModel.FindOne(in.Id) if err != nil && err != sqlc.ErrNotFound { return nil, err } } else if in.Phone != "" { user, err = l.svcCtx.SysUserModel.FindOneByPhone(in.Phone) if err != nil && err != sqlc.ErrNotFound { return nil, err } } tfr.Id = user.Id tfr.Phone = user.Mobile tfr.Status = user.Status.Int64 ext, err := l.svcCtx.ErpUtil.InRoles(user.Id, "TMKZHUGUAN", "LAMK", "TMKmanager", "TMKassistant", "NetTMKdirector", "NetTMKassistant", "LAMKM", "LATMK") if err != nil { return nil, err } tfr.IsJzMk = ext mk, err := l.svcCtx.MktPartTimeUser.FindOneByPhone(in.Phone) if err == nil && mk.Id != 0 { tfr.IsJzMem = true return nil, err } return &tfr, nil }