From e131a8a2a58e0a88691287732869306983d180db Mon Sep 17 00:00:00 2001 From: 陆恒 Date: Wed, 19 Aug 2020 16:12:55 +0800 Subject: [PATCH] 提交 --- src/HttpServer/logic/function.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/HttpServer/logic/logic.go | 4 ++-- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/HttpServer/logic/function.go b/src/HttpServer/logic/function.go index edfbc71..08f49d9 100644 --- a/src/HttpServer/logic/function.go +++ b/src/HttpServer/logic/function.go @@ -92,7 +92,9 @@ func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc { return nil } -func (uinfo *UserData) CalcTaskList(list *TaskList, uniqueid string) { +func (uinfo *UserData) CalcTaskList(list *TaskList, uniqueid string) *TaskList{ + newlist := new(TaskList) + curtype := -1 //记录当前类型 for k, val := range list.Taskdata { //未完成的才做判断 @@ -154,11 +156,61 @@ func (uinfo *UserData) CalcTaskList(list *TaskList, uniqueid string) { } + for k, val := range list.Taskdata { + + cfg := GetTaskConfig(val.Taskid) + if cfg == nil { + logger.Error("CalcTaskList GetTaskConfig failed id=%v", val.Taskid) + continue + } + + if val.Taskstatus == 2 { + //未领取已完成 只需要加入第一种 + if curtype == cfg.TaskType { + continue + } else { + //将类型加入返回列表 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) + curtype = cfg.TaskType + } + } else if val.Taskstatus == 1 { + //未完成 返回第一个 + if curtype == cfg.TaskType { + continue + } else { + //将类型加入返回列表 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) + curtype = cfg.TaskType + } + } else { + //已领取 需要判断一下是否最后一项 + if k != len(list.Taskdata)-1 { + //不是最后一条数据 + nextcfg := GetTaskConfig(list.Taskdata[k+1].Taskid) + if nextcfg != nil { + if nextcfg.TaskType != cfg.TaskType { + //下面一天不是此类型了 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) + curtype = cfg.TaskType + } + } + + } else { + //最后一条 加入 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) + curtype = cfg.TaskType + } + } + + } + //需要保存到redis SaveTaskInfo(uniqueid, 1, list) //排序 - sort.Sort(list) + sort.Sort(newlist) + + return newlist } func (uinfo *UserData) CalcAchieveProgress(ttype int) int { diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index 1a9ff99..3a9bb13 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -748,11 +748,11 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { } if rdata.Tasktype == 1 { - uinfo.CalcTaskList(tasklist, uniqueuuid) + tasklist = uinfo.CalcTaskList(tasklist, uniqueuuid) } else if rdata.Tasktype == 2 { tasklist = uinfo.CalcAchieveList(tasklist, uniqueuuid) } else { - uinfo.CalcTaskList(tasklist, uniqueuuid) + tasklist = uinfo.CalcTaskList(tasklist, uniqueuuid) } if tasklist == nil { -- libgit2 0.21.0