添加后台代理代码和数据库

This commit is contained in:
2026-03-19 17:47:14 +08:00
parent ea08c9366a
commit c3ab6e8a0d
29 changed files with 21749 additions and 1313 deletions

View File

@@ -0,0 +1,644 @@
/*
Navicat Premium Dump SQL
Source Server : agent
Source Server Type : MySQL
Source Server Version : 80036 (8.0.36)
Source Host : rm-bp1btyuwq77591x0jpo.mysql.rds.aliyuncs.com:3306
Source Schema : agent_db_temp
Target Server Type : MySQL
Target Server Version : 80036 (8.0.36)
File Encoding : 65001
Date: 15/03/2026 19:31:42
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for gold_account
-- ----------------------------
DROP TABLE IF EXISTS `gold_account`;
CREATE TABLE `gold_account` (
`idx` int NOT NULL AUTO_INCREMENT,
`goac_id` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 'id时间戳+房号+4位随机码',
`goac_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`goac_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`goac_roomcode` int NOT NULL COMMENT '房间号',
`goac_roommode` tinyint(1) NOT NULL COMMENT '0-星星场玩家房间 1-星星场系统房间 2-非星星场(星星限进)',
`goac_createtime` datetime NOT NULL COMMENT '房间的创建时间',
`goac_beanmult` int NOT NULL COMMENT '倍数',
`goac_ownerid` int NULL DEFAULT NULL COMMENT '房主的玩家id',
`goac_shortcode` int NULL DEFAULT NULL COMMENT '短号',
`goac_deduct` tinyint(1) NULL DEFAULT NULL COMMENT '0-房主扣卡 1-每人扣卡 2-大赢家扣卡',
`goac_roomcard` int NULL DEFAULT NULL COMMENT '扣的房卡数量',
`goac_datatype` tinyint(1) NOT NULL COMMENT '0-大局结算数据 1-小局结算数据',
`goac_asetcount` int NULL DEFAULT NULL COMMENT '总局数',
`goac_asetnum` int NULL DEFAULT NULL COMMENT '当前小局号从1开始计数',
`goac_playerid` int NULL DEFAULT NULL COMMENT '玩家id',
`goac_isrobot` tinyint(1) NULL DEFAULT 0 COMMENT '0-真实玩家 1-机器人',
`goac_grade` int NOT NULL COMMENT '玩家得分',
`goac_rebatefrom` tinyint(1) NOT NULL COMMENT '0-不抽成 1-对大赢家进行抽成 2-对所有赢家抽成 3-对所有玩家抽成',
`goac_rebateto` tinyint(1) NULL DEFAULT NULL COMMENT '0-抽成给系统 1-抽成给房主 2-抽成给指定玩家 3-抽成给指定玩家的代理账号',
`goac_toplayerid` int NULL DEFAULT NULL COMMENT '抽成给到的玩家id',
`goac_rebatemode` tinyint(1) NULL DEFAULT NULL COMMENT '1-按得分的百分比抽成 2-按倍数的百分比抽成 3-按固定值抽成',
`goac_setvalue` int NULL DEFAULT NULL COMMENT '抽成设置的值',
`goac_rebatevalue` int NULL DEFAULT NULL COMMENT '实际抽成数量',
`goac_time` datetime NOT NULL COMMENT '发生时间',
`goac_state` tinyint(1) NULL DEFAULT 0 COMMENT '代理后台处理状态 0:未处理 1:已处理',
`goac_statetime` datetime NULL DEFAULT NULL COMMENT '代理后台处理时间',
`goac_invitecode` int NULL DEFAULT NULL,
`goac_inviteid` int NULL DEFAULT NULL,
`goac_marketid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`goac_i1` int NULL DEFAULT NULL,
`goac_i2` int NULL DEFAULT NULL,
`goac_i3` int NULL DEFAULT NULL,
PRIMARY KEY (`idx`) USING BTREE,
INDEX `gold_account_index2`(`goac_agentid` ASC, `goac_playerid` ASC) USING BTREE,
INDEX `gold_account_index1`(`goac_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18149691 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '金币变动表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for player
-- ----------------------------
DROP TABLE IF EXISTS `player`;
CREATE TABLE `player` (
`idx` int NOT NULL AUTO_INCREMENT,
`play_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`play_playerid` int NOT NULL COMMENT '玩家id',
`play_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_openid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信openid',
`play_unionid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信unionid',
`play_nickname` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '玩家昵称',
`play_avatar` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '头像',
`play_sex` tinyint(1) NULL DEFAULT NULL COMMENT '性别',
`play_province` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '',
`play_city` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市',
`play_roomcard` int NULL DEFAULT 8 COMMENT '房卡数量',
`play_bean` int NULL DEFAULT 0 COMMENT '金币',
`play_regtime` datetime NOT NULL COMMENT '注册时间',
`play_lasttime` datetime NOT NULL COMMENT '最后登录时间',
`play_logindate` int NULL DEFAULT 1 COMMENT '累积登录天数',
`play_usecard` int NULL DEFAULT 0 COMMENT '累积使用房卡数量',
`play_taskaward` int NULL DEFAULT 0 COMMENT '累积任务奖励房卡数量',
`play_type` tinyint(1) NULL DEFAULT 0 COMMENT '用户类型 0:普通用户 1:vip开房不扣房卡',
`play_score` int NULL DEFAULT 0,
`play_a_country` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_a_province` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_a_city` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_a_citycode` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_a_district` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_a_street` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_a_address` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_longitude` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_latitude` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_invitecode` int NULL DEFAULT NULL,
`play_inviteid` int NULL DEFAULT NULL,
`play_state` tinyint(1) NULL DEFAULT 0,
`play_advanced` tinyint NULL DEFAULT 0,
`play_shortcode` int NULL DEFAULT NULL,
`play_roomcodes` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_desone` varchar(400) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_destwo` varchar(400) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_whitelist` varchar(6000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_limit` int NULL DEFAULT NULL,
`play_notice` varchar(400) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_bankpower` tinyint(1) NULL DEFAULT 1,
`play_bank` int NULL DEFAULT 0,
`play_bankpwd` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_tel` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_wechat` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_marketid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_phoneinfo` varchar(8000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`play_sign` varchar(400) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `player_index2`(`play_agentid` ASC, `play_unionid` ASC) USING BTREE,
UNIQUE INDEX `player_index1`(`play_agentid` ASC, `play_playerid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 136111 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for player_grade
-- ----------------------------
DROP TABLE IF EXISTS `player_grade`;
CREATE TABLE `player_grade` (
`idx` int NOT NULL AUTO_INCREMENT,
`plgr_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`plgr_playerid` int NOT NULL COMMENT '玩家id',
`plgr_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`plgr_roomcode` int NOT NULL COMMENT '房号',
`plgr_ownerid` int NULL DEFAULT NULL COMMENT '房主id',
`plgr_roomtype` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '房间类型',
`plgr_createtime` datetime NOT NULL COMMENT '开房时间',
`plgr_makewartime` datetime NOT NULL COMMENT '开战时间',
`plgr_overtime` datetime NOT NULL COMMENT '结束时间',
`plgr_roomcard` int NULL DEFAULT NULL,
`plgr_ownercard` int NULL DEFAULT NULL,
`plgr_gameinfo1` varchar(10000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '一局游戏的完整数据 json格式',
`plgr_gameinfo2` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '一局游戏的完整数据 json格式',
`plgr_shortcode` int NULL DEFAULT NULL,
`plgr_deducttype` tinyint(1) NULL DEFAULT NULL,
`plgr_deductcard` int NULL DEFAULT NULL,
`plgr_asetcount` int NULL DEFAULT NULL,
`plgr_roommode` tinyint(1) NULL DEFAULT NULL,
`plgr_winner` tinyint(1) NOT NULL DEFAULT 0 COMMENT '大赢家',
`plgr_score` int NOT NULL DEFAULT 0 COMMENT '得分',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `player_grade2_index`(`plgr_agentid` ASC, `plgr_playerid` ASC, `plgr_gameid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 33678017 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家战绩表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_transferbill
-- ----------------------------
DROP TABLE IF EXISTS `sales_transferbill`;
CREATE TABLE `sales_transferbill` (
`idx` int NOT NULL AUTO_INCREMENT,
`satr_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`satr_openid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信openid',
`channel_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '渠道id',
`from_sales` int NULL DEFAULT NULL COMMENT '来源代理号',
`satr_salesid` int NOT NULL COMMENT '个人代理id',
`satr_amount` int NOT NULL COMMENT '转卡数量',
`satr_transfertime` datetime NOT NULL COMMENT '转卡时间',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `nk_transferbill_agent`(`satr_agentid` ASC, `channel_id` ASC) USING BTREE,
INDEX `nk_transferbill_openid`(`satr_agentid` ASC, `channel_id` ASC, `satr_openid` ASC) USING BTREE,
INDEX `nk_transferbill_salesid`(`satr_agentid` ASC, `channel_id` ASC, `satr_salesid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18554 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '个人代理转卡记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sales_user
-- ----------------------------
DROP TABLE IF EXISTS `sales_user`;
CREATE TABLE `sales_user` (
`idx` int NOT NULL AUTO_INCREMENT,
`user_id` int NULL DEFAULT NULL COMMENT '用户号',
`saus_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`saus_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`saus_openid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信openid',
`saus_unionid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '微信unionid',
`saus_nickname` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '昵称',
`saus_avatar` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '头像',
`saus_sex` tinyint(1) NULL DEFAULT NULL COMMENT '性别',
`saus_province` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '',
`saus_city` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市',
`saus_firsttime` datetime NOT NULL COMMENT '第一次登登录时间',
`saus_lasttime` datetime NOT NULL COMMENT '最后一次登录时间',
`saus_salesman` tinyint(1) NULL DEFAULT 0 COMMENT '0:普通用户 1:个人代理',
`saus_salesid` int NULL DEFAULT NULL COMMENT '个人代理id',
`saus_level` int NULL DEFAULT 0,
`saus_parentid` int NULL DEFAULT NULL COMMENT '上级个人代理id',
`saus_salestype` tinyint(1) NULL DEFAULT 1,
`saus_roomcard` int NULL DEFAULT 0 COMMENT '房卡数量',
`saus_bean` decimal(18, 4) NULL DEFAULT 0.0000 COMMENT '金币数',
`saus_saletime` datetime NULL DEFAULT NULL COMMENT '成为个人代理时间',
`saus_tel` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`saus_wechat` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`saus_invitecode` int NULL DEFAULT NULL,
`saus_power` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`saus_pushrate1` int NULL DEFAULT 33,
`saus_pushrate2` int NULL DEFAULT 8,
`saus_pushmoney1` decimal(10, 2) NULL DEFAULT 0.00,
`saus_pushmoney2` decimal(10, 2) NULL DEFAULT 0.00,
`saus_status` int NULL DEFAULT 0 COMMENT '0、正常1、封禁',
`password` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '用户密码',
`global_power` tinyint(1) NULL DEFAULT 0 COMMENT '0、没有权限1、有封禁权限',
`club_precent` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '俱乐部抽成',
`is_send_star` tinyint(1) NULL DEFAULT 0 COMMENT '0、未赠送1、已赠送',
`currency_total` int UNSIGNED NULL DEFAULT 0 COMMENT '总计分成游戏币',
`currency_withdraw` int UNSIGNED NULL DEFAULT 0 COMMENT '可提现游戏币',
`currency_freeze` int UNSIGNED NULL DEFAULT 0 COMMENT '被冻结的游戏币',
`saus_realname` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '真实姓名',
`saus_alipay` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '支付宝账户',
`saus_kaihu_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '开户人姓名',
`saus_kaihu_bank` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '开户银行',
`saus_kaihu_zhihang` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '开户支行',
`saus_kaihu_count` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '银行账号',
`saus_commit_auth` int NULL DEFAULT 2 COMMENT '提现权限1、开启 2、关闭',
`statistic_type` int NULL DEFAULT 0 COMMENT '用户类型(-1不计入统计口径0统计为普通用户口径1统计为平台用户口径',
`player_id` int NULL DEFAULT NULL COMMENT '关联的玩家编号',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `uk_sales_user_id`(`idx` ASC) USING BTREE,
UNIQUE INDEX `uk_sales_user_unionid`(`saus_agentid` ASC, `saus_channelid` ASC, `saus_unionid` ASC) USING BTREE,
UNIQUE INDEX `uk_sales_user_salesid`(`saus_agentid` ASC, `saus_channelid` ASC, `saus_salesid` ASC) USING BTREE,
UNIQUE INDEX `uk_sales_user_playerid`(`saus_agentid` ASC, `saus_channelid` ASC, `player_id` ASC) USING BTREE,
UNIQUE INDEX `uk_sales_user_openid`(`saus_agentid` ASC, `saus_channelid` ASC, `saus_openid` ASC) USING BTREE,
UNIQUE INDEX `uk_sales_user_userid`(`user_id` ASC) USING BTREE,
INDEX `nk_sales_user_salesid`(`saus_agentid` ASC, `saus_channelid` ASC, `saus_salesid` ASC, `saus_openid` ASC, `saus_unionid` ASC, `saus_status` ASC, `password` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 25297 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '公众号用户表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for trans_star_record
-- ----------------------------
DROP TABLE IF EXISTS `trans_star_record`;
CREATE TABLE `trans_star_record` (
`id` int NOT NULL AUTO_INCREMENT,
`agent_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '代理商id',
`channel_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '渠道id',
`union_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信id',
`open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`send_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送者id',
`get_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '获得者id',
`type` tinyint(1) NULL DEFAULT 0 COMMENT '0、转让星星',
`amount` int NULL DEFAULT 0 COMMENT '数量',
`op_time` datetime NULL DEFAULT NULL COMMENT '操作时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `pk_trans_star_record`(`id` ASC) USING BTREE,
INDEX `nk_trans_star_record_sales_to`(`agent_id` ASC, `channel_id` ASC, `get_id` ASC) USING BTREE,
INDEX `nk_trans_star_record_sales_from`(`agent_id` ASC, `channel_id` ASC, `send_id` ASC) USING BTREE,
INDEX `nk_trans_star_record_agent`(`agent_id` ASC, `channel_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 696 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Procedure structure for cp_SynchronizeSettle
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_SynchronizeSettle`;
delimiter ;;
CREATE PROCEDURE `cp_SynchronizeSettle`()
SQL SECURITY INVOKER
begin
declare nErrorCode integer default 0;
declare continue handler for sqlexception set nErrorCode = 1;
start transaction;
-- 同步战绩数据
insert into
ct_grade_temp
(
agent_id,
channel_id,
game_id,
player_id,
room_code,
room_type,
owner_id,
room_card,
owner_card,
create_time,
makewar_time,
over_time,
short_number,
deduct_type,
deduct_card,
aset_count,
room_mode,
out_id
)
select
plgr_agentid,
null,
plgr_gameid,
plgr_playerid,
plgr_roomcode,
plgr_roomtype,
plgr_ownerid,
plgr_roomcard,
plgr_ownercard,
plgr_createtime,
plgr_makewartime,
plgr_overtime,
plgr_shortcode,
plgr_deducttype,
plgr_deductcard,
plgr_asetcount,
plgr_roommode,
idx
from
game_db_temp.player_grade
where
idx not in (select out_id from ct_grade_temp);
-- 同步并计算分成数据
insert into
ct_user_commission
(
agent_id,
channel_id,
game_id,
room_id,
player_id,
user_id,
parent_user_id,
room_code,
short_number,
used_card,
owner_id,
room_type,
room_mode,
commission_type,
grade,
source_mode,
target_mode,
target_id,
mode,
type,
commission_total,
commission_system,
commission_user,
commission_parent_user,
commission_user_rate,
commission_parent_user_rate,
create_time,
is_robot,
out_id
)
select
agent_id,
channel_id,
game_id,
room_id,
player_id,
user_id,
parent_user_id,
room_code,
short_number,
used_card,
owner_id,
room_type,
room_mode,
commission_type,
grade,
source_mode,
target_mode,
target_id,
mode,
type,
ifnull(commission_total, 0) commission_total,
ifnull(commission_total, 0) - floor(ifnull(commission_total, 0) * ifnull(user_rate, 0)) - floor(ifnull(commission_total, 0) * ifnull(parent_user_rate, 0)) commission_system,
floor(ifnull(commission_total, 0) * ifnull(user_rate, 0)) commission_user,
floor(ifnull(commission_total, 0) * ifnull(parent_user_rate, 0)) commission_parent_user,
ifnull(user_rate, 0) commission_user_rate,
ifnull(parent_user_rate, 0) commission_parent_user_rate,
create_time,
is_robot,
out_id
from
(
select
a.agent_id,
a.channel_id,
a.game_id,
a.room_id,
a.player_id,
a.user_id,
a.parent_user_id,
a.room_code,
a.short_number,
a.used_card,
a.owner_id,
a.room_type,
a.room_mode,
a.commission_type,
a.grade,
a.source_mode,
a.target_mode,
a.target_id,
a.mode,
a.type,
a.commission_total,
case ifnull(target_mode, 0)
when 0 then
case
when (0 = a.user_id) or (0 != a.user_is_admin) then 0
else case ifnull(c.is_custom, 0)
when 0 then b.user_commission_rate
else c.commission_rate
end
end
+
case
when ((0 != a.user_id) and (0 = a.user_is_admin)) and ((0 = a.parent_user_id) or (0 != a.parent_user_is_admin)) then case ifnull(c.is_custom, 0)
when 0 then b.parent_user_commission_rate
else c.parent_commission_rate
end
else 0
end
else 0
end user_rate,
case ifnull(target_mode, 0)
when 0 then
case
when (0 = a.parent_user_id) or (0 != a.parent_user_is_admin) then 0
else case ifnull(c.is_custom, 0)
when 0 then b.parent_user_commission_rate
else c.parent_commission_rate
end
end
else 0
end parent_user_rate,
a.user_is_admin,
a.parent_user_is_admin,
a.create_time,
a.is_robot,
a.out_id
from
(
select
a.goac_agentid agent_id,
b.play_channelid channel_id,
a.goac_gameid game_id,
a.goac_id room_id,
a.goac_playerid player_id,
ifnull(b.play_invitecode, 0) user_id,
ifnull(c.global_power, 0) user_is_admin,
ifnull(c.saus_parentid, 0) parent_user_id,
ifnull(d.global_power, 0) parent_user_is_admin,
a.goac_roomcode room_code,
a.goac_shortcode short_number,
a.goac_roomcard used_card,
a.goac_ownerid owner_id,
null room_type,
a.goac_roommode room_mode,
case a.goac_roommode
when 0 then '001'
when 1 then '002'
else '001'
end commission_type,
a.goac_grade grade,
a.goac_rebatefrom source_mode,
a.goac_rebateto target_mode,
a.goac_toplayerid target_id,
a.goac_rebatemode mode,
a.goac_datatype type,
a.goac_rebatevalue commission_total,
a.goac_time create_time,
a.goac_isrobot is_robot,
a.idx out_id
from
game_db_temp.gold_account a left join
player b on a.goac_agentid = b.play_agentid and a.goac_playerid = b.play_playerid left join
sales_user c on b.play_agentid = c.saus_agentid and b.play_channelid = c.saus_channelid and b.play_invitecode = c.saus_salesid left join
sales_user d on c.saus_agentid = d.saus_agentid and c.saus_channelid = d.saus_channelid and c.saus_parentid = d.saus_salesid
) a left join
ct_agent_commission b on a.agent_id = b.agent_id and a.channel_id = b.channel_id and a.commission_type = b.type_id left join
ct_agent_commission_user c on a.agent_id = c.agent_id and a.channel_id = c.channel_id and b.type_id = c.type_id and a.user_id = c.user_id
) t
where
t.out_id not in (select out_id from ct_user_commission);
-- 转移指定了接收代理编号的抽水金币数
update
sales_user a,
(
select
a.agent_id,
a.channel_id,
b.saus_salesid sales_id,
sum(a.commission_total) total
from
ct_user_commission a inner join
ct_sales_player b on a.agent_id = b.agent_id and a.channel_id = b.channel_id and a.target_id = b.play_playerid
where
ifnull(a.target_mode, 0) = 3 and a.is_settle = 0
group by
a.agent_id,
a.channel_id,
b.saus_salesid
) b
set
a.saus_bean = a.saus_bean + b.total
where
a.saus_agentid = b.agent_id and
a.saus_channelid = b.channel_id and
a.saus_salesid = b.sales_id;
-- 增加玩家绑定的代理的总计抽水金币数
update
sales_user a,
(
select
agent_id, channel_id, user_id, sum(ifnull(commission_user, 0)) commission_user
from
ct_user_commission
where
is_settle = 0
group by
agent_id, channel_id, user_id
) b
set
a.currency_total = ifnull(a.currency_total, 0) + b.commission_user
where
a.saus_agentid = b.agent_id and
a.saus_channelid = b.channel_id and
a.saus_salesid = b.user_id;
-- 增加玩家绑定的代理的上级代理的总计抽水金币数
update
sales_user a,
(
select
agent_id, channel_id, parent_user_id user_id, sum(ifnull(commission_parent_user, 0)) commission_user
from
ct_user_commission
where
is_settle = 0
group by
agent_id, channel_id, parent_user_id
) b
set
a.currency_total = ifnull(a.currency_total, 0) + b.commission_user
where
a.saus_agentid = b.agent_id and
a.saus_channelid = b.channel_id and
a.saus_salesid = b.user_id;
-- 计算可提现金币数
update
sales_user a,
(
select
agent_id, channel_id, user_id
from
ct_user_commission
where
is_settle = 0
union all
select
agent_id, channel_id, parent_user_id
from
ct_user_commission
) b
set
a.currency_withdraw = ifnull(a.currency_total, 0) - ifnull(a.currency_freeze, 0)
where
a.saus_agentid = b.agent_id and
a.saus_channelid = b.channel_id and
a.saus_salesid = b.user_id;
-- 变更状态
update
ct_user_commission
set
is_settle = 1
where
ifnull(is_settle, 0) = 0;
-- 更新表(player)
update
player a,
game_db_temp.player b
set
a.play_nickname = b.play_nickname,
a.play_bean = b.play_bean,
a.play_roomcard = b.play_roomcard
where
a.play_agentid = b.play_agentid and
a.play_channelid = b.play_channelid and
a.play_playerid = b.play_playerid;
-- 重建索引(ct_grade_temp)
alter table ct_grade_temp
drop index pk_grade_temp,
drop index uk_grade_temp,
drop index nk_grade_temp_player_id,
drop index nk_grade_temp_create_time,
drop index nk_grade_temp_group_data,
add unique index pk_grade_temp (id) using hash,
add unique index uk_grade_temp (out_id) using hash,
add index nk_grade_temp_player_id (agent_id,channel_id,game_id,player_id) using btree,
add index nk_grade_temp_create_time (agent_id,channel_id,game_id,create_time,short_number) using btree,
add index nk_grade_temp_group_data (agent_id,channel_id,player_id,create_time,short_number) using btree;
-- 重建索引(ct_user_commission)
alter table ct_user_commission
drop index pk_user_commission,
drop index uk_user_commission_out_id,
drop index nk_user_commission,
add unique index pk_user_commission (id) using hash,
add unique index uk_user_commission_out_id (out_id) using hash,
add index nk_user_commission (agent_id,channel_id,game_id,player_id,user_id) using btree;
-- 重建索引(sales_user)
alter table sales_user
drop index uk_sales_user_openid,
drop index uk_sales_user_unionid,
drop index nk_sales_user_salesid,
add unique index uk_sales_user_openid (saus_agentid,saus_channelid,saus_openid) using hash,
add unique index uk_sales_user_unionid (saus_agentid,saus_channelid,saus_unionid) using hash,
add index nk_sales_user_salesid (saus_agentid,saus_channelid,saus_salesid,saus_openid,saus_unionid,saus_status,password) using btree;
-- 重建索引(player)
alter table player
drop index player_index1,
drop index player_index2,
drop index nk_player,
add unique index player_index1 (play_agentid,play_channelid,play_playerid) using hash,
add unique index player_index2 (play_agentid,play_channelid,play_unionid) using hash,
add index nk_player (play_agentid,play_playerid,play_channelid,play_openid,play_unionid,play_status) using btree;
-- 判断是否成功
if 1 = nErrorCode then
rollback;
select 'error';
else
commit;
select 'success';
end if;
end
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;