func taskSharedHandler(r *http.Request, w http.ResponseWriter, redis *models.RedisLogger, user *models.Account, p Parameter) { form := p.(taskSharedForm) u := &models.Account{} u.FindByUserid(form.Sender) // ws push event := &models.Event{ Type: models.EventSystem, Time: time.Now().Unix(), Data: models.EventData{ Id: user.Id, From: user.Id, To: form.Sender, }, } var article *models.Article switch form.Type { case models.TaskRunning: event.Data.Type = models.EventRunShared article = &models.Article{ Author: user.Id, PubTime: time.Now(), Contents: []models.Segment{ {ContentType: "TEXT", ContentText: "我和" + u.Nickname + "约好一起跑步,有想一起参加的吗?" + "\n跑步地点: " + form.Addr + "\n跑步时间: " + time.Unix(form.Time, 0).Format("2006-01-02 3:04 PM")}, {ContentType: "IMAGE", ContentText: form.Image}, }, } case models.TaskPost: article := &models.Article{} if find, _ := article.FindById(form.ArticleId); find { article.SetThumb(user.Id, true) } event.Data.Type = models.EventPostShared case models.TaskGame: event.Data.Type = models.EventPKShared result := u.Nickname + " 主动PK " + user.Nickname + "大获全胜。" if u.Props.Score < user.Props.Score { result = u.Nickname + " 主动PK " + user.Nickname + "大败亏输。" } article = &models.Article{ Author: user.Id, Type: "pk", PubTime: time.Now(), Contents: []models.Segment{ {ContentType: "TEXT", ContentText: result}, {ContentType: "IMAGE", ContentText: form.Image}, }, } default: writeResponse(r.RequestURI, w, nil, errors.NewError(errors.AccessError)) return } awards := Awards{} if form.Accept { redis.SetRelationship(user.Id, []string{form.Sender}, models.RelFriend, true) event.Save() redis.PubMsg(models.EventSystem, form.Sender, event.Bytes()) user.UpdateRatio(form.Type, true) if article != nil { article.Save() } awards.Wealth = 1 * models.Satoshi GiveAwards(user, awards, redis) } redis.SetTaskShare(user.Id, false) writeResponse(r.RequestURI, w, map[string]interface{}{"ExpEffect": awards}, nil) }