Commit e131a8a2a58e0a88691287732869306983d180db

Authored by 陆恒
1 parent 19c52645
Exists in ver2.3.6

提交

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