services

package
v0.0.0-...-ec88339 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2019 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArticleBrief

type ArticleBrief struct {
	ID        string
	Title     string
	Publisher string
	Images    []ImagesData
}

ArticleBrief 公告简介

type ArticleDetail

type ArticleDetail struct {
	ID        primitive.ObjectID `bson:"_id,omitempty"` // ID
	ViewCount int64              `bson:"view_count"`    // 文章阅读数
	Title     string             // 文章标题
	Content   string             // 文章内容
	Publisher string             // 发布者名字
	Date      int64              // 发布时间
	Images    []ImagesData       // 首页图片
}

ArticleDetail 公告详情

type ArticleService

type ArticleService interface {
	GetArticles(page, size int64) (int64, []ArticleBrief)
	AddArticle(userID primitive.ObjectID, title string, content string, publisher string, images []primitive.ObjectID) primitive.ObjectID
	GetArticleByID(id primitive.ObjectID) ArticleDetail
	SetArticleByID(userID primitive.ObjectID, id primitive.ObjectID, title, content, publisher string, images []primitive.ObjectID)
}

ArticleService 公告服务

type CommentData

type CommentData struct {
	*CommentWithUserInfo
	Reply []CommentWithUserInfo
}

CommentData 评论数据

type CommentService

type CommentService interface {
	AddCommentForTask(userID, taskID primitive.ObjectID, content string)
	AddCommentForComment(userID, commentID primitive.ObjectID, content string)
	RemoveComment(userID, commentID primitive.ObjectID)
	ChangeLike(userID, commentID primitive.ObjectID, like bool)
	GetComments(contentID primitive.ObjectID, userID string, page, size int64, sort string) []CommentData
}

CommentService 评论服务

type CommentWithUserInfo

type CommentWithUserInfo struct {
	*models.CommentSchema
	// 额外项
	Own   models.UserBaseInfo
	User  models.UserBaseInfo
	Liked bool
	// 排除项
	ContentOwn omit `json:"content_own,omitempty"`
	UserID     omit `json:"user_id,omitempty"`
	IsReply    omit `json:"is_reply,omitempty"`
}

CommentWithUserInfo 带用户信息的评论数据

type FileBaseInfo

type FileBaseInfo struct {
	ID   primitive.ObjectID
	Type models.FileType
}

FileBaseInfo 文件基本信息

type FileService

type FileService interface {
	AddFile(file multipart.File, head multipart.FileHeader, fileType models.FileType,
		ownID primitive.ObjectID, name, description string, public bool) primitive.ObjectID
	BindFilesToTask(userID, taskID primitive.ObjectID, files []FileBaseInfo)
	BindFilesToUser(userID primitive.ObjectID, files []primitive.ObjectID)
	RemoveFile(fileID primitive.ObjectID)
	UpdateFileInfo(fileID, userID primitive.ObjectID, name, description string, public bool)
	RemoveUserFile(userID, fileID primitive.ObjectID)
	RemoveUselessFile(userID primitive.ObjectID, all bool) (removeCount int64)
}

FileService 用户逻辑

type ImagesData

type ImagesData struct {
	ID  string `json:"id"`
	URL string `json:"url"`
}

ImagesData 图片数据

type LogDetail

type LogDetail struct {
	*models.LogSchema
	// 排除项
	ID omit `json:"_id,omitempty"`
}

TaskDetail 任务数据

type MessageService

type MessageService interface {
	GetSessions(userID primitive.ObjectID, page, size int64) (res []SessionListDetail)
	GetSession(userID, sessionID primitive.ObjectID, page, size int64) SessionDetail
	GetSessionByUser(userID, targetID primitive.ObjectID, page, size int64) SessionDetail
	SendSystemMessage(userID, aboutID primitive.ObjectID, title, content string) (total int64)
	SendChatMessage(userID, targetID primitive.ObjectID, msg string) primitive.ObjectID
}

MessageService 消息服务

type QuestionnaireDetail

type QuestionnaireDetail struct {
	TaskID        string              `json:"id"`
	Title         string              `json:"title"`
	Owner         models.UserBaseInfo `json:"owner"`
	Description   string              `json:"description"`
	Anonymous     bool                `json:"anonymous"`
	QuestionCount int                 `json:"question_count"`
	Answer        int                 `json:"answer"`
}

QuestionnaireDetail 问卷详情信息

type QuestionnaireService

type QuestionnaireService interface {
	AddQuestionnaire(info models.QuestionnaireSchema)
	SetQuestionnaireInfo(userID primitive.ObjectID, info models.QuestionnaireSchema)
	GetQuestionnaireInfoByID(id primitive.ObjectID) (detail QuestionnaireDetail)
	GetQuestionnaireQuestionsByID(id primitive.ObjectID) (questions []models.ProblemSchema)
	SetQuestionnaireQuestions(userID primitive.ObjectID, id primitive.ObjectID, questions []models.ProblemSchema)
	GetQuestionnaireAnswersByID(userID primitive.ObjectID, id primitive.ObjectID) QuestionnaireStatisticsRes
	AddAnswer(id, userID primitive.ObjectID, statistics []models.ProblemDataSchema)
}

QuestionnaireService 问卷相关服务

type QuestionnaireStatisticsRes

type QuestionnaireStatisticsRes struct {
	Count int                       `json:"count"`
	Data  []models.StatisticsSchema `json:"data"`
}

QuestionnaireStatisticsRes 问卷信息数据

type ServiceManger

type ServiceManger struct {
	User          UserService
	Article       ArticleService
	Task          TaskService
	File          FileService
	Questionnaire QuestionnaireService
	Comment       CommentService
	Message       MessageService
	Utils         UtilsService
}

ServiceManger 服务管理器

func GetServiceManger

func GetServiceManger() *ServiceManger

GetServiceManger 获取服务管理器

type SessionDetail

type SessionDetail struct {
	*models.SessionSchema
	// 额外项
	Target      models.UserBaseInfo `json:"target_user"`
	UnreadCount int64               `json:"unread_count"`
	// 排除项
	User1   omit `json:"user_1,omitempty"`
	User2   omit `json:"user_2,omitempty"`
	Unread1 omit `json:"unread_1,omitempty"`
	Unread2 omit `json:"unread_2,omitempty"`
}

SessionDetail 会话详细

type SessionListDetail

type SessionListDetail struct {
	*SessionDetail
	// 排除项
	Messages omit `json:"messages,omitempty"`
}

SessionListDetail 会话列表信息

type TaskDetail

type TaskDetail struct {
	*models.TaskSchema
	// 额外项
	Publisher  models.UserBaseInfo
	Attachment []models.FileSchema
	Images     []ImagesData
	Liked      bool
	Collected  bool
	Played     bool
	// 排除项
	LikeID omit `json:"like_id,omitempty"` // 点赞用户ID
}

TaskDetail 任务数据

type TaskService

type TaskService interface {
	AddTask(userID primitive.ObjectID, info models.TaskSchema,
		images, attachments []primitive.ObjectID, publish bool) primitive.ObjectID
	SetTaskInfo(userID, taskID primitive.ObjectID, info models.TaskSchema,
		images, attachments []primitive.ObjectID)
	GetTaskByID(taskID primitive.ObjectID, userID string, biref bool) (task TaskDetail)
	GetTasks(page, size int64, sortRule, taskType,
		status, reward, keyword, user, userID string, biref bool) (taskCount int64, tasks []TaskDetail)
	RemoveTask(userID, taskID primitive.ObjectID)
	AddView(taskID primitive.ObjectID)
	ChangeLike(taskID, userID primitive.ObjectID, like bool)
	ChangeCollection(taskID, userID primitive.ObjectID, collect bool)
	AddPlayer(taskID, userID primitive.ObjectID, note string) bool
	GetTaskStatus(taskID, userID, postUserID primitive.ObjectID) (taskStatusList TaskStatus)
	SetTaskStatusInfo(taskID, userID, postUserID primitive.ObjectID, taskStatus models.TaskStatusSchema)
	GetTaskPlayer(taskID primitive.ObjectID, status string, page, size int64) (taskCount int64, taskStatusList []TaskStatus)
	GetQRCode(taskID primitive.ObjectID) string
	// contains filtered or unexported methods
}

TaskService 任务服务

type TaskStatus

type TaskStatus struct {
	*models.TaskStatusSchema
	// 额外项
	Player models.UserBaseInfo
	//排除项
	ID omit `json:"id,omitempty"` // 状态ID
}

TaskStatus 任务参与情况

type TaskStatusDetail

type TaskStatusDetail struct {
	Status TaskStatus
	Task   TaskDetail
}

TaskStatusDetail 任务参与详情

type UserCertification

type UserCertification struct {
	Type     models.UserIdentity
	Status   models.CertificationStatus
	Email    string
	Data     string
	Date     int64
	Material []models.FileSchema `json:"material,omitempty"`
}

UserCertification 用户认证信息

type UserDataRes

type UserDataRes struct {
	*models.UserDataSchema
	// 额外项
	Attendance   bool  // 是否签到
	CollectCount int64 // 收藏任务数
	Follower     bool  // 是否为自己的粉丝
	Following    bool  // 是否已关注
	// 排除项
	AttendanceDate omit `json:"attendance_date,omitempty"`
	CollectTasks   omit `json:"collect_tasks,omitempty"`
	SearchHistory  omit `json:"search_history,omitempty"`
}

UserDataRes 用户数据返回值

type UserDetail

type UserDetail struct {
	UserID        primitive.ObjectID `json:"-"`
	ID            string             `json:"id"`
	VioletName    string             `json:"violet_name,omitempty"`
	WechatName    string             `json:"wechat_name,omitempty"`
	RegisterTime  int64
	Info          models.UserInfoSchema
	Data          *UserDataRes
	Certification *UserCertification
}

UserDetail 用户详细信息

type UserService

type UserService interface {
	GetLoginURL() (url, state string)
	GetUser(id primitive.ObjectID, isMe bool) UserDetail
	GetUserBaseInfo(id primitive.ObjectID) models.UserBaseInfo
	UserAttend(id primitive.ObjectID)
	UserPay(id primitive.ObjectID)
	SetUserInfo(id primitive.ObjectID, info models.UserInfoSchema)
	LoginByViolet(code string) (id string, new bool)
	LoginByWechat(code string) (id string, new bool)
	LoginByWechatOnPC(userID, sessionID primitive.ObjectID)
	GetSessionUser(sessionID primitive.ObjectID) primitive.ObjectID
	SetUserType(admin primitive.ObjectID, id primitive.ObjectID, userType models.UserType)
	SearchUser(key string, page, size int64) []UserDetail
	GetUserCollections(id primitive.ObjectID, page, size int64, sortRule string, taskType string,
		status string, reward string) (taskCount int64, taskCards []TaskDetail)
	GetUserParticipate(id primitive.ObjectID, page, size int64, status string) (taskStatusCount int64, taskStatusDetailList []TaskStatusDetail)
	// 搜索相关
	GetSearchHistory(id primitive.ObjectID) []string
	ClearSearchHistory(id primitive.ObjectID)
	// 认证相关
	CancelCertification(id primitive.ObjectID)
	UpdateCertification(id primitive.ObjectID, operate, data string)
	CheckCertification(id primitive.ObjectID, code string) string
	SendCertificationEmail(id primitive.ObjectID, email string)
	AddEmailCertification(identity models.UserIdentity, id primitive.ObjectID, data, email string)
	AddMaterialCertification(identity models.UserIdentity, id primitive.ObjectID, data string, attachment []primitive.ObjectID)
	GetCertificationList(userID primitive.ObjectID, types []models.CertificationStatus, page, size int64) (users []UserDetail)
	GetAutoCertification(userID primitive.ObjectID, page, size int64) (keys []models.SystemSchemas)
	AddAutoCertification(userID primitive.ObjectID, key, data string)
	RemoveAutoCertification(userID primitive.ObjectID, key string)
	// 关注相关
	GetFollowing(id primitive.ObjectID, page, size int64) ([]models.UserBaseInfo, int64)
	GetFollower(id primitive.ObjectID, page, size int64) ([]models.UserBaseInfo, int64)
	FollowUser(userID, followID primitive.ObjectID)
	UnFollowUser(userID, followID primitive.ObjectID)
	IsFollower(userID, followID primitive.ObjectID) bool
	IsFollowing(userID, followID primitive.ObjectID) bool
}

UserService 用户逻辑

type UtilsService

type UtilsService interface {
	GetLogs(page, size int64, logsType string, userID, postUserID primitive.ObjectID, startDate, endDate int64) (logsCount int64, logs []LogDetail)
}

TaskService 任务服务

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL