Commit e131a8a2a58e0a88691287732869306983d180db
1 parent
19c52645
Exists in
ver2.3.6
提交
Showing
2 changed files
with
56 additions
and
4 deletions
Show diff stats
src/HttpServer/logic/function.go
| ... | ... | @@ -92,7 +92,9 @@ func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc { |
| 92 | 92 | return nil |
| 93 | 93 | } |
| 94 | 94 | |
| 95 | -func (uinfo *UserData) CalcTaskList(list *TaskList, uniqueid string) { | |
| 95 | +func (uinfo *UserData) CalcTaskList(list *TaskList, uniqueid string) *TaskList{ | |
| 96 | + newlist := new(TaskList) | |
| 97 | + curtype := -1 //记录当前类型 | |
| 96 | 98 | |
| 97 | 99 | for k, val := range list.Taskdata { |
| 98 | 100 | //未完成的才做判断 |
| ... | ... | @@ -154,11 +156,61 @@ func (uinfo *UserData) CalcTaskList(list *TaskList, uniqueid string) { |
| 154 | 156 | |
| 155 | 157 | } |
| 156 | 158 | |
| 159 | + for k, val := range list.Taskdata { | |
| 160 | + | |
| 161 | + cfg := GetTaskConfig(val.Taskid) | |
| 162 | + if cfg == nil { | |
| 163 | + logger.Error("CalcTaskList GetTaskConfig failed id=%v", val.Taskid) | |
| 164 | + continue | |
| 165 | + } | |
| 166 | + | |
| 167 | + if val.Taskstatus == 2 { | |
| 168 | + //未领取已完成 只需要加入第一种 | |
| 169 | + if curtype == cfg.TaskType { | |
| 170 | + continue | |
| 171 | + } else { | |
| 172 | + //将类型加入返回列表 | |
| 173 | + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | |
| 174 | + curtype = cfg.TaskType | |
| 175 | + } | |
| 176 | + } else if val.Taskstatus == 1 { | |
| 177 | + //未完成 返回第一个 | |
| 178 | + if curtype == cfg.TaskType { | |
| 179 | + continue | |
| 180 | + } else { | |
| 181 | + //将类型加入返回列表 | |
| 182 | + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | |
| 183 | + curtype = cfg.TaskType | |
| 184 | + } | |
| 185 | + } else { | |
| 186 | + //已领取 需要判断一下是否最后一项 | |
| 187 | + if k != len(list.Taskdata)-1 { | |
| 188 | + //不是最后一条数据 | |
| 189 | + nextcfg := GetTaskConfig(list.Taskdata[k+1].Taskid) | |
| 190 | + if nextcfg != nil { | |
| 191 | + if nextcfg.TaskType != cfg.TaskType { | |
| 192 | + //下面一天不是此类型了 | |
| 193 | + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | |
| 194 | + curtype = cfg.TaskType | |
| 195 | + } | |
| 196 | + } | |
| 197 | + | |
| 198 | + } else { | |
| 199 | + //最后一条 加入 | |
| 200 | + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | |
| 201 | + curtype = cfg.TaskType | |
| 202 | + } | |
| 203 | + } | |
| 204 | + | |
| 205 | + } | |
| 206 | + | |
| 157 | 207 | //需要保存到redis |
| 158 | 208 | SaveTaskInfo(uniqueid, 1, list) |
| 159 | 209 | |
| 160 | 210 | //排序 |
| 161 | - sort.Sort(list) | |
| 211 | + sort.Sort(newlist) | |
| 212 | + | |
| 213 | + return newlist | |
| 162 | 214 | } |
| 163 | 215 | |
| 164 | 216 | func (uinfo *UserData) CalcAchieveProgress(ttype int) int { | ... | ... |
src/HttpServer/logic/logic.go
| ... | ... | @@ -748,11 +748,11 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { |
| 748 | 748 | } |
| 749 | 749 | |
| 750 | 750 | if rdata.Tasktype == 1 { |
| 751 | - uinfo.CalcTaskList(tasklist, uniqueuuid) | |
| 751 | + tasklist = uinfo.CalcTaskList(tasklist, uniqueuuid) | |
| 752 | 752 | } else if rdata.Tasktype == 2 { |
| 753 | 753 | tasklist = uinfo.CalcAchieveList(tasklist, uniqueuuid) |
| 754 | 754 | } else { |
| 755 | - uinfo.CalcTaskList(tasklist, uniqueuuid) | |
| 755 | + tasklist = uinfo.CalcTaskList(tasklist, uniqueuuid) | |
| 756 | 756 | } |
| 757 | 757 | |
| 758 | 758 | if tasklist == nil { | ... | ... |