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