go_dreamfactory/modules/caravan/api_getstory.go
2023-07-04 14:06:18 +08:00

78 lines
2.0 KiB
Go

package caravan
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
)
//参数校验
func (this *apiComp) GetStoryCheck(session comm.IUserSession, req *pb.CaravanGetStoryReq) (errdata *pb.ErrorData) {
if req.Cid == 0 || req.Citystory == 0 {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
}
return
}
func (this *apiComp) GetStory(session comm.IUserSession, req *pb.CaravanGetStoryReq) (errdata *pb.ErrorData) {
var (
resp *pb.CaravanGetStoryResp
update map[string]interface{}
bAccept bool
)
resp = &pb.CaravanGetStoryResp{}
update = make(map[string]interface{})
if errdata = this.GetStoryCheck(session, req); errdata != nil {
return // 参数校验失败直接返回
}
list, _ := this.module.modelCaravan.getCaravanList(session.GetUserId())
conf, err := this.module.configure.GetCaravanEventById(list.Eventid)
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound,
Title: pb.ErrorCode_ConfigNoFound.ToString(),
Message: err.Error(),
}
return
}
if req.Citystory == conf.Citynormal { //接受剧情
module, err := this.service.GetModule(comm.ModuleWorldtask)
if err != nil {
return
}
if wt, ok := module.(comm.IWorldtask); ok {
resp.Task, errdata = wt.AcceptCaravanTask(session, conf.Worldtask)
if errdata != nil {
return
}
list.Taskid = resp.Task.TaskId
if list.Taskid != 0 { // 任务接取成功
bAccept = true
list.Tasktime = configure.Now().Unix()
update["taskid"] = list.Taskid
update["tasktime"] = list.Tasktime
}
}
}
if !bAccept { // 拒绝剧情 重置
list.Eventid = 0
list.Taskid = 0
list.Tasktime = 0
update["eventid"] = list.Eventid
update["taskid"] = list.Taskid
update["tasktime"] = list.Tasktime
}
this.module.modelCaravan.modifyCaravanDataByObjId(session.GetUserId(), update)
resp.Data = list
session.SendMsg(string(this.module.GetType()), "getstory", resp)
return
}