package user import ( "go_dreamfactory/comm" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) // 储蓄金领取 func (this *apiComp) DepositCheck(session comm.IUserSession, req *pb.UserDepositReq) (errdata *pb.ErrorData) { return } func (this *apiComp) Deposit(session comm.IUserSession, req *pb.UserDepositReq) (errdata *pb.ErrorData) { if errdata = this.DepositCheck(session, req); errdata != nil { return } user, err := this.module.GetUser(session.GetUserId()) if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } if user.Deposit <= 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_UserDepositNoEnough, Title: pb.ErrorCode_UserDepositNoEnough.ToString(), } return } reward := this.module.globalConf.OverexpReward if reward == nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), } return } atn := &cfg.Gameatn{ A: reward.A, T: reward.T, N: int32(user.Deposit), } this.module.DispenseRes(session, []*cfg.Gameatn{atn}, true) // 储蓄金清零 update := map[string]interface{}{ "deposit": 0, } if err := this.module.modelUser.Change(session.GetUserId(), update); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } this.module.Errorf("更新储蓄金失败 uid:%v res:%v err:%v", session.GetUserId(), atn, err) return } session.SendMsg(string(this.module.GetType()), "deposit", &pb.UserDepositResp{ Atn: &pb.UserAssets{ A: atn.A, T: atn.T, N: atn.N, }, }) go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { this.module.WriteUserLog(session.GetUserId(), comm.GMResAddType, "UserDepositReq", atn) }) return }