go_dreamfactory/modules/task/api_activereceive.go
2022-07-21 14:44:29 +08:00

55 lines
1.5 KiB
Go

package task
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//活跃度领取
func (this *apiComp) ActiveReceiveCheck(session comm.IUserSession, req *pb.TaskActiveReceiveReq) (code pb.ErrorCode) {
if req.Id == "" || req.TaskTag == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
func (this *apiComp) ActiveReceive(session comm.IUserSession, req *pb.TaskActiveReceiveReq) (code pb.ErrorCode, data proto.Message) {
if code = this.ActiveReceiveCheck(session, req); code != pb.ErrorCode_Success {
return
}
resp := &pb.TaskActiveReceiveResp{
TaskTag: req.TaskTag,
Id: req.Id,
}
defer func() {
err := session.SendMsg(string(this.moduleTask.GetType()), TaskSubTypeActiveReceive, resp)
if err != nil {
code = pb.ErrorCode_SystemError
}
// utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeActiveReceive, req, resp)
}()
ua := this.moduleTask.modelTaskActive.getUserActive(session.GetUserId(), req.Id, comm.TaskTag(req.TaskTag))
if ua == nil {
code = pb.ErrorCode_TaskActiveNofound
return
}
conf := this.moduleTask.configure.getTaskActiveById(ua.RId)
if conf == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
code = this.moduleTask.modelTaskActive.receiveHandle(session.GetUserId(), req.Id, conf, ua, comm.TaskTag(req.TaskTag))
if code != pb.ErrorCode_Success {
return
}
//派发奖励
code = this.moduleTask.DispenseRes(session, conf.Reword, true)
return
}