Documentation
¶
Index ¶
- type ArticleBrief
- type ArticleDetail
- type ArticleService
- type CommentData
- type CommentService
- type CommentWithUserInfo
- type FileBaseInfo
- type FileService
- type ImagesData
- type LogDetail
- type MessageService
- type QuestionnaireDetail
- type QuestionnaireService
- type QuestionnaireStatisticsRes
- type ServiceManger
- type SessionDetail
- type SessionListDetail
- type TaskDetail
- type TaskService
- type TaskStatus
- type TaskStatusDetail
- type UserCertification
- type UserDataRes
- type UserDetail
- type UserService
- type UtilsService
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 ¶
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 ¶
ImagesData 图片数据
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 服务管理器
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 用户逻辑
Click to show internal directories.
Click to hide internal directories.