package user import ( "errors" userDao "eta/eta_mini_ht_api/models/user" "time" ) type FollowDTO struct { UserId int `json:"userId"` AnalystId int `json:"analystId"` AnalystName string `json:"analystName"` FollowType string `json:"followType"` FollowedTime time.Time `json:"followedTime"` } func convertToCrmFollowingAnalyst(dto FollowDTO) userDao.UserAnalystFollowList { return userDao.UserAnalystFollowList{ FinancialAnalystID: dto.AnalystId, FinancialAnalystName: dto.AnalystName, FollowedTime: time.Now(), Followed: followType(dto.FollowType), UserID: dto.UserId, } } func GetPostUser(authorName string, PublishTime string) (ids []int) { return userDao.GetPostUser(authorName, PublishTime) } func convertToFollowDTO(follow userDao.UserAnalystFollowList) (dto FollowDTO) { return FollowDTO{ UserId: follow.UserID, AnalystId: follow.FinancialAnalystID, AnalystName: follow.FinancialAnalystName, FollowType: string(follow.Followed), FollowedTime: follow.FollowedTime, } } func convertFollowStatusToFollowDTO(follow userDao.FollowStatus) (dto FollowDTO) { return FollowDTO{ AnalystName: follow.FinancialAnalystName, FollowType: string(follow.Followed), } } func followType(followType string) userDao.FollowingType { switch followType { case "following": return userDao.Following case "unfollowed": return userDao.Unfollowed default: return "" } } func FollowAnalystsByName(userId int, analysts []FollowDTO, follow string) error { flType := followType(follow) var userFollows []userDao.UserAnalystFollowList if flType == "" { return errors.New("关注状态非法") } for _, analyst := range analysts { userFollow := convertToCrmFollowingAnalyst(analyst) userFollow.Followed = flType userFollows = append(userFollows, userFollow) } return userDao.FollowAnalystsByName(userId, userFollows, flType) } func CheckFollowStatusByNames(userId int, names []string) (follows []FollowDTO, err error) { list, err := userDao.CheckFollowStatusByNames(userId, names) if err != nil { return } for _, follow := range list { follows = append(follows, convertFollowStatusToFollowDTO(follow)) } return } func GetFollowingAnalystList(userId int) (dtoList []FollowDTO, err error) { list, err := userDao.GetFollowingAnalystList(userId) if err != nil { return } for _, follow := range list { dtoList = append(dtoList, convertToFollowDTO(follow)) } return } func GetFollowed(userId int, analystId int) string { return userDao.GetFollowed(userId, analystId) } func FollowAnalyst(dto FollowDTO) (err error) { follow := convertToCrmFollowingAnalyst(dto) return userDao.FollowAnalyst(follow) } func GetFollowing(userId int, analystId int) string { return userDao.GetFollowing(userId, analystId) }