package task import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "google.golang.org/protobuf/proto" ) //活跃度领取 func (this *apiComp) ActiveReceiveCheck(session comm.IUserSession, req *pb.TaskActiveReceiveReq) (code pb.ErrorCode) { if req.Id == "" { code = pb.ErrorCode_TaskIdEmpty } else if req.TaskTag <= 0 || req.TaskTag > 2 { code = pb.ErrorCode_TaskTagEmpty } 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 } }() ua := this.moduleTask.modelTaskActive.getUserActive(session.GetUserId(), req.Id, comm.TaskTag(req.TaskTag)) if ua == nil { code = pb.ErrorCode_TaskActiveNofound return } //判断是否已领取 if ua.Received == 1 { code = pb.ErrorCode_TaskReceived return } conf := this.moduleTask.configure.getTaskActiveById(ua.RId) if conf == nil { code = pb.ErrorCode_ConfigNoFound return } // get user expand ue, err := this.moduleTask.ModuleUser.GetUserExpand(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return } if ue == nil { code = pb.ErrorCode_UserExpandNull return } if ue.Activeday >= conf.Active { update := map[string]interface{}{ "received": 1, //标识已领取 } if err := this.moduleTask.modelTaskActive.updateReceive(session.GetUserId(), ua.Id, comm.TaskTag(req.TaskTag), update); err != nil { log.Errorf("updateReceive err %v", err) code = pb.ErrorCode_DBError return } } else { code = pb.ErrorCode_TaskActiveNoenough return } //派发奖励 code = this.moduleTask.DispenseRes(session, conf.Reword, true) return }