2021-07-19-hp.md 6.6 KB

开发日志 2021-07-19-hp

修改项目

  • service-finance 个税比例改到配置文件
  • service-message 百度断下改为hutool加密
  • api-family 家族提现日期改到配置文件

拍卖房修改项目

  • service-rtc
  • api-manage
  • api-app

拍卖

  • 拍卖流水
  • tb_auction
    • 竞价倍数
    • 起拍价
    • 拍卖礼物
    • 拍卖结束时间(中标/流标时间)
    • 竞拍是否有持续时间限制❓
    • 奖品 ⭐️ 时间充足可以做扩展
    • 类别
    • 奖品id
    • 奖品数量

注意

  • redis中房间的竞拍流水id需要和数据中的保持一致(状态是竞拍中的只能有一条数据)
  • 统计拍卖礼物时发一条消息
    • 竞拍id
    • 发送人id
    • 接收人id
    • 礼物id
    • 礼物价格
    • 礼物数量

拍卖房

  • 管理后台:语聊管理/房间分类 新建一个拍卖房类型 ✅
  • 家族管理后台:语聊管理/房间列表 创建房间时【房间类型】增加【拍卖房】
    • RoomTypeEnum

App入口

  • 拍卖房列表
    • 按热度排序(由高到低,热度一样时,先创建的房间排在前面)

进入拍卖房后

  • ⭐️ 竞拍席列表
    • 展示出价最高的三个用户(价格一样时,最先达成的排在前面)
    • 累计礼物价值
    • 用户头像
    • 用户昵称
    • 主动获取接口(进房时使用)
    • 消息推送(在房间玩耍时使用)
  • 拍卖房麦序列表 api-app/v1/rtc/getSeats ❓
    • ⭐️ 主持
    • ⭐️ 拍卖对象
    • ⭐️ 拍卖嘉宾
    • ⭐️ 4个普通麦位
    • ⭐️ 拍卖房设置(详情见设计文档)
    • 隐藏“心动值”、“心动值列表”操作
  • 麦序列表 api-app/v1/rtc/getQueueUsers
  • ⭐️ 拍卖房麦序列表
    • 普通麦
    • 竞拍麦
  • 移除麦位排序列表 ❓
  • 同意上麦 ❓
  • 申请上麦 api-app/v1/rtc/sitSeat
  • 允许上麦 api-app/v1/rtc/setUserToSeat
  • ⭐️ 申请上麦
    • 普通麦位(最多4个)
    • 竞拍麦位(只有一个)
  • ⭐️ 抱上嘉宾麦位

设置拍卖(包装成一个接口返回)

  • ⭐️ 拍卖物品列表 🦌 鹿角
  • ⭐️ 拍卖时长列表 🦌 鹿角
  • ⭐️ 起拍礼物列表

⭐️ 提交拍卖设置接口

记录拍卖中的流水

⭐️ 房间id + 竞拍id 总流水

  • 房间id
  • 拍卖主持人id
  • 被拍卖用户id
  • 起拍礼物id
  • 起拍礼物当前价值
  • 起拍礼物当前名称
  • 拍卖时长
  • 参与竞拍人数
  • 竞拍状态:竞拍中、中标、流拍
  • 本次竞拍总流水
  • 最高出价(单人累计最高)

⭐️ 流水明细

  • 礼物发送者
  • 礼物接收者
  • 礼物id
  • 礼物当前价值
  • 礼物数量
  • 礼物总价值
  • 创建时间

被拍卖用户 下麦或离开房间

  • ⭐️ 需要发消息通知 APP 端
  • ⭐️ 竞拍中再次回到房间,自动上麦

⭐️ 结束竞拍(主持人点)

  • 竞拍成功
  • 流拍

⭐️ 拍卖数据统计

  • 发起竞拍次数
  • 参与竞拍用户数(一天中一个用户只记录一次)
  • 竞拍对象数(一天中一个用户只记录一次)
  • 中标次数
  • 流拍次数
  • 竞拍流水

⭐️ 发布竞拍结果消息

赠送礼物相关消息

/**
 * RTC 麦下送礼物支付
 */
public static final String RTC_UNDER_MAI_GIFT_PAID = "RTC_UNDER_MAI_GIFT_PAID";

service-rtc handleRtcGiftPaid() 增加拍卖房逻辑
语音房类型 RoomTypeEnum.AUCTION

拍卖逻辑

1. 创建拍卖房记录 tb_rtc_room_auction

  • 判断房间是否竞拍房
    • redis 中根据 roomId 读取
  • 一个房间只能有一个正在竞拍中的状态
    • redis 上锁
    • MySQL 检查 tb_rtc_room_auction 表竞拍状态是否有“竞拍中”的
    • 新增一条竞拍记录
    • 更新 Redis
    • Redis 解锁

2. 竞拍中送给拍卖对象礼物

  • 判断是否竞拍中(Redis 中获取房间竞拍状态)

一、运营策略调整

1、后台

  • 有公会收到价值68%,无公会58%
  • 兑换没有手续费,粉->钻 ✅
  • 提现税点6%
  • 私信收礼60%
  • 陪玩68%,必须与家族绑定,家族10% ✅

2、公会

  • 公会收益10%
  • 每周周五提一次 ✅
  • 公会扶持表(流水的15%,取整万)❌ 线下处理

PK 记录过滤主场比分 参与字段不对

service-message service-task


亲密度 守护榜单:根据亲密度排序

SQL

CREATE TABLE `tb_rtc_room_auction` (
  `rtcRoomAuctionId` bigint(20) NOT NULL COMMENT '拍卖房记录id',
  `roomId` bigint(20) NOT NULL COMMENT '房间ID',
  `guestUserId` bigint(20) NOT NULL COMMENT '嘉宾用户ID',
  `bidUserId` bigint(20) NOT NULL COMMENT '被拍卖用户id',
  `bidItemId` bigint(20) NOT NULL COMMENT '拍卖物品id',
  `bidItemName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '拍卖物品名称',
  `bidDuration` int(11) NOT NULL COMMENT '拍卖时长(单位:天)',
  `startingGiftId` bigint(20) NOT NULL COMMENT '起拍礼物id',
  `startingGiftName` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '起拍礼物名称',
  `startingGiftPrice` bigint(20) NOT NULL COMMENT '起拍礼物价格',
  `bidUserCount` int(11) NOT NULL DEFAULT '0' COMMENT '竞拍人数',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '竞拍状态',
  `bidTotalPrice` bigint(20) DEFAULT '0' COMMENT '竞拍流水总和',
  `winUserId` bigint(20) DEFAULT NULL COMMENT '中标用户id',
  `highestBidPrice` bigint(20) DEFAULT NULL COMMENT '最高出价(单位:礼物价格)',
  `highestBidUserId` bigint(20) DEFAULT NULL COMMENT '最高出价的用户id',
  `endTime` bigint(20) DEFAULT NULL COMMENT '竞拍结束时间',
  `createDate` int(11) DEFAULT NULL COMMENT '创建时间yyyyMMdd',
  `createTime` bigint(20) NOT NULL COMMENT '创建时间',
  `updateTime` bigint(20) NOT NULL COMMENT '更新时间',
  `isDeleted` int(11) NOT NULL COMMENT '是否删除',
  PRIMARY KEY (`rtcRoomAuctionId`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='拍卖房记录';

CREATE TABLE `tb_rtc_room_auction_his` (
  `hisId` bigint(20) NOT NULL,
  `rtcRoomAuctionId` bigint(20) NOT NULL COMMENT '拍卖房记录id',
  `sendUserId` bigint(20) NOT NULL COMMENT '发送礼物用户id',
  `receiveUserId` bigint(20) NOT NULL COMMENT '接收礼物用户id',
  `giftId` bigint(20) NOT NULL COMMENT '礼物id',
  `giftPrice` bigint(20) NOT NULL COMMENT '礼物价格',
  `giftCount` int(11) NOT NULL COMMENT '礼物数量',
  `giftTotalPrice` bigint(20) NOT NULL COMMENT '礼物总价格',
  `createTime` bigint(20) NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`hisId`),
  KEY `rtcRoomAuctionIdIndex` (`rtcRoomAuctionId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='拍卖房记录流水';