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,7 +92,9 @@ func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc { | ||
| 92 | return nil | 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 | for k, val := range list.Taskdata { | 99 | for k, val := range list.Taskdata { |
| 98 | //未完成的才做判断 | 100 | //未完成的才做判断 |
| @@ -154,11 +156,61 @@ func (uinfo *UserData) CalcTaskList(list *TaskList, uniqueid string) { | @@ -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 | //需要保存到redis | 207 | //需要保存到redis |
| 158 | SaveTaskInfo(uniqueid, 1, list) | 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 | func (uinfo *UserData) CalcAchieveProgress(ttype int) int { | 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,11 +748,11 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { | ||
| 748 | } | 748 | } |
| 749 | 749 | ||
| 750 | if rdata.Tasktype == 1 { | 750 | if rdata.Tasktype == 1 { |
| 751 | - uinfo.CalcTaskList(tasklist, uniqueuuid) | 751 | + tasklist = uinfo.CalcTaskList(tasklist, uniqueuuid) |
| 752 | } else if rdata.Tasktype == 2 { | 752 | } else if rdata.Tasktype == 2 { |
| 753 | tasklist = uinfo.CalcAchieveList(tasklist, uniqueuuid) | 753 | tasklist = uinfo.CalcAchieveList(tasklist, uniqueuuid) |
| 754 | } else { | 754 | } else { |
| 755 | - uinfo.CalcTaskList(tasklist, uniqueuuid) | 755 | + tasklist = uinfo.CalcTaskList(tasklist, uniqueuuid) |
| 756 | } | 756 | } |
| 757 | 757 | ||
| 758 | if tasklist == nil { | 758 | if tasklist == nil { |