本文整理汇总了Golang中github.com/ginuerzh/sports/models.Account类的典型用法代码示例。如果您正苦于以下问题:Golang Account类的具体用法?Golang Account怎么用?Golang Account使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Account类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: newAddrHandler
func newAddrHandler(r *http.Request, w http.ResponseWriter,
redis *models.RedisLogger, user *models.Account) {
wal, err := getWallet(user.Wallet.Id, user.Wallet.Key)
if err != nil {
writeResponse(r.RequestURI, w, nil, errors.NewError(errors.DbError, err.Error()))
return
}
k, err := wal.GenKey("")
if err != nil {
writeResponse(r.RequestURI, w, nil, errors.NewError(errors.DbError, err.Error()))
return
}
wal.AddKey(k)
if _, err = saveWallet(user.Wallet.Id, wal); err != nil {
writeResponse(r.RequestURI, w, nil, errors.NewError(errors.DbError, err.Error()))
return
}
user.Wallet.Addrs = append(user.Wallet.Addrs, k.PubKey)
if err = user.AddWalletAddr(k.PubKey); err != nil {
writeResponse(r.RequestURI, w, nil, err)
return
}
writeResponse(r.RequestURI, w, k, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:27,代码来源:wallet.go
示例2: sendDevHandler
func sendDevHandler(request *http.Request, resp http.ResponseWriter,
redis *models.RedisLogger, user *models.Account, p Parameter) {
form := p.(sendDevForm)
err := user.AddDevice(form.Token)
writeResponse(request.RequestURI, resp, nil, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:7,代码来源:user.go
示例3: setPushHandler
func setPushHandler(request *http.Request, resp http.ResponseWriter,
redis *models.RedisLogger, user *models.Account, p Parameter) {
form := p.(setPushForm)
err := user.SetPush(form.Enabled)
writeResponse(request.RequestURI, resp, nil, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:7,代码来源:user.go
示例4: setEquipHandler
func setEquipHandler(request *http.Request, resp http.ResponseWriter,
user *models.Account, p Parameter) {
form := p.(setEquipForm)
err := user.SetEquip(form.Equips)
writeResponse(request.RequestURI, resp, map[string]interface{}{"ExpEffect": Awards{}}, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:7,代码来源:account.go
示例5: logoutHandler
func logoutHandler(request *http.Request, resp http.ResponseWriter,
redis *models.RedisLogger, user *models.Account, p Parameter) {
redis.DelOnlineUser(p.TokenId())
if len(user.Devs) > 0 {
user.RmDevice(user.Devs[0])
}
writeResponse(request.RequestURI, resp, nil, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:9,代码来源:account.go
示例6: userAuthRequestHandler
func userAuthRequestHandler(r *http.Request, w http.ResponseWriter,
redis *models.RedisLogger, user *models.Account, p Parameter) {
form := p.(authRequestForm)
err := user.SetAuthInfo(form.Type, form.Images, form.Desc)
redis.AddAuthCoach(user.Id)
writeResponse(r.RequestURI, w, nil, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:9,代码来源:account.go
示例7: loadUserHandler
func loadUserHandler(c martini.Context, user *models.Account, redis *models.RedisLogger, r *http.Request, w http.ResponseWriter) {
if find, err := user.FindByUserid(user.Id); !find {
if err == nil {
err = errors.NewError(errors.NotExistsError)
}
writeResponse(r.RequestURI, w, nil, err)
return
}
}
开发者ID:shevilangle,项目名称:sports,代码行数:9,代码来源:common.go
示例8: setPasswordHandler
func setPasswordHandler(r *http.Request, w http.ResponseWriter,
user *models.Account, p Parameter) {
form := p.(setPasswordForm)
if user.Password != Md5(form.Old) {
writeResponse(r.RequestURI, w, nil, errors.NewError(errors.PasswordError, "原密码错误"))
return
}
err := user.SetPassword(Md5(form.New))
writeResponse(r.RequestURI, w, nil, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:12,代码来源:account.go
示例9: setPhotosHandler
func setPhotosHandler(request *http.Request, resp http.ResponseWriter, redis *models.RedisLogger,
user *models.Account, p Parameter) {
form := p.(setPhotosForm)
awards := Awards{}
if !user.PhotoSet {
awards.Wealth = 10 * int64(len(form.Pics)) * models.Satoshi
awards.Score = 10 * int64(len(form.Pics))
}
err := user.AddPhotos(form.Pics)
GiveAwards(user, awards, redis)
writeResponse(request.RequestURI, resp, map[string]interface{}{"ExpEffect": awards}, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:13,代码来源:account.go
示例10: taskReferralsHandler
func taskReferralsHandler(r *http.Request, w http.ResponseWriter,
redis *models.RedisLogger, user *models.Account) {
if user.Taskid > len(models.NewTasks) {
writeResponse(r.RequestURI, w, nil, errors.NewError(errors.AccessError))
return
}
task := models.NewTasks[user.Taskid]
excludes := redis.TaskSharers()
friends := redis.Friends(models.RelFriend, user.Id)
excludes = append(excludes, user.Id)
excludes = append(excludes, friends...)
users, _ := user.TaskReferrals(task.Type, excludes)
var referrals []*referral
for i, _ := range users {
ref := &referral{
Userid: users[i].Id,
Nickname: users[i].Nickname,
Profile: users[i].Profile,
Gender: users[i].Gender,
Images: users[i].Photos,
Birthday: users[i].Birth,
Lastlog: users[i].LastLogin.Unix(),
Location: users[i].Loc,
}
if users[i].Ratios.RunRecv > 0 {
ref.RunRatio = float32(users[i].Ratios.RunAccept) / float32(users[i].Ratios.RunRecv)
}
if users[i].Ratios.PostRecv > 0 {
ref.PostRatio = float32(users[i].Ratios.PostAccept) / float32(users[i].Ratios.PostRecv)
}
if users[i].Ratios.PKRecv > 0 {
ref.PkRatio = float32(users[i].Ratios.PKAccept) / float32(users[i].Ratios.PKRecv)
}
if task.Type == models.TaskRunning || task.Type == models.TaskGame {
rec, _ := users[i].LastRecord("run")
ref.LastId = rec.Id.Hex()
ref.LastTime = rec.PubTime.Unix()
} else if task.Type == models.TaskPost {
article := users[i].LatestArticle()
ref.LastId = article.Id.Hex()
ref.LastTime = article.PubTime.Unix()
}
referrals = append(referrals, ref)
}
respData := map[string]interface{}{"referrals": referrals}
writeResponse(r.RequestURI, w, respData, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:50,代码来源:task.go
示例11: recommendHandler
func recommendHandler(r *http.Request, w http.ResponseWriter,
redis *models.RedisLogger, user *models.Account, p Parameter) {
form := p.(recommendForm)
excludes := redis.Friends(models.RelFollowing, user.Id)
excludes = append(excludes, redis.Friends(models.RelBlacklist, user.Id)...)
users, _ := user.Recommend(excludes)
var list []*leaderboardResp
for i, _ := range users {
if users[i].Id == user.Id {
continue
}
rel := redis.Relationship(user.Id, users[i].Id)
if rel == models.RelFollowing || rel == models.RelFriend {
continue
}
lb := &leaderboardResp{
Userid: users[i].Id,
Score: users[i].Props.Score,
Level: users[i].Level(),
Profile: users[i].Profile,
Nickname: users[i].Nickname,
Gender: users[i].Gender,
LastLog: users[i].LastLogin.Unix(),
Birth: users[i].Birth,
Location: users[i].Loc,
Addr: users[i].LocAddr,
Phone: users[i].Phone,
Actor: users[i].Actor,
}
lb.Distance, _ = redis.RecStats(users[i].Id)
lb.Status = users[i].LatestArticle().Title
list = append(list, lb)
}
respData := map[string]interface{}{
"members_list": list,
"page_frist_id": form.Paging.First,
"page_last_id": form.Paging.Last,
}
writeResponse(r.RequestURI, w, respData, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:45,代码来源:account.go
示例12: loginAwardsHandler
func loginAwardsHandler(request *http.Request, resp http.ResponseWriter,
redis *models.RedisLogger, user *models.Account) {
a := user.LoginAwards
if (user.LoginDays-1)%7 == 0 || len(a) == 0 {
a = []int64{}
startDay := ((user.LoginDays - 1) / 7) * 7
level := user.Level()
score := user.Props.Score
for i := 0; i < 7; i++ {
awards := loginAwards(startDay+i+1, int(level))
a = append(a, awards.Wealth, awards.Score)
score = score + awards.Score
level = models.Score2Level(score)
}
user.SetLoginAwards(a)
}
index := (user.LoginDays - 1) % 7
awards := Awards{Wealth: a[index*2], Score: a[index*2+1]}
awards.Level = models.Score2Level(user.Props.Score+awards.Score) - user.Level()
GiveAwards(user, awards, redis)
loginAwards := []int64{}
for i := 0; i < 7; i++ {
loginAwards = append(loginAwards, a[i*2])
}
respData := map[string]interface{}{
"continuous_logined_days": user.LoginDays,
"login_reward_list": loginAwards,
}
writeResponse(request.RequestURI, resp, respData, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:35,代码来源:account.go
示例13: searchHandler
func searchHandler(r *http.Request, w http.ResponseWriter,
user *models.Account, form searchForm) {
users := []models.Account{}
var err error
if form.Nearby > 0 {
form.Paging.Count = 50
users, err = user.SearchNear(&form.Paging, 50000)
} else {
users, err = models.SearchUsers(form.Nickname, &form.Paging)
}
var list []*leaderboardResp
for i, _ := range users {
if users[i].Id == user.Id {
continue
}
lb := &leaderboardResp{
Userid: users[i].Id,
Score: users[i].Props.Score,
Level: users[i].Level(),
Profile: users[i].Profile,
Nickname: users[i].Nickname,
Gender: users[i].Gender,
LastLog: users[i].LastLogin.Unix(),
Birth: users[i].Birth,
Location: users[i].Loc,
Phone: users[i].Phone,
Actor: users[i].Actor,
}
list = append(list, lb)
}
respData := map[string]interface{}{
"members_list": list,
"page_frist_id": form.Paging.First,
"page_last_id": form.Paging.Last,
}
writeResponse(r.RequestURI, w, respData, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:40,代码来源:account.go
示例14: articleListHandler
func articleListHandler(request *http.Request, resp http.ResponseWriter,
redis *models.RedisLogger, user *models.Account, p Parameter) {
var articles []models.Article
var err error
form := p.(articleListForm)
if len(form.Tag) > 0 {
_, articles, err = models.GetArticles(form.Tag, &form.Paging, true)
} else if form.Circle {
followings := redis.Friends(models.RelFollowing, user.Id)
followings = append(followings, user.Id) // self included
_, articles, err = models.GetFollowingsArticles(followings, &form.Paging)
} else {
excludes := redis.Friends(models.RelFollowing, user.Id)
excludes = append(excludes, redis.Friends(models.RelBlacklist, user.Id)...)
excludes = append(excludes, user.Id)
recommends, _ := user.Recommend(excludes)
ids := []string{}
for i, _ := range recommends {
ids = append(ids, recommends[i].Id)
}
_, articles, err = models.GetRecommendArticles(ids, &form.Paging)
}
jsonStructs := make([]*articleJsonStruct, len(articles))
for i, _ := range articles {
u := &models.Account{}
u.FindByUserid(articles[i].Author)
author := convertUser(u, redis)
jsonStructs[i] = convertArticle(user, &articles[i], author)
}
respData := make(map[string]interface{})
respData["page_frist_id"] = form.Paging.First
respData["page_last_id"] = form.Paging.Last
//respData["page_item_count"] = total
respData["articles_without_content"] = jsonStructs
writeResponse(request.RequestURI, resp, respData, err)
}
开发者ID:shevilangle,项目名称:sports,代码行数:39,代码来源:article.go
示例15: purchaseListHandler
func purchaseListHandler(r *http.Request, w http.ResponseWriter,
redis *models.RedisLogger, user *models.Account, p Parameter) {
form := p.(purchaseListForm)
_, txs, _ := user.Txs(&form.Paging)
list := []*purchaseStruct{}
for _, tx := range txs {
list = append(list, &purchaseStruct{
Coins: tx.Coins,
Value: tx.Value,
Time: tx.Time.Unix(),
})
}
respData := map[string]interface{}{
"payCoinList": list,
"page_frist_id": form.Paging.First,
"page_last_id": form.Paging.Last,
}
writeResponse(r.RequestURI, w, respData, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:22,代码来源:account.go
示例16: GiveAwards
func GiveAwards(user *models.Account, awards Awards, redis *models.RedisLogger) error {
if awards.Level < 0 || awards.Score < 0 {
panic("invalid level or score")
}
if _, err := sendCoin(user.Wallet.Addr, awards.Wealth); err != nil {
return err
}
redis.SendCoins(user.Id, awards.Wealth)
err := user.UpdateProps(models.Props{
Physical: awards.Physical,
Literal: awards.Literal,
Mental: awards.Mental,
//Wealth: awards.Wealth,
Score: awards.Score,
//Level: awards.Level,
})
if err != nil {
return err
}
if lvl := models.Score2Level(user.Props.Score + awards.Score); lvl > user.Level() {
// ws push
event := &models.Event{
Type: models.EventNotice,
Time: time.Now().Unix(),
Data: models.EventData{
Type: models.EventLevelUP,
To: user.Id,
},
}
event.Save()
redis.PubMsg(event.Type, event.Data.To, event.Bytes())
}
return nil
}
开发者ID:shevilangle,项目名称:sports,代码行数:37,代码来源:common.go
示例17: userRanksHandler
func userRanksHandler(r *http.Request, w http.ResponseWriter,
user *models.Account) {
var ranks struct {
Userid string `json:"userid"`
ScoreRank int `json:"score_rank"`
PhysiqueRank int `json:"physique_rank"`
LiteratureRank int `json:"literature_rank"`
MagicRank int `json:"magic_rank"`
}
//log.Println(user.Props)
ranks.Userid = user.Id
ranks.ScoreRank, _ = user.PropIndex("score", user.Props.Score)
ranks.PhysiqueRank, _ = user.PropIndex("physique", user.Props.Physical)
ranks.LiteratureRank, _ = user.PropIndex("literature", user.Props.Literal)
ranks.MagicRank, _ = user.PropIndex("magic", user.Props.Mental)
writeResponse(r.RequestURI, w, ranks, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:19,代码来源:account.go
示例18: getTasksHandler
func getTasksHandler(r *http.Request, w http.ResponseWriter, user *models.Account) {
/*
tasklist := user.Tasks
week := len(tasklist.Completed) / 7
if week > 0 && len(tasklist.Completed)%7 == 0 &&
tasklist.Last.After(now.BeginningOfWeek()) {
week -= 1
}
list := make([]models.Task, 7)
if week*7+7 <= len(models.Tasks)+1 {
copy(list, models.Tasks[week*7:week*7+7])
}
for i, _ := range list {
list[i].Status = tasklist.TaskStatus(list[i].Id)
if list[i].Type == models.TaskGame && list[i].Status == "FINISH" {
rec := &models.Record{Uid: user.Id}
rec.FindByTask(list[i].Id)
if rec.Game != nil {
list[i].Desc = fmt.Sprintf("你在%s游戏中得了%d分",
rec.Game.Name, rec.Game.Score)
}
}
}
*/
count, _ := user.TaskRecordCount("", models.StatusFinish)
week := count / 7
var target, actual int
last, _ := user.LastTaskRecord()
// all weekly tasks are completed
if week > 0 && count%7 == 0 && last.AuthTime.After(now.BeginningOfWeek()) {
week -= 1
}
//log.Println("week", week)
tasks := make([]models.Task, 7)
if week*7+7 <= len(models.Tasks) {
copy(tasks, models.Tasks[week*7:week*7+7])
}
for i, task := range tasks {
tasks[i].Status = models.StatusNormal
record := &models.Record{Uid: user.Id}
if find, _ := record.FindByTask(task.Id); find {
tasks[i].Status = record.Status
}
if task.Type == models.TaskGame && task.Status == models.StatusFinish &&
record.Game != nil {
tasks[i].Result = fmt.Sprintf("你在%s游戏中得了%d分",
record.Game.Name, record.Game.Score)
}
if task.Type == models.TaskRunning {
target += task.Distance
if tasks[i].Status == models.StatusFinish && record.Sport != nil {
actual += record.Sport.Distance
}
}
}
//log.Println(tasks)
//random := rand.New(rand.NewSource(time.Now().Unix()))
respData := map[string]interface{}{
"week_id": week + 1,
"task_list": tasks,
"task_target_distance": target,
"task_actual_distance": actual,
//"week_desc": tips[random.Int()%len(tips)],
}
writeResponse(r.RequestURI, w, respData, nil)
}
开发者ID:shevilangle,项目名称:sports,代码行数:73,代码来源:task.go
示例19: newArticleHandler
func newArticleHandler(request *http.Request, resp http.ResponseWriter,
client *ApnClient, redis *models.RedisLogger, user *models.Account, p Parameter) {
form := p.(newArticleForm)
article := &models.Article{
Author: user.Id,
Contents: form.Contents,
PubTime: time.Now(),
Parent: form.Parent,
//Tags: form.Tags,
Loc: form.Location,
Type: form.Type,
}
article.Title, article.Images = articleCover(form.Contents)
if len(article.Images) > 0 {
article.Image = article.Images[0]
}
/*
if len(article.Tags) == 0 {
article.Tags = []string{"SPORT_LOG"}
}
*/
awards := Awards{}
parent := &models.Article{}
if len(form.Parent) > 0 {
if find, err := parent.FindById(form.Parent); !find {
e := errors.NewError(errors.NotExistsError, "文章不存在!")
if err != nil {
e = errors.NewError(errors.DbError)
}
writeResponse(request.RequestURI, resp, nil, e)
return
}
if redis.Relationship(parent.Author, user.Id) == models.RelBlacklist {
writeResponse(request.RequestURI, resp, nil,
errors.NewError(errors.AccessError, "对方屏蔽了你!"))
return
}
awards = Awards{Literal: 1 + user.Level(), Score: 1 + user.Level()}
} else {
if user.Stat != nil && user.Stat.LastArticleTime < nowDate().Unix() {
awards = Awards{Literal: 2 + user.Level(), Wealth: 2 * models.Satoshi, Score: 2 + user.Level()}
}
user.UpdateStat(models.StatLastArticleTime, time.Now().Unix())
}
if article.Type == models.ArticleRecord {
article.Coaches = []string{user.Id}
}
if article.Type == models.ArticleCoach {
if parent.Author != user.Id &&
user.Actor != models.ActorCoach && user.Actor != models.ActorAdmin {
writeResponse(request.RequestURI, resp, nil,
errors.NewError(errors.AccessError))
return
}
if err := article.Save(); err != nil {
log.Println(err)
writeResponse(request.RequestURI, resp, nil, err)
return
}
// ws push
event := &models.Event{
Type: models.EventArticle,
Time: time.Now().Unix(),
Data: models.EventData{
Type: models.EventCoach,
Id: parent.Id.Hex(),
From: user.Id,
//To: parent.Author,
Body: []models.MsgBody{
{Type: "total_count", Content: strconv.Itoa(parent.CoachReviewCount + 1)},
{Type: "image", Content: user.Profile},
},
},
}
for _, coach := range parent.Coaches {
if coach == user.Id {
continue
}
event.Data.To = coach
event.Save()
redis.PubMsg(models.EventArticle, coach, event.Bytes())
}
respData := map[string]interface{}{
"ExpEffect": Awards{},
}
writeResponse(request.RequestURI, resp, respData, nil)
return
}
if err := article.Save(); err != nil {
//.........这里部分代码省略.........
开发者ID:shevilangle,项目名称:sports,代码行数:101,代码来源:article.go
示例20: convertUser
func convertUser(user *models.Account, redis *models.RedisLogger) *userJsonStruct {
info := &userJsonStruct{
Userid: user.Id,
Nickname: user.Nickname,
Email: user.Email,
Phone: user.Phone,
Type: user.Role,
About: user.About,
Profile: user.Profile,
RegTime: user.RegTime.Unix(),
Height: user.Height,
Weight: user.Weight,
Birth: user.Birth,
Actor: user.Actor,
Location: user.Loc,
Addr: user.LocAddr,
Sign: user.Sign,
Emotion: user.Emotion,
Profession: user.Profession,
Hometown: user.Hometown,
OftenAppear: user.Oftenappear,
Hobby: user.Hobby,
//Rank: userRank(user.Level),
Online: redis.IsOnline(user.Id),
Gender: user.Gender,
//Follows: len(redis.Follows(user.Id)),
//Followers: len(redis.Followers(user.Id)),
Posts: user.ArticleCount(),
//Props: redis.UserProps(user.Id),
Props: models.Props{
Physical: user.Props.Physical,
Literal: user.Props.Literal,
Mental: user.Props.Mental,
Wealth: redis.GetCoins(user.Id),
Score: user.Props.Score,
Level: user.Level(),
},
Photos: user.Photos,
CoverImage: user.CoverImage,
Wallet: user.Wallet.Addr,
LastLog: user.LastLogin.Unix(),
Setinfo: user.Setinfo,
Ban: user.TimeLimit,
Auth: user.Auth,
}
balance, _ := getBalance(user.Wallet.Addrs)
var wealth int64
if balance != nil {
for _, b := range balance.Addrs {
wealth += (b.Confirmed + b.Unconfirmed)
}
}
info.Props.Wealth = wealth
info.Follows, info.Followers, _, _ = redis.FriendCount(user.Id)
/*
if user.Privilege == 5 {
info.Actor = "coach"
} else if user.Privilege == 10 {
info.Actor = "admin"
}
if user.Addr != nil {
info.Addr = user.Addr.String()
}
*/
if user.Equips != nil {
info.Equips = *user.Equips
}
if info.Auth != nil {
if info.Auth.IdCard == nil {
info.Auth.IdCard = info.Auth.IdCardTmp
}
if info.Auth.Cert == nil {
info.Auth.Cert = info.Auth.CertTmp
}
if info.Auth.Record == nil {
info.Auth.Record = info.Auth.RecordTmp
}
}
return info
}
开发者ID:shevilangle,项目名称:sports,代码行数:92,代码来源:account.go
注:本文中的github.com/ginuerzh/sports/models.Account类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论