func (manager Manager) FinishTask(teammate *model.Teammate, task *model.Task) bool { if task.TeammateUid() != teammate.Uid() || teammate.TaskUid() != task.Uid() { return false } if queue := manager.store.Queues.Find(task.QueueUid()); queue != nil { queue.DelTask(task.Uid()) } if !task.Complete() { return false } teammate.FinishTask(task.Uid()) manager.busManager.PublishEvent(event.CompleteTask, teammate.Identity, []interface{}{teammate.Uid(), task.Uid()}) return true }