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 tfr.Gender = user.Gender tfr.UserName = user.Name ext, err := l.svcCtx.ErpUtil.InRoles(user.Id, "TMKZHUGUAN", "LAMK", "TMKmanager", "TMKassistant", "NetTMKdirector", "NetTMKassistant", "LAMKM", "LATMK") if err != nil { return &tfr, nil } else if ext { tfr.ErpRoleType = 1 } if in.Phone != "" { var mk model.MktPartTimeUser err := l.svcCtx.SqlConn.QueryRowPartial(&mk, ` SELECT mkt_part_time_user.id, mkt_part_time_user.name, mkt_part_time_user.sex, mkt_part_time_user.name, mkt_part_time_user.ipone_number, mkt_part_time_user_city.name city_name, mkt_part_time_user_city.organ_id FROM mkt_part_time_user LEFT JOIN ( SELECT mkt_part_time_user_city.organ_id, mkt_part_time_user_city.ptuser_id, base_organ.name FROM mkt_part_time_user_city,base_organ WHERE base_organ.id = mkt_part_time_user_city.organ_id ) mkt_part_time_user_city ON mkt_part_time_user_city.ptuser_id = mkt_part_time_user.id WHERE del_flag = 0 and ipone_number=? `, in.Phone) if err != nil { logx.Error(err) return &tfr, nil } if err == nil && mk.Id != 0 { tfr.ErpRoleType = 2 tfr.Gender = mk.Sex.Int64 tfr.UserName = mk.Name.String tfr.CityName = mk.CityName.String return &tfr, nil } } return &tfr, err }