package integral import ( "go_dreamfactory/comm" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) //参数校验 func (this *apiComp) GetAchieveCheck(session comm.IUserSession, req *pb.IntegralGetAchieveReq) (errdata *pb.ErrorData) { return } func (this *apiComp) GetAchieve(session comm.IUserSession, req *pb.IntegralGetAchieveReq) (errdata *pb.ErrorData) { var ( list *pb.DBIntegralBoss err error conf *cfg.GameIntegralAchieveData atno []*pb.UserAtno update map[string]interface{} ) update = make(map[string]interface{}) list, err = this.module.modelIntegral.getIntegralList(session) if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), } return } if conf, err = this.module.configure.GetIntegralAchieveByKey(req.Id); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } return } if _, ok := list.Achieve[req.Id]; ok { // 重复激活 errdata = &pb.ErrorData{ Code: pb.ErrorCode_TntegralRepeatedAchive, Title: pb.ErrorCode_TntegralRepeatedAchive.ToString(), Message: err.Error(), } return } if conf.Taskid != 0 { // 校验任务 if ok, _, err := this.module.ModuleBuried.CheckCondition(session, conf.Taskid); !ok || err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_TaskNoFinished, Title: pb.ErrorCode_TaskNoFinished.ToString(), Message: err.Error(), } } } list.Achieve[req.Id] = 1 update["achieve"] = list.Achieve // 更新数据 if err = this.module.modelIntegral.modifyIntegralData(session.GetUserId(), update); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } if errdata, atno = this.module.DispenseAtno(session, conf.Reward, true); err != nil { return } session.SendMsg(string(this.module.GetType()), "getachieve", &pb.IntegralGetAchieveResp{ Id: req.Id, Award: atno, }) return }