| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- /** 现金夺宝数据类 */
- import AdM from "../manager/AdM"
- import GameM from "../manager/GameM"
- import UiM, { PANEL_NAME } from "../manager/UiM"
- import TreasureItem from "../prefabs/TreasureItem"
- import EffectNode from "../ui/EffectNode"
- import OfficialNode from "../ui/OfficialNode"
- import Treasure from "../ui/Treasure"
- import LogUtil from "../utils/LogUtil"
- import { Utils } from "../utils/Utils"
- import { HTTP_TYPE } from "./CommonData"
- import { STORAGE_KEY } from "./GlobalStorage"
- export default class TreasureData {
- private static instance: TreasureData = null
- static get Instance(): TreasureData {
- if (!TreasureData.instance) {
- TreasureData.instance = new TreasureData()
- }
- return TreasureData.instance
- }
- /** 现金夺宝
- * id 档次
- * mannum 开奖需要人次
- * limitman 单人人次上限
- * requestfrequency 刷新频率
- * amount 金额
- */
- treasureCfg: any = null
- //现金夺宝服务器总数据
- /**
- * 数据 name 开奖名字
- * phase 开奖期数
- * joinManInfoQueue 参加者队列
- * drawid drawid
- * joinTimes 个人参加次数
- * joinTotal 参加总人数
- */
- treasureData = null
- //当前抽奖item
- curTreasureItem = null
- //抽奖类型 0 用券 1 看视频
- drawTreasureType = 0
- //打开现金抽奖界面时计时时间,用来计算刷新单条时间
- treasureOpenTime = 0
- //玩家参与抽奖的开奖结果
- /**
- * uin 参加者uin
- * recordId 期数Id
- * phase 期数
- * outTime 过期时间
- * nickName 中奖人名字
- * headimgurl 中奖人头像
- * isWin 是否中奖
- * isNotice 是否弹窗
- */
- treasureJoinInfo = null
- //显示中奖结果index
- private resultIndex = 0
- /** 参加冷却 服务器返回结束后才能点下一次 */
- joinCool = false
- /** 参加抽奖期数数组 */
- joinDraw = ''
- /** 每日抽奖次数 */
- treasureDailyTimes = 0
- //------现金抽奖
- /** 获取现金夺宝总数据 */
- getTreasureData() {
- GameM.httpM.sendDatas(HTTP_TYPE.getLuckDrawInfo, null, TreasureData.Instance.resultTreasureData.bind(this))
- }
- /** 现金夺宝数据返回 */
- resultTreasureData(data) {
- this.treasureData = data
- if (UiM.Instance.treasureNode) {
- UiM.Instance.treasureNode.getComponent(Treasure).onGetTreasureData()
- }
- }
- /** 获取现金夺宝单条数据 */
- freshTreasureData(id) {
- let data = {
- "drawId": id.toString()
- }
- GameM.httpM.sendDatas(HTTP_TYPE.refreshluckDrawInfo, data, TreasureData.Instance.resultFreshTreasureData.bind(this))
- }
- /** 获取现金夺宝单条数据返回 */
- resultFreshTreasureData(data) {
- // console.log('resultFreshTreasureData ', data)
- let hasOpen = this.setTreasureDataOne(data)
- if (UiM.Instance.treasureNode) {
- UiM.Instance.treasureNode.getComponent(Treasure).freshTreasureDataOne(hasOpen, data)
- }
- }
- /** 通过id获取现金抽奖服务器数据
- * @param id 抽奖档次
- */
- getTreasureDataById(id) {
- let len = this.treasureData.length
- let data = null
- for (var i = 0; i < len; i++) {
- // phaseStr = this.treasureData[i].draw_id
- if (this.treasureData[i].drawid == id) {
- data = this.treasureData[i]
- break
- }
- }
- return data
- }
- /** 刷新单条服务器数据并返回是否开奖 */
- setTreasureDataOne(data) {
- let len = this.treasureData.length
- let phaseStr = 0
- let nPhaseStr = data.phase.toString()
- //是否开奖
- let hasOpen = false
- for (var i = 0; i < len; i++) {
- phaseStr = this.treasureData[i].phase.toString()
- if (this.treasureData[i].drawid == data.drawid) {
- if (phaseStr == nPhaseStr) {
- hasOpen = false
- }
- else {
- hasOpen = true
- }
- this.treasureData[i] = data
- // if (this.treasureData[i].joinManInfoQueue == null) {
- // this.treasureData[i].joinManInfoQueue = []
- // }
- break
- }
- }
- return hasOpen
- }
- /** 现金抽奖 */
- updateJoin(data) {
- LogUtil.logV("this.treasureDailyTimes three", this.treasureDailyTimes)
- this.joinCool = true
- setTimeout(() => {
- this.joinCool = false
- }, 1000);
- GameM.httpM.sendDatas(HTTP_TYPE.join, data, TreasureData.Instance.resultJoin.bind(this), TreasureData.Instance.resultJoinFail.bind(this))
- }
- resultJoin() {
- if (this.drawTreasureType == 0) {
- GameM.commonData.roleData.ticket--
- GameM.commonData.updateRoleData()
- if (GameM.commonData.roleData.ticket <= 0) {
- UiM.Instance.treasureNode.getComponent(Treasure).freshVideo()
- }
- }
- LogUtil.logV("this.treasureDailyTimes four", this.treasureDailyTimes)
- if (UiM.Instance.treasureNode) {
- UiM.Instance.treasureNode.getComponent(Treasure).refreshLabs()
- }
- if (this.curTreasureItem) {
- let item = this.curTreasureItem.getComponent(TreasureItem)
- item.resultJoin()
- }
- this.joinCool = false
- EffectNode.instance.PlayTip('参与抽奖成功!')
- }
- resultJoinFail(errmsg) {
- TreasureData.Instance.joinCool = false
- EffectNode.instance.PlayTip(errmsg)
- }
- private luckMoney = 0
- /** 现金抽奖 */
- luckycash(recordId, money) {
- this.luckMoney = money
- let data = {
- "recordId": recordId,
- 'appVersion': GameM.commonData.appVersion
- }
- GameM.httpM.sendDatas(HTTP_TYPE.luckycash, data, TreasureData.Instance.resultLuckycash.bind(this), TreasureData.Instance.resultLuckycashFail.bind(this))
- }
- /** 现金抽奖返回 */
- resultLuckycash(data) {
- if (data.CashMode == 2) {
- UiM.Instance.onPanel(PANEL_NAME.OfficialNode, false, () => {
- UiM.Instance.officialNode.getComponent(OfficialNode).init(this.luckMoney, data.withdrawalCode);
- AdM.onSendEvent('publicmoney_2', '公众号提现-现金夺宝', 'publicmoney')
- })
- }
- AdM.setTAEventUser(1, 'withdraw_amount', this.luckMoney)
- UiM.Instance.treasureNode.getComponent(Treasure).resultLuckycash(data.CashMode != 2)
- }
- resultLuckycashFail(errmsg) {
- EffectNode.instance.PlayTip(errmsg)
- if (UiM.Instance.treasureNode) {
- UiM.Instance.treasureNode.getComponent(Treasure).tixianFail()
- }
- }
- /** 抽奖记录 */
- getLuckyLottery(drawid) {
- let data = {
- "drawid": drawid.toString()
- }
- GameM.httpM.sendDatas(HTTP_TYPE.getLuckyLottery, data, TreasureData.Instance.resultGetLuckyLottery.bind(this))
- }
- /**获取滚动奖励信息 */
- getRandomLottery() {
- GameM.httpM.sendDatas(HTTP_TYPE.getShouYeLuckyLottery, null, TreasureData.Instance.resultGetRandomLottery.bind(this))
- }
- /** 抽奖记录返回 */
- resultGetLuckyLottery(data) {
- LogUtil.logV("resultGetLuckyLottery", "result")
- UiM.Instance.treasureNode.getComponent(Treasure).onShowRecord(data)
- }
- /** 滚动奖励返回 */
- resultGetRandomLottery(data) {
- LogUtil.logV("resultGetRandomLottery", "result")
- if (cc.isValid(UiM.Instance.treasureNode)) {
- UiM.Instance.treasureNode.getComponent(Treasure).showScrollInfo(data)
- }
- }
- /** 现金抽奖配置 */
- getLuckydrawConfig() {
- GameM.httpM.sendDatas(HTTP_TYPE.getLuckydrawConfig, null, TreasureData.Instance.resultLuckydrawConfig.bind(this))
- }
- /** 现金抽奖配置返回 */
- resultLuckydrawConfig(data) {
- this.treasureCfg = data
- }
- getLuckydrawCfgById(drawid: number) {
- let len = this.treasureCfg.length
- let cfg = null
- for (var i = 0; i < len; i++) {
- if (drawid == this.treasureCfg[i].drawid) {
- cfg = this.treasureCfg[i]
- break
- }
- }
- return cfg
- }
- /** 获取参与的抽奖结果 */
- getLotteryresults() {
- GameM.httpM.sendDatas(HTTP_TYPE.lotteryresults, null, TreasureData.Instance.resultLotteryresults.bind(this))
- }
- /** 参与的抽奖结果返回 */
- resultLotteryresults(data) {
- this.resultIndex = 0
- this.treasureJoinInfo = data
- if (UiM.Instance.treasureNode) {
- UiM.Instance.treasureNode.getComponent(Treasure).showResult()
- }
- }
- /** 更新抽奖结果 */
- updateLottery(recordId) {
- let data = {
- "recordId": recordId
- }
- GameM.httpM.sendDatas(HTTP_TYPE.updatelottery, data)
- }
- getCurLotteryresult() {
- if (!this.treasureJoinInfo) {
- return null
- }
- let curLottery = null
- for (var i = this.resultIndex; i < this.treasureJoinInfo.length; i++) {
- curLottery = this.treasureJoinInfo[i]
- this.resultIndex++
- if (!curLottery.isNotice) {
- break
- }
- }
- return curLottery
- }
- /** 更改本地参与抽奖数据 */
- changeDrawLocalData(phase, add = true) {
- let str = phase + ","
- if (add) {
- this.joinDraw += str
- }
- else {
- this.joinDraw.replace(str, '')
- }
- let key = 'dddddddddddddddddddddddddddddddd'
- let d = Utils.Encrypt(this.joinDraw, key, GameM.commonData.appid)
- GameM.globalStorage.setStorage(STORAGE_KEY.joinDraw, d)
- }
- /** 获取是否抽奖本期状态 */
- getDrawLocalData(phase) {
- let str = phase + ","
- if (this.joinDraw.indexOf(str) != -1) {
- this.changeDrawLocalData(phase, false)
- return true
- }
- return false
- }
- /** 获取当日抽奖次数 */
- getDailyLimit() {
- GameM.httpM.sendDatas(HTTP_TYPE.getDailyLimit, null, TreasureData.Instance.resultDailyLimit.bind(this))
- }
- resultDailyLimit(data) {
- LogUtil.logV("this.treasureDailyTimes eight", this.treasureDailyTimes)
- if (data != null) {
- this.treasureDailyTimes = data
- }
- LogUtil.logV("this.treasureDailyTimes nine", this.treasureDailyTimes)
- if (UiM.Instance.treasureNode) {
- UiM.Instance.treasureNode.getComponent(Treasure).freshLimitLab()
- }
- }
- }
|