user_base_dto.go 1.5 KB
package dto

import (
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-user/pkg/domain"
	"time"
)

type UserBaseDto struct {
	// 用户基础数据id
	UserBaseId int64 `json:"userBaseId,omitempty"`
	// 手机号码
	//Account string `json:"phone,omitempty"`
	// 最后登录时间
	LastLogIn string `json:"lastLogIn"`
	// 用户信息 (冗余,数据存在userBase里面)
	UserInfo *domain.UserInfo `json:"userInfo,omitempty"`
	// 账号状态 1:正常 2.禁用 3:注销
	Status int `json:"status,omitempty"`
	// 推荐人
	Referer string `json:"referer"`
	// 关联的用户 (冗余)
	// RelatedUsers []int64 `json:"relatedUsers,omitempty"`
	// 用户关联的组织
	UserOrg []interface{} `json:"userOrg"`
	// 创建时间
	RegistrationDate string `json:"registrationDate,omitempty"`
}

func (dto *UserBaseDto) LoadDto(userBase *domain.UserBase, relateUsers []*domain.User) error {
	dto.UserBaseId = userBase.UserBaseId
	//dto.Account = userBase.Account
	dto.LastLogIn = ""
	dto.UserInfo = userBase.UserInfo
	if userBase.Favorite != nil {
		if userBase.Favorite.LastLogInAt > 0 {
			t := time.Unix(userBase.Favorite.LastLogInAt, 0)
			dto.LastLogIn = t.Format("2006-01-02 15:04:05")
		}
		dto.Referer = userBase.Favorite.Referer
	}
	dto.Status = userBase.Status
	for i := range relateUsers {
		dto.UserOrg = append(dto.UserOrg, map[string]interface{}{
			"orgId":   relateUsers[i].OrganizationId,
			"orgName": relateUsers[i].Ext.OrgName,
		})
	}
	dto.RegistrationDate = userBase.CreatedAt.Format("2006-01-02")
	return nil
}