package worldtask import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "google.golang.org/protobuf/proto" ) // 任务完成条件 func (this *apiComp) CompleteCondiCheck(session comm.IUserSession, req *pb.WorldtaskCompleteCondiReq) (code pb.ErrorCode) { if req.GroupId != 2 || req.TaskId <= 0 || req.CondiId <= 0 { code = *pb.ErrorCode_ReqParameterError.Enum() } return } func (this *apiComp) CompleteCondi(session comm.IUserSession, req *pb.WorldtaskCompleteCondiReq) (code pb.ErrorCode, data proto.Message) { if code = this.CompleteCondiCheck(session, req); code != pb.ErrorCode_Success { return } uid := session.GetUserId() myWorldtask, err := this.module.modelWorldtask.getWorldtask(uid) if err != nil { this.module.Error("获取玩家世界任务失败", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) code = pb.ErrorCode_DBError return } if req.CondiId == 2000120003 { myWorldtask.CondiIds = append(myWorldtask.CondiIds, 20001) } else { if m, err := this.module.service.GetModule(comm.ModuleWorldtask); err == nil { iwt, ok := m.(comm.IRtask) if ok { if code = iwt.CheckCondi(uid, req.CondiId); code == pb.ErrorCode_Success { myWorldtask.CondiIds = append(myWorldtask.CondiIds, req.CondiId) } else { return } } } } update := map[string]interface{}{ "condiIds": myWorldtask.CondiIds, } if err := this.module.modelWorldtask.Change(uid, update); err != nil { code = pb.ErrorCode_DBError return } rsp := &pb.WorldtaskCompleteCondiResp{ GroupId: req.GroupId, TaskId: req.TaskId, CondiId: req.CondiId, } session.SendMsg(string(this.module.GetType()), "completecondi", rsp) return }