go_dreamfactory/modules/caravan/api_getstory.go
2023-05-17 19:50:02 +08:00

76 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) (code pb.ErrorCode) {
if req.Cid == 0 || req.Citystory == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
func (this *apiComp) GetStory(session comm.IUserSession, req *pb.CaravanGetStoryReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
resp *pb.CaravanGetStoryResp
update map[string]interface{}
bAccept bool
)
update = make(map[string]interface{})
if code = this.GetStoryCheck(session, req); code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
list, err := this.module.modelCaravan.getCaravanList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
conf := this.module.configure.GetCaravanEventById(req.Cid)
if conf == nil {
code = pb.ErrorCode_ReqParameterError
return
}
if list.Eventid != req.Cid {
code = pb.ErrorCode_ReqParameterError
return
}
if req.Citystory == conf.Citynormal { //接受剧情
module, err := this.service.GetModule(comm.ModuleWorldtask)
if err != nil {
return
}
if wt, ok := module.(comm.IWorldtask); ok {
list.Taskid = wt.GetWorldTaskBy(session, conf.Worldtask)
if list.Taskid != 0 { // 任务接取成功
bAccept = true
list.Eventid = req.Citystory
list.Taskid = conf.Worldtask
list.Tasktime = configure.Now().Unix()
update["eventid"] = list.Eventid
update["task"] = list.Taskid
update["tasktime"] = list.Tasktime
}
}
}
if !bAccept { // 拒绝剧情 重置
list.Eventid = 0
list.Taskid = 0
list.Tasktime = 0
update["eventid"] = list.Eventid
update["task"] = list.Taskid
update["tasktime"] = list.Tasktime
}
this.configure.GetAllEquipmentConfigure()
this.module.modelCaravan.modifyCaravanDataByObjId(session.GetUserId(), update)
resp.Data = list
session.SendMsg(string(this.module.GetType()), "getstory", resp)
return
}