rest_user_service.go 4.0 KB
package domain_service

import (
	"encoding/json"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/service_gateway/adaptor"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log"
)

type UserService struct {
}

// UserFrom 获取普通用户
func (service *UserService) UserFrom(companyId int64, orgId int64, userId int64) (*domain.User, error) {
	var returnData *domain.User
	if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
		return nil, err
	} else {
		if user, err := userAdaptor.ToParticipator(companyId, orgId, userId, "User"); err != nil {
			return nil, err
		} else {
			if user != nil {
				err := json.Unmarshal(user.([]byte), returnData)
				if err != nil {
					return nil, err
				}
			}
			return returnData, nil
		}
	}
}

// ReferrerFrom 获取推荐人
func (service *UserService) ReferrerFrom(companyId int64, orgId int64, userId int64) (*domain.Referrer, error) {
	var returnData *domain.Referrer
	if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
		return nil, err
	} else {
		if referrer, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Referrer"); err != nil {
			return nil, err
		} else {
			if referrer != nil {
				err := json.Unmarshal(referrer.([]byte), returnData)
				if err != nil {
					return nil, err
				}
			}
			return returnData, nil
		}
	}
}

// UndertakerFrom 获取承接人
func (service *UserService) UndertakerFrom(companyId int64, orgId int64, userId int64) (*domain.Undertaker, error) {
	var returnData *domain.Undertaker
	if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
		return nil, err
	} else {
		if undertaker, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Undertaker"); err != nil {
			return nil, err
		} else {
			if undertaker != nil {
				err := json.Unmarshal(undertaker.([]byte), returnData)
				if err != nil {
					return nil, err
				}
			}
			return returnData, nil
		}
	}
}

// RelevantFrom 获取相关人
func (service *UserService) RelevantFrom(companyId int64, orgId int64, userId int64) (*domain.Relevant, error) {
	var returnData *domain.Relevant
	if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
		return nil, err
	} else {
		if relevant, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Relevant"); err != nil {
			return nil, err
		} else {
			if relevant != nil {
				err := json.Unmarshal(relevant.([]byte), returnData)
				if err != nil {
					return nil, err
				}
			}
			return returnData, nil
		}
	}
}

// SalesmanFrom 获取业务员
func (service *UserService) SalesmanFrom(companyId int64, orgId int64, userId int64) (*domain.Salesman, error) {
	var returnData *domain.Salesman
	if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
		return nil, err
	} else {
		if salesman, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Salesman"); err != nil {
			return nil, err
		} else {
			if salesman != nil {
				err := json.Unmarshal(salesman.([]byte), returnData)
				if err != nil {
					return nil, err
				}
			}
			return returnData, nil
		}
	}
}

// OperatorFrom 获取操作人
func (service *UserService) OperatorFrom(companyId int64, orgId int64, userId int64) (*domain.User, error) {
	var returnData *domain.User
	if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
		return nil, err
	} else {
		if operator, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Operator"); err != nil {
			return nil, err
		} else {
			if operator != nil {
				log.Logger.Debug("操作人", map[string]interface{}{
					"operator interface": operator,
				})
				operatorJson, err1 := json.Marshal(operator)
				if err1 != nil {
					return nil, err
				}
				log.Logger.Debug("操作人", map[string]interface{}{
					"operator json": operatorJson,
				})
				err2 := json.Unmarshal(operatorJson, &returnData)
				if err2 != nil {
					return nil, err2
				}
			}
			return returnData, nil
		}
	}
}

func NewUserService() (*UserService, error) {
	return &UserService{}, nil
}