diff --git a/src/HttpServer/logic/function.go b/src/HttpServer/logic/function.go index 6d8f406..1d45dc3 100644 --- a/src/HttpServer/logic/function.go +++ b/src/HttpServer/logic/function.go @@ -304,6 +304,10 @@ func GetTaskInfo(uuid, tasktype int) (*TaskList, error) { return nil, errors.New("tasktype invalid") } + if err != nil { + return nil, err + } + var list TaskList err = json.Unmarshal([]byte(data), &list) if err != nil { @@ -480,36 +484,90 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error { return err } +func (t *TaskList) IsInTaskList(id int) bool { + for _, val := range t.Taskdata { + if val.Taskid == id { + return true + } + } + return false +} + func InitTaskAndAchievement(uuid int) error { //先初始化任务 - tasklist := new(TaskList) - for _, val := range jsonconf.GetJsonConf().TaskConfig { - var tmp TaskListDesc - tmp.Taskstatus = 1 - tmp.Taskid = val.Id - tmp.Taskprogress = 0 - tasklist.Taskdata = append(tasklist.Taskdata, tmp) - } + tlist, err := GetTaskInfo(uuid, 1) + if tlist == nil { + tasklist := new(TaskList) + for _, val := range jsonconf.GetJsonConf().TaskConfig { + var tmp TaskListDesc + tmp.Taskstatus = 1 + tmp.Taskid = val.Id + tmp.Taskprogress = 0 + tasklist.Taskdata = append(tasklist.Taskdata, tmp) + } - err := SaveTaskInfo(uuid, 1, tasklist) - if err != nil { - logger.Error("InitTaskAndAchievement err=%v", err) - return err - } + err := SaveTaskInfo(uuid, 1, tasklist) + if err != nil { + logger.Error("InitTaskAndAchievement err=%v", err) + //return err + } + } else { + for _, val := range jsonconf.GetJsonConf().TaskConfig { + if !tlist.IsInTaskList(val.Id) { + var tmp TaskListDesc + tmp.Taskstatus = 1 + tmp.Taskid = val.Id + tmp.Taskprogress = 0 + tlist.Taskdata = append(tlist.Taskdata, tmp) + } + } - achievelist := new(TaskList) - for _, val := range jsonconf.GetJsonConf().AchieventConfig { - var tmp TaskListDesc - tmp.Taskstatus = 1 - tmp.Taskid = val.Id - tmp.Taskprogress = 0 - achievelist.Taskdata = append(achievelist.Taskdata, tmp) + for k, _ := range tlist.Taskdata { + tlist.Taskdata[k].Taskprogress = 0 + tlist.Taskdata[k].Taskstatus = 1 + + } + + err := SaveTaskInfo(uuid, 1, tlist) + if err != nil { + logger.Error("InitTaskAndAchievement err=%v", err) + //return err + } } - err = SaveTaskInfo(uuid, 2, achievelist) - if err != nil { - logger.Error("InitTaskAndAchievement err=%v", err) - return err + //成就 + alist, err := GetTaskInfo(uuid, 1) + if alist == nil { + achievelist := new(TaskList) + for _, val := range jsonconf.GetJsonConf().AchieventConfig { + var tmp TaskListDesc + tmp.Taskstatus = 1 + tmp.Taskid = val.Id + tmp.Taskprogress = 0 + achievelist.Taskdata = append(achievelist.Taskdata, tmp) + } + + err = SaveTaskInfo(uuid, 2, achievelist) + if err != nil { + logger.Error("InitTaskAndAchievement err=%v", err) + return err + } + } else { + for _, val := range jsonconf.GetJsonConf().AchieventConfig { + if !alist.IsInTaskList(val.Id) { + var tmp TaskListDesc + tmp.Taskstatus = 1 + tmp.Taskid = val.Id + tmp.Taskprogress = 0 + alist.Taskdata = append(alist.Taskdata, tmp) + } + } + + err = SaveTaskInfo(uuid, 2, alist) + if err != nil { + logger.Error("InitTaskAndAchievement err=%v", err) + return err + } } return nil @@ -588,7 +646,7 @@ func (u *UserData) HandlePassDay() { } else { logger.Error("HandlePassDay GetTaskInfo failer err=%v", err) }*/ - tasklist := new(TaskList) + /*tasklist := new(TaskList) for _, val := range jsonconf.GetJsonConf().TaskConfig { var tmp TaskListDesc tmp.Taskstatus = 1 @@ -600,6 +658,10 @@ func (u *UserData) HandlePassDay() { err := SaveTaskInfo(u.Userid, 1, tasklist) if err != nil { logger.Error("InitTaskAndAchievement err=%v", err) + }*/ + err := InitTaskAndAchievement(u.Userid) + if err != nil { + logger.Error("InitTaskAndAchievement err=%v", err) } //签到数据处理 -- libgit2 0.21.0