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) { var tfr transform.UserResponse var user model.SysUser if in.Id != "" && in.Id != "0" { u, err := l.svcCtx.SysUserModel.FindOne(in.Id) if err != nil && err != sqlc.ErrNotFound { return &tfr, nil } else if u != nil { user = *u } } else if in.Phone != "" { u, err := l.svcCtx.SysUserModel.FindOneByPhone(in.Phone) if err != nil && err != sqlc.ErrNotFound { return &tfr, nil } else if u != nil { user = *u } } 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 &tfr, nil } tfr.IsJzMk = ext if in.Phone != "" { mk, err := l.svcCtx.MktPartTimeUser.FindOneByPhone(in.Phone) if err == nil && mk.Id != 0 { tfr.IsJzMem = true return &tfr, nil } } return &tfr, err }