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 user model.SysUser if in.Id != "" && in.Id != "0" { u, err := l.svcCtx.SysUserModel.FindOne(in.Id) if err != nil && err != sqlc.ErrNotFound { return &transform.UserResponse{}, err } 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 &transform.UserResponse{}, err } else if u != nil { user = *u } } if user.Id == "" { return &transform.UserResponse{}, nil } var tfr transform.UserResponse tfr.Id = user.Id tfr.Phone = user.Mobile tfr.Status = user.Status.Int64 tfr.Gender = user.Gender tfr.UserName = user.Name tfr.ErpRoleType = 1 sql := ` select base_organ.name from sys_user_school left join base_organ_school on sys_user_school.os_id = base_organ_school.id left join base_organ on base_organ.id = base_organ_school.organ_id where sys_user_school.user_id = ? and sys_user_school.del_flag = 0 ` var cityName string if _, err := l.svcCtx.DB.SQL(sql, user.Id).Get(&cityName); err != nil { return &transform.UserResponse{}, err } tfr.CityName = cityName return &tfr, nil }