go_dreamfactory/modules/oldtimes/api_receive.go
2023-06-06 11:08:14 +08:00

55 lines
1.3 KiB
Go

package oldtimes
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
func (this *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.OldtimesReceiveReq) (errdata *pb.ErrorData) {
if req.ChapterId <= 0 {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
}
return
}
func (this *apiComp) Receive(session comm.IUserSession, req *pb.OldtimesReceiveReq) (errdata *pb.ErrorData) {
if errdata = this.ReceiveCheck(session, req); errdata != nil {
return
}
uid := session.GetUserId()
rsp := &pb.OldtimesReceiveResp{}
ot := this.module.modelOldtimes.getDBOldtimes(uid)
if ot != nil {
for _, v := range ot.Chapters {
if v.Cid == req.ChapterId {
if v.Received == 1 {
code = pb.ErrorCode_OldtimesReceived
return
} else if v.Status != int32(finish) {
code = pb.ErrorCode_OldtimesNoAllFinished
return
} else {
v.Received = 1
this.module.modelOldtimes.updateOldtimes(uid, ot)
//发奖
gltl, err := this.module.configure.getTimelineCfg()
if err != nil {
return
}
if conf, ok := gltl.GetDataMap()[req.ChapterId]; ok {
this.module.DispenseRes(session, conf.Reward, true)
}
break
}
}
}
}
session.SendMsg(string(this.module.GetType()), "receive", rsp)
return
}