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 { | ... | ... |