修复铁匠铺任务进度

This commit is contained in:
wh_zcy 2023-06-15 11:40:21 +08:00
parent 19bc8a65ec
commit ebcc7ec57f
5 changed files with 47 additions and 54 deletions

View File

@ -25,7 +25,6 @@ func (this *apiComp) TaskAward(session comm.IUserSession, req *pb.SmithyTaskAwar
if err := this.module.modelTask.updateTaskRecord(session.GetUserId(), req.TaskId); err != nil {
var errCustom = new(comm.CustomError)
if errors.As(err, &errCustom) {
//code = errCustom.Code
errdata = &pb.ErrorData{
Code: errCustom.Code,
Title: errCustom.Code.ToString(),

View File

@ -1,6 +1,7 @@
package smithy
import (
"errors"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
@ -22,10 +23,19 @@ func (this *apiComp) Refuse(session comm.IUserSession, req *pb.SmithyRefuseReq)
cus, err := this.module.modelTrade.updateCustomer(session.GetUserId(), req.CustomerId)
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
var errCustom = new(comm.CustomError)
if errors.As(err, &errCustom) {
errdata = &pb.ErrorData{
Code: errCustom.Code,
Title: errCustom.Code.ToString(),
Message: err.Error(),
}
} else {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
}
return
}

View File

@ -86,29 +86,35 @@ func (this *modelTask) TCondFinishNotify(uid string, conds []*pb.ConIProgress) {
tt.Received = 1
}
dt.Tasks = append(dt.Tasks, tt)
update["tasks"] = dt.Tasks
if err := this.Change(uid, update); err != nil {
this.module.Error(err.Error())
return
}
}
update["tasks"] = dt.Tasks
if err := this.Change(uid, update); err != nil {
this.module.Error(err.Error())
return
}
return
}
for _, t := range dt.Tasks {
for k, v := range condMap {
// update
if t.TaskId == k {
t.Cond = v
} else {
//add
dt.Tasks = append(dt.Tasks, &pb.TujianTask{
TaskId: k,
Cond: v,
})
var newTask []*pb.TujianTask
existTaskMap := make(map[int32]*pb.TujianTask)
for _, task := range dt.Tasks {
existTaskMap[task.TaskId] = task
}
for k, v := range condMap {
if task, ok := existTaskMap[k]; ok {
task.Cond = v
if v.State == pb.BuriedItemFinishState_buried_finish {
task.Received = 1
}
} else {
newTask = append(newTask, &pb.TujianTask{
TaskId: k,
Cond: v,
})
}
}
dt.Tasks = append(dt.Tasks, newTask...)
update["tasks"] = dt.Tasks
if len(update) > 0 {
@ -120,44 +126,30 @@ func (this *modelTask) TCondFinishNotify(uid string, conds []*pb.ConIProgress) {
}
func (this *modelTask) updateTaskRecord(uid string, taskId int32) error {
// if !this.checkTaskStatus(uid, taskId) {
// return comm.NewCustomError(pb.ErrorCode_SmithyTaskNoFinished)
// }
dt, err := this.getTaskRecord(uid)
if err != nil {
if err == mongo.ErrNoDocuments {
// tj := &pb.DBTujianTask{Uid: uid}
// tj.Tasks = append(tj.Tasks, &pb.TujianTask{TaskId: taskId, Received: 2})
// return this.Add(uid, tj)
return comm.NewCustomError(pb.ErrorCode_SmithyTaskNoFinished)
}
return err
}
// taskMap := make(map[int32]int32)
update := make(map[string]interface{})
if dt.Uid != "" {
for _, v := range dt.Tasks {
if v.TaskId == taskId {
if v.Cond != nil && v.Cond.State == pb.BuriedItemFinishState_buried_finish {
if v.Received == 1 {
v.Received = 2
} else if v.Received == 2 {
return comm.NewCustomError(pb.ErrorCode_SmithyTaskReceived)
} else {
return comm.NewCustomError(pb.ErrorCode_SmithyTaskNoFinished)
}
} else {
return comm.NewCustomError(pb.ErrorCode_SmithyTaskNoFinished)
break
}
// taskMap[v.TaskId] = v.Received
// }
}
// if t, ok := taskMap[taskId]; ok {
// if t == 2 {
// return comm.NewCustomError(pb.ErrorCode_SmithyTaskReceived)
// } else {
// update["received"] = 2
// }
// } else {
// dt.Tasks = append(dt.Tasks, &pb.TujianTask{TaskId: taskId, Received: 2})
update["tasks"] = dt.Tasks
}
@ -183,15 +175,3 @@ func (this *modelTask) checkReddot17107(uid string) bool {
}
return false
}
// 检查任务状态
// func (this *modelTask) checkTaskStatus(uid string, taskId int32) bool {
// conf, _ := this.module.configure.GetSmithyTask(taskId)
// if conf == nil {
// return false
// }
// // if ec := this.module.ModuleRtask.CheckCondi(uid, conf.TypeId); ec != nil {
// // return false
// // }
// return true
// }

View File

@ -136,7 +136,7 @@ func (s *modelTrade) updateCustomer(uid string, customerId int32) (*pb.DBCustome
//上限
limit := s.module.modelStove.StoveSkillAddCustomer(uid)
left := limit - cus.Total
if left <= 0 {
if left < 0 {
return nil, comm.NewCustomError(pb.ErrorCode_SmithyCustomerLimit)
}

View File

@ -12,6 +12,7 @@ import (
"go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type ModelWorldtask struct {
@ -25,6 +26,9 @@ func (this *ModelWorldtask) Init(service core.IService, module core.IModule, com
this.TableName = comm.TableWorldtask
this.moduleWorldtask = module.(*Worldtask)
this.service = service
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}