model

package
v0.0.0-...-79bd89f Latest Latest
Warning

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

Go to latest
Published: May 16, 2016 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package model provides model-level struct

Index

Constants

View Source
const (
	PeerToPeer = iota //private msg server <<-->> client
	Discuss           //group chat server <<-->> client
	//system call
	UserJoined //server -->> client
	UserLeft   //server -->> client

	InvitedToProject  //server -->> client
	KickedFromProject //server -->> client

	DeliveredMission //server -->> client
	InvitedToMission //server -->> client
)
View Source
const (
	UserInsert = "" /* 192-byte string literal not displayed */
	UserUpdate = "" /* 151-byte string literal not displayed */
	UserDelete = "DELETE FROM user WHERE redis_id = ?"

	TodoInsert = "" /* 204-byte string literal not displayed */
	TodoUpdate = "" /* 141-byte string literal not displayed */
	TodoDelete = "DELETE FROM todo WHERE redis_id = ?"

	MissionInsert = "" /* 165-byte string literal not displayed */
	MissionUpdate = "UPDATE mission SET name=?, describtion=?, publisher=?, completion_num=?, completed_time=?, deadine=? WHERE redis_id=?"
	MissionDelete = "DELETE FROM mission WHERE redis_id = ?"

	ProjectInsert = "" /* 131-byte string literal not displayed */
	ProjectUpdate = "UPDATE project SET name=?, describtion=?, background_pic=?, private=? WHERE redis_id=?"
	ProjectDelete = "DELETE FROM project WHERE redis_id = ?"
)
View Source
const (
	UId         = "id"
	UPid        = "pid"
	USamId      = "samId"
	UCreateTime = "createTime"
	UAlias      = "alias"
	UName       = "name"
	UPhone      = "phone"
	UPassword   = "password"
	UEmail      = "email"
	UAvatar     = "avatar"
	USchool     = "school"
	UDep        = "depart"
	UGrade      = "grade"
	UClass      = "class"
	UStuNum     = "stuNum"
)

user redis key name

View Source
const (
	TId         = "id"
	TPid        = "pid"
	TCreateTime = "createTime"
	TStartTime  = "startTime"
	TPlace      = "place"
	TRepeat     = "repeat"
	TAllDay     = "allDay"
	TRepeatMode = "repeatMode"
	TDesc       = "desc"
	TRemark     = "remark"
	TOwnerId    = "ownerId"
	TDone       = "done"
	TFinishTime = "finishTime"
	TMissionId  = "missionId"
)

to-do thing redis key name

View Source
const (
	MId            = "id"
	MPid           = "pid"
	MName          = "name"
	MCreateTime    = "createTime"
	MDesc          = "desc"
	MPublisherId   = "publisherId"
	MCompletionNum = "completionNum"
	MCompletedTime = "completedTime"
	MDeadline      = "deadline"
	MProjectId     = "projectId"
	//comments
	CId         = "id"
	CPid        = "pid"
	CCreateTime = "createTime"
	CCriticPid  = "criticPid"
	CCriticName = "criticName"
)

mission redis key name

View Source
const (
	PId            = "id"
	PPid           = "pid"
	PName          = "name"
	PCreateTime    = "createTime"
	PDesc          = "desc"
	PBackgroundPic = "backgroundPic"
	PCreatorId     = "creatorId"
	PPrivate       = "private"
)

project redis key name

View Source
const (
	ChId   = "id"
	ChPid  = "pid"
	ChType = "type"
	//ChTarget    = "target"
	ChMsg       = "msg"
	ChGroupName = "groupName"
	ChFrom      = "from"
	ChTimeStamp = "timestamp"
	ChInfo      = "info"
	ChDealt     = "dealt"
)

Variables

This section is empty.

Functions

func CreateMissionMysql

func CreateMissionMysql(m Mission)

CreateMissionMysql creates mission in mysql

func CreateProjectMysql

func CreateProjectMysql(p Project)

CreateProjectMysql creates project in mysql

func CreateTodoMysql

func CreateTodoMysql(t Todo)

CreateTodoMysql creates to-do in mysql

func CreateUserMysql

func CreateUserMysql(u User)

CreateUserMysql creates user in mysql

func DeleteMissionMysql

func DeleteMissionMysql(mid int)

DeleteMissionMysql deletes mission in mysql

func DeleteProjectMysql

func DeleteProjectMysql(pid int)

DeleteProjectMysql deletes project in mysql

func DeleteTodoMysql

func DeleteTodoMysql(tid int)

DeleteTodoMysql deletes to-do in mysql

func DeleteUserMysql

func DeleteUserMysql(uid int)

DeleteUserMysql deletes user in mysql

func SyncMysql

func SyncMysql()

SyncMysql sync with redis

func UpdateMissionMysql

func UpdateMissionMysql(m Mission)

UpdateMissionMysql updates mission in mysql

func UpdateProjectMysql

func UpdateProjectMysql(p Project)

UpdateProjectMysql updates project in mysql

func UpdateTodoMysql

func UpdateTodoMysql(t Todo)

UpdateTodoMysql updates to-do in mysql

func UpdateUserMysql

func UpdateUserMysql(u User)

UpdateUserMysql updates user in mysql

Types

type Chat

type Chat struct {
	Id   int    `json:"-" redis:"id"`
	Pid  string `json:"id,omitempty" redis:"pid"`
	Type int    `json:"type" redis:"type"`
	Msg  string `json:"msg,omitempty" redis:"msg"`
	//Target         string            `json:"target,omitempty" redis:"target"`       //joined or left user
	GroupName      string            `json:"groupName,omitempty" redis:"groupName"` //as mission's name
	From           string            `json:"from,omitempty" redis:"from"`
	SenderId       int               `json:"-" redis:"-"` //server side use
	To             []string          `json:"to,omitempty" redis:"to"`
	ReceiversId    []int             `json:"-" redis:"-"` //server side use
	Timestamp      int64             `json:"timestamp,omitempty" redis:"timestamp"`
	ExtraInfo      map[string]string `json:"extraInfo" redis:"-"`
	SerializedInfo string            `json:"-" redis:"info"` //serialize from extra info
	Dealt          bool              `json:"dealt,omitempty" redis:"dealt"`
}

func InitedChat

func InitedChat(id int) (c *Chat)

InitedChat returns a full loaded chat object by id

func (*Chat) AddToOffline

func (ct *Chat) AddToOffline(uid int)

func (*Chat) Response

func (ct *Chat) Response()

Response deals with the chat message

func (*Chat) Save

func (ct *Chat) Save()

Save saves the offline chat message

type Comment

type Comment struct {
	Id         int    `json:"-" redis:"id"`
	Pid        string `json:"id,omitempty" redis:"pid"`
	CreateTime int64  `json:"createTime,omitempty" redis:"createTime"`
	MissionPid string `json:"-" redis:"-"`
	CriticPid  string `json:"uid,omitempty" redis:"criticPid"`
	CriticName string `json:"uName,omitempty" redis:"criticName"`
}

func (*Comment) Save

func (cm *Comment) Save()

Save a comment

type Mission

type Mission struct {
	Id            int       `json:"-" redis:"id"`                            //private id
	Pid           string    `json:"id,omitempty" redis:"pid"`                //public id
	CreateTime    int64     `json:"createTime,omitempty" redis:"createTime"` //create time timestamp of this mission
	Name          string    `json:"name,omitempty" redis:"name"`
	Desc          string    `json:"desc,omitempty" redis:"desc"` //description for the mission
	Pictures      []string  `json:"pictures,omitempty" redis:"-"`
	PublisherId   int       `json:"publisherId,omitempty" redis:"publisherId"`     //who published the mission
	ReceiversId   []int     `json:"receiversId,omitempty" redis:"-"`               //user list who accepted the mission
	CompletionNum int       `json:"completionNum,omitempty" redis:"completionNum"` //completed number
	CompletedTime int64     `json:"completedTime,omitempty" redis:"completedTime"`
	Deadline      int64     `json:"deadline,omitempty" redis:"deadline"`
	Comments      []Comment `json:"comments,omitempty" redis:"-"`
	ProjectId     int       `json:"projectId,omitempty" redis:"projectId"` //belong to which mission
}

func InitedMission

func InitedMission(id int) (m *Mission)

InitedMission returns a full loaded mission object by id

func (*Mission) AddReceiver

func (m *Mission) AddReceiver(uid int) (err error)

AddReceiver adds a user to mission's receiver set

func (*Mission) ForceSave

func (m *Mission) ForceSave()

ForceSave a new mission

func (*Mission) GetComments

func (m *Mission) GetComments() (comments []Comment)

GetComments gets mission's comments

func (*Mission) GetCompletedUsersId

func (m *Mission) GetCompletedUsersId() []int

GetCompletedUsersId gets users id slice who have completed the mission

func (*Mission) GetPictures

func (m *Mission) GetPictures() (pics []string)

GetPictures return mission's pics

func (*Mission) GetReceiversId

func (m *Mission) GetReceiversId() []int

GetReceiversId gets mission's receivers' id slice

func (*Mission) GetReceiversName

func (m *Mission) GetReceiversName() []string

GetReceiversName gets mission's receivers' name

func (*Mission) Remove

func (m *Mission) Remove() (err error)

Remove deletes a mission

func (*Mission) Save

func (m *Mission) Save()

Save a new mission

func (*Mission) Sync

func (m *Mission) Sync()

Sync reloads mission from db

func (*Mission) UpdateCompleteNum

func (m *Mission) UpdateCompleteNum()

UpdateCompleteNum when user-completed num changed

func (*Mission) UpdatePics

func (m *Mission) UpdatePics(pics []string) (err error)

UpdatePics update to-do's pictures list

type Project

type Project struct {
	Id            int    `json:"-" redis:"id"`             //private id
	Pid           string `json:"id,omitempty" redis:"pid"` //public id
	Name          string `json:"name,omitempty" redis:"name"`
	CreateTime    int64  `json:"createTime,omitempty" redis:"createTime"` //create time timestamp of this project
	Desc          string `json:"desc,omitempty" redis:"desc"`             //description for the project
	BackgroundPic string `json:"backgroundPic,omitempty" redis:"backgroundPic"`
	CreatorId     int    `json:"creatorId,omitempty" redis:"creatorId"` //who created the project
	Private       bool   `json:"private,omitempty" redis:"private"`
	MembersId     []int  `json:"membersId,omitempty" redis:"-"` //user list who in this project
}

func InitedProject

func InitedProject(id int) (p *Project)

InitedProject returns a full loaded project object by id

func (*Project) AddMember

func (p *Project) AddMember(uid int) (err error)

AddMember adds a user to project members

func (*Project) GetCreator

func (p *Project) GetCreator() (creator *User)

GetCreator gets project's creator

func (*Project) GetMembers

func (p *Project) GetMembers() (members []*User)

GetMembers gets project members

func (*Project) GetMembersId

func (p *Project) GetMembersId() []int

GetMembersId gets project members id

func (*Project) GetMembersName

func (p *Project) GetMembersName() []string

GetMembersName gets project members name

func (*Project) GetMissions

func (p *Project) GetMissions() (missions []*Mission)

GetMission gets project's missions

func (*Project) Remove

func (p *Project) Remove() (err error)

Remove deletes a project

func (*Project) RemoveMember

func (p *Project) RemoveMember(uid int) (err error)

RemoveMember removes a user from project members

func (*Project) Save

func (p *Project) Save()

Save a project

func (*Project) Sync

func (p *Project) Sync()

Sync reloads project from db

type Todo

type Todo struct {
	Id         int      `json:"-" redis:"id"` //private id
	Pid        string   `json:"id,omitempty" redis:"pid"`
	CreateTime int64    `json:"createTime,omitempty" redis:"createTime"` //create time timestamp of this todo
	StartTime  int64    `json:"startTime,omitempty" redis:"startTime"`   //start timestamp of this action
	Place      string   `json:"place,omitempty" redis:"place"`
	Pictures   []string `json:"pictures,omitempty" redis:"-"`
	Repeat     bool     `json:"repeat,omitempty" redis:"repeat"`
	RepeatMode int      `json:"repeatMode,omitempty" redis:"repeatMode"`
	AllDay     bool     `json:"allDay,omitempty" redis:"allDay"`
	Desc       string   `json:"desc,omitempty" redis:"desc"` //description for the action
	Remark     string   `json:"remark,omitempty" redis:"remark"`
	OwnerId    int      `json:"ownerId,omitempty" redis:"ownerId"` //whose
	Done       bool     `json:"done,omitempty" redis:"done"`
	FinishTime int64    `json:"finishTime,omitempty" redis:"finishTime"`
	MissionId  int      `json:"missionId,omitempty" redis:"missionId"` //belong to which mission
}

func InitedTodo

func InitedTodo(id int) (td *Todo)

InitedTodo returns a full loaded to-do object by id

func (*Todo) Finish

func (td *Todo) Finish() (err error)

Finish updates to-do done status

func (*Todo) GetMission

func (td *Todo) GetMission() (m *Mission)

GetMission gets project from to-do's project id

func (*Todo) GetOwner

func (td *Todo) GetOwner() (owner *User)

GetOwner gets user from to-do's owner id

func (*Todo) GetPics

func (td *Todo) GetPics() (pics []string)

GetPics get to-do's all pics

func (*Todo) Remove

func (td *Todo) Remove() (err error)

Remove deletes a to-do

func (*Todo) Save

func (td *Todo) Save()

ave a new to-do

func (*Todo) Sync

func (td *Todo) Sync()

Sync reloads to-do from db

func (*Todo) UpdatePics

func (td *Todo) UpdatePics(pics []string) (err error)

UpdatePics update to-do's pictures list

type User

type User struct {
	Id         int    `json:"-" redis:"id"` //private id
	Pid        string `json:"id,omitempty" redis:"pid"`
	SamId      string `json:"samId,omitempty" redis:"samId"`           //unique id in samaritan
	CreateTime int64  `json:"createTime,omitempty" redis:"createTime"` //create time timestamp of this user
	Alias      string `json:"alias,omitempty" redis:"alias"`           //nick name
	Name       string `json:"name,omitempty" redis:"name"`             //real name
	Phone      string `json:"phone,omitempty" redis:"phone"`
	Password   string `json:"password" redis:"password"`
	Email      string `json:"email,omitempty" redis:"email"`
	Avatar     string `json:"avatar,omitempty" redis:"avatar"` //avatar url
	School     string `json:"school,omitempty" redis:"school"`
	Department string `json:"depart,omitempty" redis:"depart"`
	Grade      int    `json:"grade,omitempty" redis:"grade"`
	Class      string `json:"class,omitempty" redis:"class"`
	StudentNum string `json:"stuNum,omitempty" redis:"stuNum"` //1218404001...
}

func InitedUser

func InitedUser(id int) (u *User)

InitedUser returns a full loaded user object by id

func (*User) AcceptMission

func (u *User) AcceptMission(mid int)

AcceptMission add mission to user accepted mission set

func (*User) CompleteMission

func (u *User) CompleteMission(mid int)

CompleteMission adds mission to user completed mission

func (*User) CreateAvatar

func (u *User) CreateAvatar()

CreateAvatar generates avatar for user

func (*User) DealtChat

func (u *User) DealtChat(cid int, dealt bool)

DealtChat dealt a chat

func (*User) FullAvatarUrl

func (u *User) FullAvatarUrl() string

FullAvatarUrl return full url of avatar img

func (*User) GetAllAcceptedMissionsId

func (u *User) GetAllAcceptedMissionsId() []int

GetAllAcceptedMissionsId gets all accepted missions id

func (*User) GetAllCompletedMissionsId

func (u *User) GetAllCompletedMissionsId() []int

GetAllCompletedMissionsId gets all completed missions id

func (*User) GetAllMsgsId

func (u *User) GetAllMsgsId() []int

GetAllMsgsId gets all msgs id

func (*User) GetAllOfflineMsg

func (u *User) GetAllOfflineMsg() []*Chat

func (*User) GetAllProjects

func (u *User) GetAllProjects() []Project

GetAllProjects gets all projects

func (*User) GetCreatedProjects

func (u *User) GetCreatedProjects() []Project

GetCreatedProjects gets user created projects

func (*User) GetJoinedProjects

func (u *User) GetJoinedProjects() []Project

GetJoinedProjects gets user joined projects

func (*User) GetName

func (u *User) GetName() (name string)

GetName reads user's real name

func (*User) JoinProject

func (u *User) JoinProject(pid int)

JoinProject add project to user joined project set

func (*User) Save

func (u *User) Save()

Save creates or updates a new user

func (*User) Sync

func (u *User) Sync()

Sync reloads user from db

func (*User) UnCompleteMission

func (u *User) UnCompleteMission(mid int)

UnCompleteMission adds mission to user uncompleted mission

Jump to

Keyboard shortcuts

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