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