GameServicePlus.ts 11.1 KB
import DataService from "../../framework/wxsdk/service/DataService";
import GameService from "../../framework/wxsdk/service/GameService";
import WxPay from "../../framework/wxsdk/wx/WxPay";
import SDKApiPlus from "./SDKApiPlus";



export default class GameServicePlus extends GameService {
    memberSave(content: string, params: any = {}) {
        return SDKApiPlus.memberSave({ uid: DataService.I.UserId, token: DataService.I.Token, content, ...params });
    }

    memberGet() {
        return SDKApiPlus.memberGet({ uid: DataService.I.UserId, token: DataService.I.Token });
    }
    memberSesetAup() {
        return SDKApiPlus.memberSesetAup({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    memberClear() {
        return SDKApiPlus.memberClear({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    getGameNotice() {
        return SDKApiPlus.notice();
    }

    mail() {
        return SDKApiPlus.mail({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    /**
     * 改变邮件状态
     * @param id id为0或不传id时为 一键领取、一键删除
     * @param status 1已读 2领取 3删除。如同时修改多个状态格式:1,2
     * @returns 
     */
    updateMailStatus(id: number, status: string) {
        return SDKApiPlus.mailStatus({ id, status, uid: DataService.I.UserId, token: DataService.I.Token });
    }

    getQRcode() {
        return SDKApiPlus.QRcode();
    }

    convertCDkey(cdkey: string) {
        return SDKApiPlus.cdkey({ uid: DataService.I.UserId, token: DataService.I.Token, cdkey: cdkey });
    }

    clearData() {
        return SDKApiPlus.clearData({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    goodsList() {
        return SDKApiPlus.goodsList({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    createOrder(goodid: string) {
        return SDKApiPlus.createOrder({ uid: DataService.I.UserId, token: DataService.I.Token, goodid });
    }

    queryOrder(no: string) {
        return SDKApiPlus.queryOrder({ uid: DataService.I.UserId, token: DataService.I.Token, no });
    }

    confirmOrder(no: string) {
        return SDKApiPlus.confirmOrder({ uid: DataService.I.UserId, token: DataService.I.Token, no });
    }

    /**
     *  支付
     * @param params 
     * @param opts 
     * @returns 
     */
    pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}) {
        return WxPay.I.pay(params, opts);
    }
    /**
     *  订单查询
     */
    orderQuery(source) {
        return SDKApiPlus.orderQuery({
            ...this.buildParams(),
            source
        });
    }
    /**
    *  订单查询
    */
    preorder(goodid: string, orderid: string) {
        return SDKApiPlus.preorder({
            ...this.buildParams2(),
            token: DataService.I.Token,
            goodid, orderid
        });
    }

    /**
    *  获取玩家历史存档
    * @param uid
    * @param token
    */
    getUserHistory(uid: string, token: string) {
        return SDKApiPlus.getUserHistory({ uid: uid, token: token });
    }

    /**
    *  获取玩家历史存档
    * @param data //需要包含uid,token
    */
    saveUserHistory(data: any) {
        return SDKApiPlus.saveUserHistory(data);
    }

    /**
    *  重置GM标识
    */
    setAup(typ: number = 0) {
        return SDKApiPlus.setAup({ uid: DataService.I.UserId, token: DataService.I.Token, typ });
    }

    /**
     * 获取分享图片
     * @param items 2,1,0|3,1,1|3,1,1|3,1,1|3,1,1格式:2,1,0(类型,id,领取状态)领取状态:1已领取0未领取
     * @param zoom 图片缩放比例
     * @returns 
     */
    getShareImage(items: string, zoom: number = 1) {
        return SDKApiPlus.getShareImg({ uid: DataService.I.UserId, token: DataService.I.Token, items, zoom });
    }

    /**
     * 获取我的今日分享
     * @param refresh 是否刷新
     */
    getShare(refresh?: number) {
        let req = { uid: DataService.I.UserId, token: DataService.I.Token };
        if (refresh) {
            req['refresh'] = refresh;
        }
        return SDKApiPlus.getShare(req);
    }

    /**
     * 获取好友分享详情
     * @param id 分享id
     * @param date 分享日期 格式:20220524
     */
    getShareInfo(id: number, date: string) {
        return SDKApiPlus.getShareInfo({ uid: DataService.I.UserId, token: DataService.I.Token, id, date });
    }

    /**
     * 领取好友分享
     * @param id 分享id
     * @param date 分享日期 格式:20220524
     * @param itemid 分享选项ID
     */
    getShareReward(id: number, date: string, itemid: number) {
        return SDKApiPlus.receiveShare({ uid: DataService.I.UserId, token: DataService.I.Token, id, date, itemid });
    }

    /**
     * 领取额外进度奖励
     * @param id 分享id
     * @param date 分享日期 格式:20220524
     */
    getProgressReward(id: number, date: string) {
        return SDKApiPlus.getProgressReward({ uid: DataService.I.UserId, token: DataService.I.Token, id, date });
    }

    saveStory(key: string, data: string) {
        // return SDKApiPlus.saveStory({
        //     id: UserManager.I.curStory.id,
        //     lv: UserManager.I.curStory.lv,
        //     fbid: UserManager.I.curStory.fbid,
        //     fbindex: UserManager.I.curStory.fbindex,
        //     data,
        //     uid: DataService.I.UserId,
        //     token: DataService.I.Token,
        // });
    }

    /**
     * 我的邀请详情
     * @returns 
     */
    getInviteInfo() {
        return SDKApiPlus.getInviteInfo({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    /**
     * 领取邀请奖励
     * @param id 挡位id
     */
    receiveInvite(id: number) {
        return SDKApiPlus.receiveInvite({ uid: DataService.I.UserId, token: DataService.I.Token, id });
    }

    /**
     * 心跳
     */
    beatheart() {
        return SDKApiPlus.heartbeat({ uid: DataService.I.UserId, token: DataService.I.Token });
    }
    /**
    * 周卡/月卡列表
    */
    recCardList() {
        return SDKApiPlus.recCardList({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    /**
     * 领取周卡/月卡奖励
     * @param typ 第几天 week周 month月
     */
    recCardReward(typ: string) {
        return SDKApiPlus.recCardReward({ uid: DataService.I.UserId, token: DataService.I.Token, typ });
    }

    /**
     * 领取基金列表
     */
    recGrowthList() {
        return SDKApiPlus.recGrowthList({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    /**
     * 领取基金列表
     * @param goodid 购买的基金商品ID
     * @param level 等级
     */
    recGrowthReward(goodid: string, level: number) {
        return SDKApiPlus.recGrowthReward({ uid: DataService.I.UserId, token: DataService.I.Token, goodid, level });
    }

    /**
     * 获取无尽礼包数据
     */
    recEndlessList(groupId: string) {
        return SDKApiPlus.recEndlessList({ uid: DataService.I.UserId, token: DataService.I.Token, group_id: groupId });
    }

    /**
     * 领取无尽礼包
     */
    recEndlessReward(groupId: string, id: string, date: string) {
        return SDKApiPlus.recEndlessReward({ uid: DataService.I.UserId, token: DataService.I.Token, group_id: groupId, id, date });
    }

    /**
     * 获取新手礼包数据
     */
    getNewbieGiftData() {
        return SDKApiPlus.getNewbieGiftData({ uid: DataService.I.UserId, token: DataService.I.Token });
    }

    /**
     * 领取新手礼包
     * @param days 第几天
     */
    recNewbieGift(days: string) {
        return SDKApiPlus.recNewbieGift({ uid: DataService.I.UserId, token: DataService.I.Token, days });
    }


    /**
     * 订阅消息
     * @param tmplId 订阅ID
     * @param message 订阅内容
     * @param sendtime 订阅发送时间s二选一参数
     * @param times 订阅延迟时间s二选一参数
     * @param status 1取消以前相同模板信息,默认为0不取消
     */
    async sendSubScribe(tmplId: string, message: string, sendtime: number, times: number = 0, status: number = 1) {
        let uid = +DataService.I.UserId;
        let token = DataService.I.Token + '';
        let openid = DataService.I.OpenId + '';

        let data = {
            uid,
            token,
            openid,
            status,
            message: encodeURIComponent(message),
            temid: tmplId
        };
        if (times) {
            data["times"] = times;
        } else {
            data["sendtime"] = Math.floor(sendtime);
        }
        let back = await SDKApiPlus.sendsubscribe(data)
        return back;
    }


    /**
     * 取消订阅消息
     * @param tmplId 订阅ID
     */
    async cancelSubscribe(tmplId: string) {
        let uid = +DataService.I.UserId;
        let token = DataService.I.Token + '';
        let openid = DataService.I.OpenId + '';

        let data = {
            uid,
            token,
            openid,
            temid: tmplId
        };
        let back = await SDKApiPlus.cancelSubscribe(data)
        return back;
    }
    /**
     * 自定义活动
     * @param id  活动ID(后台的ID)
     */
    activityCustom(id?: string) {
        return SDKApiPlus.activityCustom({ id });
    }

    /**
     * 添加排行榜
     * @param typ 游戏端自定义排行标识
     * @param fraction 分数 如果上报的分数小于以前上报的分数,则不会更新
     * @param rankData 扩展字段
     * @returns 
     */
    rankAddV2(typ: string, fraction: number, rankData?: string) {
        return SDKApiPlus.rankAddV2({ typ, fraction, rankData, uid: DataService.I.UserId, token: DataService.I.Token });
    }
    /**
     * 排行榜列表
     * @param percent percent等于1 的时候会返回排行榜总人数和自己的当前排名
     */
    rankListV2(typ: string, percent: number = 0) {
        return SDKApiPlus.rankListV2({ typ, percent, uid: DataService.I.UserId, token: DataService.I.Token });
    }
    /**
     * 活动排行榜配置
     * @param name 游戏端自定义排行标识
     */
    activityRankConfig(name: string) {
        return SDKApiPlus.activityRankConfig({ name, uid: DataService.I.UserId, token: DataService.I.Token });
    }
    /**
     * 活动排行榜添加分数
     * @param name 游戏端自定义排行标识
     * @param score 分数
     * @param extend 扩展
     */
    activityRankAdd(name: string, score: number, extend: string) {
        return SDKApiPlus.activityRankAdd({ name, score, extend, uid: DataService.I.UserId, token: DataService.I.Token });
    }
    /**
     * 活动排行榜
     * @param name 游戏端自定义排行标识
     */
    activityRankList(name: string) {
        return SDKApiPlus.activityRankList({ name, uid: DataService.I.UserId, token: DataService.I.Token });
    }
    /**
     * 活动排行榜奖励
     * @param name 游戏端自定义排行标识
     */
    activityRankReward(name: string) {
        return SDKApiPlus.activityRankReward({ name, uid: DataService.I.UserId, token: DataService.I.Token });
    }

    static instance: GameServicePlus;
    static get I(): GameServicePlus {
        return this.instance || (this.instance = new GameServicePlus());
    }
}