Files
youlegames/codes/games/sql/game/db/game_db.sql

6098 lines
252 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
Navicat Premium Dump SQL
Source Server : game_grade
Source Server Type : MySQL
Source Server Version : 80036 (8.0.36)
Source Host : rm-bp1749tfxu2rpq670lo.mysql.rds.aliyuncs.com:3306
Source Schema : game_db
Target Server Type : MySQL
Target Server Version : 80036 (8.0.36)
File Encoding : 65001
Date: 15/03/2026 19:27:51
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for agent
-- ----------------------------
DROP TABLE IF EXISTS `agent`;
CREATE TABLE `agent` (
`idx` int NOT NULL AUTO_INCREMENT,
`agen_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`agen_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商名称',
`agen_logo` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '代理商logo80*50',
`agen_parentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '上级代理商ID',
`agen_idxcode` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '代理商树状结构编码 3位一级',
`agen_state` tinyint(1) NULL DEFAULT 0 COMMENT '状态 0-启用 1-禁用',
`agen_sharingmode` tinyint(1) NULL DEFAULT 0 COMMENT '分成模式 0-普通模式 1-阶梯模式',
`agen_sharingrate` tinyint NULL DEFAULT 100 COMMENT '普通模式分成比例 正整数[0, 99]表示100元分成多少',
`agen_selftotal` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '自己的总流水',
`agen_selfsharing` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '自己的总分成',
`agen_childsharing` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '子代理的总分成',
`agen_maxplayerid` int NULL DEFAULT 100000 COMMENT '当前最大的玩家id',
`agen_maxsalesid` int NULL DEFAULT 200000 COMMENT '当前最大的个人代理id',
`agen_scrollmsg` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '滚动公告内容',
`agen_noticemsg` varchar(400) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '通知公告内容',
`agen_server` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '代理商服务器地址,不需要\"http\"前缀',
`agen_server_visitor` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`agen_port_tcp` int NULL DEFAULT NULL COMMENT '代理商服务器tcp端口',
`agen_port_http` int NULL DEFAULT NULL COMMENT '代理商服务器http端口',
`agen_downloadhtml` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT 'app下载页面',
`agen_freeroom` int NULL DEFAULT 300 COMMENT '默认同意解散房间的倒计时,秒',
`agen_salespower` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '22',
`agen_managecode` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '管理码,关闭、开启服务器、发送系统消息时验证使用',
`agen_user` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '登录运营后台的用户名',
`agen_pwd` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '登录运营后台的密码',
`agen_initroomacard` int NULL DEFAULT 8,
`agen_initbean` int NULL DEFAULT 0,
`agen_rebatemode1` tinyint(1) NULL DEFAULT 0,
`agen_rebateset1` int NULL DEFAULT 0,
`agen_rebatemode2` tinyint(1) NULL DEFAULT 0,
`agen_rebateset2` int NULL DEFAULT 0,
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `agent_index`(`agen_agentid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 133 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '代理商表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_channel
-- ----------------------------
DROP TABLE IF EXISTS `agent_channel`;
CREATE TABLE `agent_channel` (
`idx` int NOT NULL AUTO_INCREMENT,
`agch_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`agch_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商id',
`agch_channelname` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商名称',
`agch_WechatPublicNo` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商微信公众号',
`agch_wechat_ewm` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '' COMMENT '渠道商微信公众号二维码图片链接地址',
`agch_service_wechat` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商客服微信号',
`agch_service_qq` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商客服QQ号',
`agch_service_tel` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商客服电话',
`agch_sales_tel` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '' COMMENT '渠道商售卡电话',
`agch_sales_wechat` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '' COMMENT '渠道商售卡微信',
`agch_youle_appid` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '友乐开发平台appid',
`agch_youle_devkey` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '友乐开发平台devkey',
`agch_youle_busiid` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '友乐开发平台businessid',
`agch_youle_signkey` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '友乐开发平台signkey微信支付签名',
`agch_invitecode` int NULL DEFAULT NULL,
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `agent_channel_index`(`agch_agentid` ASC, `agch_channelid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 88 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '代理商的渠道表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_channel_city
-- ----------------------------
DROP TABLE IF EXISTS `agent_channel_city`;
CREATE TABLE `agent_channel_city` (
`idx` int NOT NULL AUTO_INCREMENT,
`agcc_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`agcc_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商id',
`agcc_citycode` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '城市编码',
`agcc_city` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市名称',
`agcc_WechatPublicNo` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市微信公众号',
`agcc_wechat_ewm` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市微信公众号二维码图片链接地址',
`agcc_service_wechat` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市客服微信号',
`agcc_service_qq` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市客服QQ号',
`agcc_service_tel` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '城市客服电话',
`agcc_invitecode` int NULL DEFAULT NULL COMMENT '默认的邀请码',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `agent_channel_city_index`(`agcc_agentid` ASC, `agcc_channelid` ASC, `agcc_citycode` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '城市配置表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_game
-- ----------------------------
DROP TABLE IF EXISTS `agent_game`;
CREATE TABLE `agent_game` (
`idx` int NOT NULL AUTO_INCREMENT,
`agga_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理id',
`agga_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`agga_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道id',
`agga_aliasname` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商的游戏别名',
`agga_image` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商的游戏图标',
`agga_state` tinyint(1) NULL DEFAULT 0 COMMENT '状态 0:发布中 1:测试中 2: 研发中',
`agga_gamememo` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '游戏简介',
`agga_gameversion` int NOT NULL COMMENT '游戏版本号',
`agga_android_ver` int NOT NULL COMMENT '安卓app实际版本号',
`agga_android_vername` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '安卓app版本号显示用',
`agga_android_down` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '安卓app下载地址',
`agga_android_size` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '安卓app大小',
`agga_android_time` datetime NULL DEFAULT NULL COMMENT '安卓app发布时间',
`agga_ios_ver` int NOT NULL COMMENT '苹果app实际版本号',
`agga_ios_vername` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '苹果app版本号显示用',
`agga_ios_down` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '苹果app下载地址',
`agga_ios_size` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '苹果app大小',
`agga_ios_time` datetime NULL DEFAULT NULL COMMENT '苹果app发布时间',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `agent_game_index`(`agga_agentid` ASC, `agga_gameid` ASC, `agga_channelid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '代理商游戏表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_game_online
-- ----------------------------
DROP TABLE IF EXISTS `agent_game_online`;
CREATE TABLE `agent_game_online` (
`idx` int NOT NULL AUTO_INCREMENT,
`aggo_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理id',
`aggo_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`aggo_datetime` datetime NOT NULL COMMENT '统计时间',
`aggo_onlineplayer` int NULL DEFAULT NULL COMMENT '在线玩家数量',
`aggo_onlineroom` int NULL DEFAULT NULL COMMENT '开房房间数量',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `agent_game_online`(`aggo_agentid` ASC, `aggo_gameid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 16479965 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '在线玩家数量统计表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_game_player
-- ----------------------------
DROP TABLE IF EXISTS `agent_game_player`;
CREATE TABLE `agent_game_player` (
`idx` int NOT NULL AUTO_INCREMENT,
`agpl_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`agpl_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`agpl_playerid` int NOT NULL COMMENT '玩家id',
`agpl_openid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信openid',
`agpl_lasttime` datetime NOT NULL COMMENT '最后登录时间',
`agpl_logindate` int NULL DEFAULT 1 COMMENT '累积登录天数',
`agpl_usecard` int NULL DEFAULT 0 COMMENT '累积使用房卡数量',
`agpl_firsttime` datetime NULL DEFAULT NULL,
`agpl_playset` int NULL DEFAULT 0,
`agpl_winlose` int NULL DEFAULT 0,
`agpl_playset_xx` int NULL DEFAULT 0,
`agpl_winlose_xx` int NULL DEFAULT 0,
`agpl_winlose_x2` int NULL DEFAULT 0,
`agpl_playset_b` int NULL DEFAULT 0,
`agpl_winlose_b` int NULL DEFAULT 0,
`agpl_playset_xx_b` int NULL DEFAULT 0,
`agpl_winlose_xx_b` int NULL DEFAULT 0,
`agpl_winlose_x2_b` int NULL DEFAULT 0,
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `agent_game_player_index1`(`agpl_agentid` ASC, `agpl_gameid` ASC, `agpl_playerid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 255273 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '游戏的玩家表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_game_player_short
-- ----------------------------
DROP TABLE IF EXISTS `agent_game_player_short`;
CREATE TABLE `agent_game_player_short` (
`idx` int NOT NULL AUTO_INCREMENT,
`agps_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`agps_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`agps_playerid` int NOT NULL COMMENT '玩家id',
`agps_shortcode` int NOT NULL COMMENT '房间短号',
`agps_playset` int NULL DEFAULT 0 COMMENT '累积游戏局数(大局)',
`agps_winlose` int NULL DEFAULT 0 COMMENT '累积输赢',
`agps_playset_xx` int NULL DEFAULT 0 COMMENT '累积游戏局数(大局)',
`agps_winlose_xx` int NULL DEFAULT 0 COMMENT '累积输赢',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `agent_game_player_short_index1`(`agps_agentid` ASC, `agps_gameid` ASC, `agps_playerid` ASC, `agps_shortcode` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家短号输赢表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_game_pond
-- ----------------------------
DROP TABLE IF EXISTS `agent_game_pond`;
CREATE TABLE `agent_game_pond` (
`idx` int NOT NULL AUTO_INCREMENT,
`aggp_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理id',
`aggp_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`aggp_pondid` int NOT NULL COMMENT '池子id',
`aggp_value` int NULL DEFAULT 0 COMMENT '累计输赢',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `agent_game_pond_index`(`aggp_agentid` ASC, `aggp_gameid` ASC, `aggp_pondid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 66 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '系统累计输赢池子表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_game_room
-- ----------------------------
DROP TABLE IF EXISTS `agent_game_room`;
CREATE TABLE `agent_game_room` (
`idx` int NOT NULL AUTO_INCREMENT,
`aggr_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理id',
`aggr_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`aggr_minroomcode` int NOT NULL COMMENT '最小房间号 >=',
`aggr_maxroomcode` int NOT NULL COMMENT '最大房间号 <=',
`aggr_server` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '房间服务器地址,不需要\"http\"前缀',
`aggr_port_tcp` int NULL DEFAULT NULL COMMENT '房间服务器tcp端口',
`aggr_port_http` int NULL DEFAULT NULL COMMENT '房间服务器http端口',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `agent_game_room`(`aggr_agentid` ASC, `aggr_gameid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '房间服务器表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for agent_game_version
-- ----------------------------
DROP TABLE IF EXISTS `agent_game_version`;
CREATE TABLE `agent_game_version` (
`idx` int NOT NULL AUTO_INCREMENT,
`aggv_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理id',
`aggv_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`aggv_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道id',
`aggv_version` int NOT NULL COMMENT 'app实际版本号',
`aggv_type` int NOT NULL COMMENT '升级类型 0-整包升级(zip格式) 1-单个文件升级',
`aggv_download` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '文件下载地址',
`aggv_file` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '带文件名的存放路径升级类型为0时此字段无意义',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `agent_game_version`(`aggv_agentid` ASC, `aggv_gameid` ASC, `aggv_channelid` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '游戏版本表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for ct_user_process_log
-- ----------------------------
DROP TABLE IF EXISTS `ct_user_process_log`;
CREATE TABLE `ct_user_process_log` (
`idx` int NOT NULL AUTO_INCREMENT,
`uspl_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`uspl_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商id',
`uspl_playerid` int NOT NULL COMMENT '玩家id',
`uspl_unionid` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '玩家unionid',
`uspl_opt` tinyint NOT NULL COMMENT '操作类型 1:新增玩家 2:绑定邀请码',
`uspl_optdata` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '操作数据 1:玩家微信信息json 2:邀请码',
`uspl_opttime` datetime NULL DEFAULT NULL COMMENT '生成的时间',
`uspl_state` tinyint(1) NULL DEFAULT 0 COMMENT '代理后台处理状态 0:未处理 1:已处理',
`uspl_statetime` datetime NULL DEFAULT NULL COMMENT '代理后台处理时间',
PRIMARY KEY (`idx`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 168473 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '游戏的操作日志表-代理后台2.0接口表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for error
-- ----------------------------
DROP TABLE IF EXISTS `error`;
CREATE TABLE `error` (
`idx` int NOT NULL AUTO_INCREMENT,
`erro_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`erro_playerid` int NOT NULL COMMENT '玩家id',
`erro_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`erro_msg` varchar(10000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '错误信息',
`erro_packet` varchar(10000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '收到的包',
`erro_time` datetime NULL DEFAULT NULL COMMENT '时间',
PRIMARY KEY (`idx`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 38845 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '错误日志表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for game
-- ----------------------------
DROP TABLE IF EXISTS `game`;
CREATE TABLE `game` (
`idx` int NOT NULL AUTO_INCREMENT,
`game_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`game_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏名称',
`game_minroomcode` int NULL DEFAULT 100000 COMMENT '最小房号',
`game_maxroomcode` int NULL DEFAULT 999999 COMMENT '最大房号',
`game_seatcount` int NOT NULL COMMENT '房间内的座位数量',
`game_makewar` int NULL DEFAULT NULL COMMENT '达成开战条件的人数',
`game_modename` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '游戏服务器模块名称',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `game_index`(`game_gameid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '游戏表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for game_buybill
-- ----------------------------
DROP TABLE IF EXISTS `game_buybill`;
CREATE TABLE `game_buybill` (
`idx` int NOT NULL AUTO_INCREMENT,
`gabu_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`gabu_playerid` int NOT NULL COMMENT '玩家id',
`gabu_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '渠道商id',
`gabu_billcode` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '订单号',
`gabu_productid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '产品id',
`gabu_payid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '支付id',
`gabu_amount` int NOT NULL COMMENT '产品中的房卡数量',
`gabu_money` decimal(10, 2) NOT NULL COMMENT '产品中的所需金额',
`gabu_createtime` datetime NOT NULL COMMENT '下单时间',
`gabu_paystate` tinyint(1) NULL DEFAULT 0 COMMENT '支付状态 0-未支付 1-已支付',
`gabu_paymoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '实际支付金额',
`gabu_paytime` datetime NULL DEFAULT NULL COMMENT '支付时间',
`gabu_paytype` tinyint(1) NOT NULL COMMENT '支付方式 1-苹果 2-微信 3-支付宝',
`gabu_transid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '支付流水号',
`gabu_outtradeNo` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '商家订单号',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `game_buybill_index`(`gabu_agentid` ASC, `gabu_channelid` ASC, `gabu_billcode` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家购卡记录表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for game_product
-- ----------------------------
DROP TABLE IF EXISTS `game_product`;
CREATE TABLE `game_product` (
`idx` int NOT NULL AUTO_INCREMENT,
`gapr_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`gapr_productid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '产品id',
`gapr_payid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '支付id',
`gapr_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '产品名称',
`gapr_amount` int NOT NULL COMMENT '房卡数量',
`gapr_money` decimal(10, 2) NOT NULL COMMENT '所需金额',
`gapr_memo` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '描述',
`gapr_state` tinyint(1) NULL DEFAULT 0 COMMENT '状态 0-启用 1-禁用',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `game_product_index`(`gapr_agentid` ASC, `gapr_productid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 353 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 = 137785 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for player_copy1
-- ----------------------------
DROP TABLE IF EXISTS `player_copy1`;
CREATE TABLE `player_copy1` (
`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 = 137552 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 COMMENT '这局结束时自己剩余房卡',
`plgr_gameinfo1` varchar(10000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '一局游戏的完整数据 json格式',
`plgr_gameinfo2` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '一局游戏的完整数据 json格式',
`plgr_type` tinyint(1) NULL DEFAULT 0 COMMENT '类型 1-房主读取标识',
`plgr_memo1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备用1',
`plgr_memo2` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备用2',
`plgr_memo3` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备用3',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `player_grade_index`(`plgr_agentid` ASC, `plgr_playerid` ASC, `plgr_gameid` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家战绩表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for player_opinion
-- ----------------------------
DROP TABLE IF EXISTS `player_opinion`;
CREATE TABLE `player_opinion` (
`idx` int NOT NULL AUTO_INCREMENT,
`plop_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`plop_playerid` int NOT NULL COMMENT '玩家id',
`plop_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`plop_content` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '反馈意见',
`plop_time` datetime NULL DEFAULT NULL COMMENT '反馈时间',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `player_opinion_index`(`plop_agentid` ASC, `plop_playerid` ASC, `plop_gameid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9560 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家反馈意见表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for report_agent_day
-- ----------------------------
DROP TABLE IF EXISTS `report_agent_day`;
CREATE TABLE `report_agent_day` (
`idx` int NOT NULL AUTO_INCREMENT,
`read_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`read_day` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '日期',
`read_newplayer` int NULL DEFAULT 0 COMMENT '新增玩家数量',
`read_newsalesman` int NULL DEFAULT 0 COMMENT '新增个人代理数量',
`read_playeraward` int NULL DEFAULT 0 COMMENT '玩家得到的奖励房卡数量',
`read_salesmoney` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '房卡销售金额',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `report_agent_day_index`(`read_agentid` ASC, `read_day` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9061 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '代理商的日报表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for report_game_day
-- ----------------------------
DROP TABLE IF EXISTS `report_game_day`;
CREATE TABLE `report_game_day` (
`idx` int NOT NULL AUTO_INCREMENT,
`regd_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`regd_gameid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '游戏id',
`regd_day` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '日期',
`regd_newplayer` int NULL DEFAULT 0 COMMENT '新增玩家数量',
`regd_useroomcard` int NULL DEFAULT 0 COMMENT '消耗房卡数量',
`regd_asetcount` int NULL DEFAULT 0 COMMENT '玩家一共玩了多少游戏局每人一大局算1',
`regd_maxplayer` int NULL DEFAULT 0 COMMENT '最大在线玩家数量',
`regd_maxplayertime` datetime NULL DEFAULT NULL COMMENT '最大在线玩家数量出现的时间',
`regd_maxroom` int NULL DEFAULT 0 COMMENT '最大开房数量',
`regd_maxroomtime` datetime NULL DEFAULT NULL COMMENT '最大开房数量出现的时间',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `report_game_day_index`(`regd_agentid` ASC, `regd_gameid` ASC, `regd_day` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 43210 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '游戏的日报表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_ask_bill
-- ----------------------------
DROP TABLE IF EXISTS `sales_ask_bill`;
CREATE TABLE `sales_ask_bill` (
`idx` int NOT NULL AUTO_INCREMENT,
`saab_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`saab_type` tinyint(1) NOT NULL COMMENT '索取类型 0-玩家索取房卡 1-个人代理索取房卡',
`saab_askid` int NOT NULL COMMENT '发起者id玩家id或个人代理id',
`saab_asknickname` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '发起者昵称',
`saab_askavatar` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '发起者头像',
`saab_salesid` int NOT NULL COMMENT '受理者id个人代理id',
`saab_amount` int NOT NULL COMMENT '索要房卡数量',
`saab_state` tinyint(1) NOT NULL COMMENT '状态 0-等待发卡 1-已确认发卡 2-发起者已取消 3-受理者已驳回',
`saab_asktime` datetime NOT NULL COMMENT '发起索取的时间',
`saab_dealtime` datetime NULL DEFAULT NULL COMMENT '确认发卡或取消或驳回的时间',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `sales_ask_bill_index`(`saab_agentid` ASC, `saab_type` ASC, `saab_askid` ASC, `saab_salesid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10659 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '索要房卡记录表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_award
-- ----------------------------
DROP TABLE IF EXISTS `sales_award`;
CREATE TABLE `sales_award` (
`idx` int NOT NULL AUTO_INCREMENT,
`saaw_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`saaw_salesid` int NOT NULL COMMENT '个人代理id',
`saaw_childid` int NOT NULL COMMENT '子个人代理id',
`saaw_type` tinyint(1) NOT NULL COMMENT '奖励类型 0-发展子代理 1-子代理充值',
`saaw_buybill` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '子个人代理购卡订单号',
`saaw_award` int NOT NULL COMMENT '个人代理的奖励房卡数量',
`saaw_state` tinyint(1) NULL DEFAULT 0 COMMENT '奖励领取状态 0-未领取 1-已领取',
`saaw_createtime` datetime NULL DEFAULT NULL COMMENT '奖励的生成时间',
`saaw_gettime` datetime NULL DEFAULT NULL COMMENT '奖励的领取时间',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `sales_award_index`(`saaw_agentid` ASC, `saaw_salesid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 343 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '子代理充值奖励表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_buybill
-- ----------------------------
DROP TABLE IF EXISTS `sales_buybill`;
CREATE TABLE `sales_buybill` (
`idx` int NOT NULL AUTO_INCREMENT,
`sabu_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`sabu_openid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信openid',
`sabu_channelid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`sabu_billcode` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '订单号',
`sabu_productid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '产品id',
`sabu_amount` int NOT NULL COMMENT '产品中的房卡数量',
`sabu_money` decimal(10, 2) NOT NULL COMMENT '产品中的所需金额',
`sabu_createtime` datetime NOT NULL COMMENT '下单时间',
`sabu_paystate` tinyint(1) NULL DEFAULT 0 COMMENT '支付状态 0-未支付 1-已支付',
`sabu_paymoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '实际支付金额',
`sabu_paytime` datetime NULL DEFAULT NULL COMMENT '支付时间',
`sabu_billtype` tinyint(1) NOT NULL COMMENT '订单类型 0-个人玩家购卡 1-个人代理购卡',
`sabu_playerid` int NULL DEFAULT NULL COMMENT '充值者id',
`sabu_playername` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '充值者昵称',
`sabu_transid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '微信支付流水号',
`sabu_outtradeNo` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '微信支付商家订单号',
`sabu_appid` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`sabu_devkey` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`sabu_business_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL,
`sabu_signkey` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '微信支付签名',
`sabu_pushrate1` int NULL DEFAULT NULL,
`sabu_pushmoney1` decimal(10, 2) NULL DEFAULT NULL,
`sabu_pushrate2` int NULL DEFAULT NULL,
`sabu_pushmoney2` decimal(10, 2) NULL DEFAULT NULL,
`sabu_pushstate` tinyint(1) NULL DEFAULT 0,
`sabu_pushsalesid1` int NULL DEFAULT NULL,
`sabu_pushsalesid2` int NULL DEFAULT NULL,
PRIMARY KEY (`idx`) USING BTREE,
INDEX `sales_buybill_index2`(`sabu_agentid` ASC, `sabu_billcode` ASC) USING BTREE,
INDEX `sales_buybill_index1`(`sabu_agentid` ASC, `sabu_openid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4511 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '用户购卡记录表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_notice
-- ----------------------------
DROP TABLE IF EXISTS `sales_notice`;
CREATE TABLE `sales_notice` (
`idx` int NOT NULL AUTO_INCREMENT,
`sano_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`sano_noticeid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '公告id',
`sano_title` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '标题',
`sano_time` datetime NOT NULL COMMENT '发布时间',
`sano_begintime` datetime NULL DEFAULT NULL COMMENT '开始显示时间',
`sano_endtime` datetime NULL DEFAULT NULL COMMENT '结束显示时间',
`sano_content` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '内容',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `sales_notice_index`(`sano_agentid` ASC, `sano_noticeid` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '个人代理公告' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_product
-- ----------------------------
DROP TABLE IF EXISTS `sales_product`;
CREATE TABLE `sales_product` (
`idx` int NOT NULL AUTO_INCREMENT,
`sapr_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`sapr_productid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '产品id',
`sapr_type` tinyint(1) NOT NULL COMMENT '产品类型 0-针对个人玩家的产品 1-针对个人代理的产品',
`sapr_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '产品名称',
`sapr_amount` int NOT NULL COMMENT '房卡数量',
`sapr_money` decimal(10, 2) NOT NULL COMMENT '所需金额',
`sapr_memo` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '描述',
`sapr_state` tinyint(1) NULL DEFAULT 0 COMMENT '状态 0-启用 1-禁用',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `sales_product_index`(`sapr_agentid` ASC, `sapr_productid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 323 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '房卡产品表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_sellbill
-- ----------------------------
DROP TABLE IF EXISTS `sales_sellbill`;
CREATE TABLE `sales_sellbill` (
`idx` int NOT NULL AUTO_INCREMENT,
`sase_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`sase_openid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信openid',
`sase_playerid` int NOT NULL COMMENT '玩家id',
`sase_amount` int NOT NULL COMMENT '售卡数量',
`sase_selltime` datetime NOT NULL COMMENT '售卡时间',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `sales_sellbill_index`(`sase_agentid` ASC, `sase_openid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 59239 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '个人代理售卡记录表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sales_sellbill_bean
-- ----------------------------
DROP TABLE IF EXISTS `sales_sellbill_bean`;
CREATE TABLE `sales_sellbill_bean` (
`idx` int NOT NULL AUTO_INCREMENT,
`ssbe_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`ssbe_openid` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '微信openid',
`ssbe_playerid` int NOT NULL COMMENT '玩家id',
`ssbe_amount` int NOT NULL COMMENT '充值数量',
`ssbe_selltime` datetime NOT NULL COMMENT '充值时间',
PRIMARY KEY (`idx`) USING BTREE,
INDEX `sales_sellbill_bean_index`(`ssbe_agentid` ASC, `ssbe_openid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 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',
`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 `sales_transferbill_index`(`satr_agentid` ASC, `satr_openid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3986 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,
`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` int NULL DEFAULT 0,
`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 '用户密码',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `salesman_index1`(`saus_agentid` ASC, `saus_openid` ASC) USING BTREE,
UNIQUE INDEX `salesman_index2`(`saus_agentid` ASC, `saus_unionid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 55084 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '公众号用户表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for task
-- ----------------------------
DROP TABLE IF EXISTS `task`;
CREATE TABLE `task` (
`idx` int NOT NULL AUTO_INCREMENT,
`task_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`task_taskid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '任务id',
`task_type` tinyint(1) NOT NULL COMMENT '类型 0-针对玩家的每日任务 1-针对玩家的限时任务 2-针对玩家的不限时不限量任务(奖励=tapl_finish*task_award) 3-针对玩家的不限时不限量任务(奖励=tapl_finish)',
`task_title` varchar(40) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '标题',
`task_memo` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '描述',
`task_total` int NOT NULL COMMENT '任务量',
`task_award` int NOT NULL COMMENT '完成任务的奖励房卡数量',
`task_begintime` datetime NULL DEFAULT NULL COMMENT '限时任务的开始时间',
`task_endtime` datetime NULL DEFAULT NULL COMMENT '限时任务的截止时间',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `task_index`(`task_agentid` ASC, `task_taskid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 294 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '任务表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for task_player
-- ----------------------------
DROP TABLE IF EXISTS `task_player`;
CREATE TABLE `task_player` (
`idx` int NOT NULL AUTO_INCREMENT,
`tapl_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '代理商id',
`tapl_playerid` int NOT NULL COMMENT '玩家id',
`tapl_taskid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '任务id',
`tapl_finish` int NULL DEFAULT 0 COMMENT '任务完成量',
`tapl_state` tinyint(1) NULL DEFAULT 0 COMMENT '任务状态 0-待完成 1-已完成 2-奖励已领取',
`tapl_createtime` datetime NOT NULL COMMENT '任务领取时间',
`tapl_finishtime` datetime NULL DEFAULT NULL COMMENT '任务完成时间',
`tapl_awardtime` datetime NULL DEFAULT NULL COMMENT '奖励领取时间',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `task_player_index`(`tapl_agentid` ASC, `tapl_playerid` ASC, `tapl_taskid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2218964 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '玩家任务完成表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for test
-- ----------------------------
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`player_id` int NULL DEFAULT NULL
) ENGINE = InnoDB AUTO_INCREMENT = 1464 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for test2
-- ----------------------------
DROP TABLE IF EXISTS `test2`;
CREATE TABLE `test2` (
`player_id` int NULL DEFAULT NULL
) ENGINE = InnoDB AUTO_INCREMENT = 5556 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for topup_card
-- ----------------------------
DROP TABLE IF EXISTS `topup_card`;
CREATE TABLE `topup_card` (
`idx` int NOT NULL AUTO_INCREMENT,
`toca_cardno` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '卡号 32位随机字符 + 1位卡类型 + 充值数量',
`toca_state` tinyint(1) NULL DEFAULT 0 COMMENT '0-未使用 1-已使用',
`toca_usetime` datetime NULL DEFAULT NULL COMMENT '使用时间',
`toca_agentid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '使用的代理id',
`toca_playerid` int NULL DEFAULT NULL COMMENT '使用的玩家id',
PRIMARY KEY (`idx`) USING BTREE,
UNIQUE INDEX `topup_card_index`(`toca_cardno` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 184 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '充值卡表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Procedure structure for cp_agent_login
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_login`;
delimiter ;;
CREATE PROCEDURE `cp_agent_login`(IN `user` varchar(100) charset utf8 collate utf8_general_ci ,IN `pwd` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '运营商登录'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentid varchar(32); -- 代理商id
declare agentname varchar(100); -- 代理商名称
declare paymenttotal decimal(10,2); -- 收益总流水
declare sharingrate int(11); -- 分成比例
declare profittotal decimal(10,2); -- 收益总金额
declare playercount int(11); -- 玩家总数
declare newplayer int(11); -- 当月新增玩家数量
declare salecount int(11); -- 个人代理总数
declare newsale int(11); -- 当月新增个人代理数量
set result = 0;
-- 总流水、分成比例、总收益
select agen_agentid, agen_name, agen_selftotal, agen_sharingrate, cast(agen_selftotal * agen_sharingrate / 100 as decimal(10,2))
into agentid, agentname, paymenttotal, sharingrate, profittotal
from agent
where agen_user = user and agen_pwd = pwd;
if isnull(agentid) then
set result = 1;
set error = '账号或密码错误';
select result, error;
leave label_cp;
end if;
-- 玩家总人数统计
select count(1) into playercount
from player
where play_agentid = agentid;
-- 当月新增玩家人数
select count(1) into newplayer
from player
where play_agentid = agentid
and play_regtime >= date_add(curdate(), interval - day(curdate()) + 1 day);
-- 统计个人代理总数
select count(1) into salecount
from sales_user
where saus_agentid = agentid
and saus_salesman = 1;
-- 统计当月新增个人代理数量
select count(1) into newsale
from sales_user
where saus_agentid = agentid
and saus_salesman = 1
and saus_saletime >= date_add(curdate(), interval - day(curdate()) + 1 day);
select result, error, agentid, agentname, paymenttotal, sharingrate, profittotal, playercount, newplayer, salecount, newsale;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_agent_player_game
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_player_game`;
delimiter ;;
CREATE PROCEDURE `cp_agent_player_game`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '按游戏统计玩家数量和房卡消耗数量'
begin
select agpl_gameid as gameid, game_name as gamename, count(1) as playercount, sum(agpl_usecard) as useroomcard
from agent_game_player
inner join game on game_gameid = agpl_gameid
where agpl_agentid = agentid
group by gameid, gamename;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_agent_player_max
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_player_max`;
delimiter ;;
CREATE PROCEDURE `cp_agent_player_max`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '按月度统计同时在线玩家数量峰值和房间峰值'
begin
-- 最近12个月按月度统计同时在线玩家数量峰值和房间峰值
select date_format(aggo_datetime, "%Y-%m") as month, max(aggo_onlineplayer) as maxplayer, max(aggo_onlineroom) as maxroom
from agent_game_online
where aggo_agentid = agentid
group by month
order by month desc limit 12;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_agent_player_month
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_player_month`;
delimiter ;;
CREATE PROCEDURE `cp_agent_player_month`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '按月度统计新增玩家数量'
begin
-- 最近12个月按月度统计新增玩家数量
select date_format(play_regtime, "%Y-%m") as month, count(1) as newplayer
from player
where play_agentid = agentid
group by month
order by month desc limit 12;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_agent_profit_month
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_profit_month`;
delimiter ;;
CREATE PROCEDURE `cp_agent_profit_month`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '按月度统计流水'
begin
-- 最近12个月按月度统计收益
select date_format(sabu_paytime, "%Y-%m" ) as month, sum(sabu_paymoney) as money
from sales_buybill
where sabu_agentid = agentid
and sabu_paystate = 1
group by month
order by month desc limit 12;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_agent_profit_product
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_profit_product`;
delimiter ;;
CREATE PROCEDURE `cp_agent_profit_product`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '按产品统计流水'
begin
select sales_product.idx as idx, sabu_productid as productid,
concat(sapr_money, '', sapr_amount, '') as productname,
sum(sabu_paymoney) as money, count(1) as times
from sales_buybill
inner join sales_product on sapr_agentid = sabu_agentid
and sapr_productid = sabu_productid
where sabu_agentid = agentid
and sabu_paystate = 1
group by idx, productid, productname
order by idx;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_agent_sale_month
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_sale_month`;
delimiter ;;
CREATE PROCEDURE `cp_agent_sale_month`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '按月度统计新增个人代理数量'
begin
-- 最近12个月按月度统计新增个人代理数量
select date_format(saus_saletime, "%Y-%m") as month, count(1) as newsale
from sales_user
where saus_agentid = agentid
and saus_salesman = 1
and saus_saletime is not null
group by month
order by month desc limit 12;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_agent_updatepwd
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_agent_updatepwd`;
delimiter ;;
CREATE PROCEDURE `cp_agent_updatepwd`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `oldpwd` varchar(100) charset utf8 collate utf8_general_ci ,IN `newpwd` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '修改运营商登录密码'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
if not exists(select 1 from agent where agen_agentid = agentid and agen_pwd = oldpwd) then
set result = 1;
set error = '原密码不正确';
select result, error;
leave label_cp;
end if;
update agent set agen_pwd = newpwd where agen_agentid = agentid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_bind_player_wechat
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_bind_player_wechat`;
delimiter ;;
CREATE PROCEDURE `cp_bind_player_wechat`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,
IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,
IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,
IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,
IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,
IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,
IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,
IN `sex` int(11) ,
IN `province` varchar(100) charset utf8 collate utf8_general_ci ,
IN `city` varchar(100) charset utf8 collate utf8_general_ci ,
IN `marketid` varchar(100) charset utf8 collate utf8_general_ci ,
IN `telphone` varchar(20) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '绑定手机号'
begin
declare playerid int(8);
select play_playerid into playerid from player where play_agentid = agentid and play_unionid = unionid limit 1;
if not isnull(playerid) then
update player set play_tel = '' where play_agentid = agentid and play_tel = telphone and play_playerid <> playerid;
update player set play_nickname = nickname, play_avatar = avatar, play_tel = telphone
where play_agentid = agentid and play_playerid = playerid;
select 1 as result, '更新成功' as msg;
else
if exists(select 1 from player where play_agentid = agentid and play_tel = telphone) then
select -1 as result, '手机号已存在' as msg;
else
call cp_game_player_login_1121(agentid, channelid, gameid, openid, unionid, nickname, avatar, sex, province, city, marketid, telphone);
end if;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_1_agent
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_1_agent`;
delimiter ;;
CREATE PROCEDURE `cp_check_1_agent`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `agentname` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '检验代理商是否存在'
begin
set result = 0;
set error = '';
set agentname = null;
select agen_name into agentname from agent where agen_agentid = agentid limit 1;
if isnull(agentname) then
set result = 1;
set error = '运营商不存在';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_2_player
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_2_player`;
delimiter ;;
CREATE PROCEDURE `cp_check_2_player`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `playername` varchar(100) charset utf8 collate utf8_general_ci ,OUT `roomcard` int(11))
SQL SECURITY INVOKER
COMMENT '检验代理商是否存在'
begin
set result = 0;
set error = '';
set playername = null;
set roomcard = 0;
select play_nickname, play_roomcard into playername, roomcard
from player where play_agentid = agentid and play_playerid = playerid limit 1;
if isnull(playername) then
set result = 2;
set error = '玩家不存在';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_3_game
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_3_game`;
delimiter ;;
CREATE PROCEDURE `cp_check_3_game`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `gamename` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '检验代理商是否存在'
begin
set result = 0;
set error = '';
set gamename = null;
select game_name into gamename from game where game_agentid = agentid and game_gameid = gameid limit 1;
if isnull(gamename) then
set result = 3;
set error = '游戏不存在';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_4_salesuser
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_4_salesuser`;
delimiter ;;
CREATE PROCEDURE `cp_check_4_salesuser`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `username` varchar(100) charset utf8 collate utf8_general_ci ,OUT `salesman` tinyint(1))
SQL SECURITY INVOKER
COMMENT '微信公众号用户是否存在'
begin
set result = 0;
set error = '';
set username = null;
set salesman = null;
select saus_nickname, saus_salesman into username, salesman
from sales_user where saus_agentid = agentid and saus_openid = openid limit 1;
if isnull(username) then
set result = 4;
set error = '用户不存在';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_5_product
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_5_product`;
delimiter ;;
CREATE PROCEDURE `cp_check_5_product`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `productid` varchar(32) charset utf8 collate utf8_general_ci ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `productname` varchar(100) charset utf8 collate utf8_general_ci ,OUT `productamount` int(11) ,OUT `productmoney` decimal(10,2))
SQL SECURITY INVOKER
COMMENT '检验代理商是否存在'
begin
set result = 0;
set error = '';
set productname = null;
set productamount = 0;
set productmoney = 0;
select sapr_name, sapr_amount, sapr_money into productname, productamount, productmoney
from sales_product where sapr_agentid = agentid and sapr_productid = productid limit 1;
if isnull(productname) then
set result = 5;
set error = '房卡产品不存在';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_6_buybill
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_6_buybill`;
delimiter ;;
CREATE PROCEDURE `cp_check_6_buybill`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `billcode` varchar(50) charset utf8 collate utf8_general_ci ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `billtype` tinyint(1) ,OUT `playerid` int(8) ,OUT `playername` varchar(100) charset utf8 collate utf8_general_ci ,OUT `amount` int(11) ,OUT `money` decimal(10,2) ,OUT `paystate` tinyint(1))
SQL SECURITY INVOKER
COMMENT '检验购卡订单是否存在'
begin
set result = 0;
set error = '';
set billtype = null;
set playerid = null;
set playername = null;
set money = null;
set amount = null;
select sabu_billtype, sabu_playerid, sabu_playername, sabu_amount, sabu_money, sabu_paystate
into billtype, playerid, playername, amount, money, paystate
from sales_buybill where sabu_agentid = agentid and sabu_billcode = billcode limit 1;
if isnull(billtype) then
set result = 6;
set error = '订单不存在';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_7_salesman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_7_salesman`;
delimiter ;;
CREATE PROCEDURE `cp_check_7_salesman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `roomcard` int(11))
SQL SECURITY INVOKER
COMMENT '微信公众号用户是否存在'
begin
set result = 0;
set error = '';
set roomcard = null;
select saus_roomcard into roomcard
from sales_user
where saus_agentid = agentid and saus_openid = openid and saus_salesman = 1 limit 1;
if isnull(roomcard) then
set result = 7;
set error = '不是个人代理';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_8_task
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_8_task`;
delimiter ;;
CREATE PROCEDURE `cp_check_8_task`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `taskid` varchar(100) charset utf8 collate utf8_general_ci ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `tasktype` tinyint(1) ,OUT `total` int(8) ,OUT `award` int(8))
SQL SECURITY INVOKER
COMMENT '任务是否存在和有效'
begin
set result = 0;
set error = '';
set award = null;
select task_type, task_total, task_award into tasktype, total, award
from task
where task_agentid = agentid
and task_taskid = taskid
and ((task_type = 0)
or ((task_type = 1) and
(task_begintime is null or now() >= task_begintime) and
(task_endtime is null or now() <= task_endtime)
)
or (task_type = 2)
or (task_type = 3)
);
if isnull(award) then
set result = 8;
set error = '任务不存在或已过期';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_check_9_salesman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_check_9_salesman`;
delimiter ;;
CREATE PROCEDURE `cp_check_9_salesman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `salesid` int(8) ,OUT `result` tinyint(1) ,OUT `error` varchar(100) charset utf8 collate utf8_general_ci ,OUT `salesname` varchar(100) charset utf8 collate utf8_general_ci ,OUT `roomcard` int(11))
SQL SECURITY INVOKER
COMMENT '个人代理是否存在'
begin
set result = 0;
set error = '';
set salesname = null;
set roomcard = null;
select saus_nickname, saus_roomcard into salesname, roomcard
from sales_user
where saus_agentid = agentid and saus_salesid = salesid and saus_salesman = 1 limit 1;
if isnull(roomcard) then
set result = 9;
set error = '代理id不存在';
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_add_bean
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_add_bean`;
delimiter ;;
CREATE PROCEDURE `cp_game_add_bean`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `amount` int(8))
SQL SECURITY INVOKER
COMMENT '加豆豆(第三方接口)'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare bean int(8);
set result = 0;
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = 'agentid不存在';
select result, error;
leave label_cp;
end if;
set bean = null;
select play_bean into bean from player
where play_agentid = agentid and play_playerid = playerid limit 1;
if isnull(bean) then
set result = 1;
set error = 'player不存在';
select result, error;
leave label_cp;
end if;
update player set play_bean = play_bean + amount
where play_agentid = agentid
and play_playerid = playerid limit 1;
select result, agentid, playerid, amount, bean + amount as bean;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_binding_invitecode
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_binding_invitecode`;
delimiter ;;
CREATE PROCEDURE `cp_game_binding_invitecode`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `invitecode` int(8) ,IN `invitecodetype` tinyint(1))
SQL SECURITY INVOKER
COMMENT '玩家登录游戏记录地理位置'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare playerchannelid varchar(32); -- 渠道商id
declare playerunionid varchar(50); -- 玩家的unionid
declare playername varchar(100); -- 玩家昵称
declare playerroomcard int(11); -- 玩家房卡数量
declare salesid int(8); -- 邀请码对应的代理id
declare _invitecode int(8); -- 已经绑定的邀请码
declare _len int(8); -- 要绑定的邀请码的长度
declare _type tinyint(1); -- 要绑定的邀请码的类型
declare _unionid varchar(50);
declare _code int(8); -- 要绑定的个人代理id
declare _id int(8); -- 要绑定的玩家id
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验playerid
call cp_check_2_player(agentid, playerid, result, error, playername, playerroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 确定要绑定的邀请码是个人代理id还是玩家id
set _len = length(invitecode);
if _len < 8 then
set _type = invitecodetype;
else
set _type = 0;
end if;
-- 检验邀请码
if _type = 0 then
-- 绑定的邀请码是个人代理id
select saus_unionid into _unionid
from sales_user
where saus_agentid = agentid and saus_salesid = invitecode and saus_salesman = 1 limit 1;
if isnull(_unionid) then
set result = 10;
set error = '邀请码不存在';
select result, error;
leave label_cp;
end if;
set _code = invitecode;
select play_playerid into _id
from player
where play_agentid = agentid
and play_unionid = _unionid limit 1;
else
-- 绑定的邀请码是玩家id
select play_unionid into _unionid
from player
where play_agentid = agentid and play_playerid = invitecode limit 1;
if isnull(_unionid) then
set result = 10;
set error = '邀请码不存在';
select result, error;
leave label_cp;
end if;
set _id = invitecode;
select saus_salesid into _code
from sales_user
where saus_agentid = agentid
and saus_unionid = _unionid limit 1;
end if;
-- 检查是否已经绑定了邀请码
select play_invitecode into _invitecode
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
if isnull(_invitecode) then
update player set play_invitecode = _code, play_inviteid = _id
where play_agentid = agentid
and play_playerid = playerid limit 1;
select play_channelid, play_unionid into playerchannelid, playerunionid
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
insert into ct_user_process_log(uspl_agentid, uspl_channelid, uspl_playerid, uspl_unionid, uspl_opt, uspl_optdata, uspl_opttime)
values(agentid, playerchannelid, playerid, playerunionid, 2, _code, now());
-- 完成绑定邀请码任务
call cp_game_task_finish(agentid, playerid, 'UEFsfbv29YnlacKLo0mjomK48Bv82hGv', 1, 0);
set result = 0;
set error = '绑定邀请码成功';
else
set result = 21;
set error = '已经绑定过邀请码,不能再次绑定';
end if;
select result, error, _code, _id;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_change_bankstar
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_change_bankstar`;
delimiter ;;
CREATE PROCEDURE `cp_game_change_bankstar`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `bankpwd` varchar(10) charset utf8 collate utf8_general_ci ,IN `domode` tinyint(1) ,IN `amount` int(11))
SQL SECURITY INVOKER
COMMENT '存入或取出银行金币'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare _playerid int(8);
declare _playerbean int(11);
declare _playerbank int(11);
declare _playerpwd varchar(10);
set result = 0;
if amount < 0 then
set result = 1;
set error = '数量不能为负数';
select result, error;
leave label_cp;
end if;
-- 检验agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '运营商id不存在';
select result, error;
leave label_cp;
end if;
select play_playerid, play_bean, play_bank, play_bankpwd
into _playerid, _playerbean, _playerbank, _playerpwd
from player
where play_agentid = agentid
and play_playerid = playerid;
if isnull(_playerid) then
set result = 1;
set error = '玩家id不存在';
select result, error;
leave label_cp;
end if;
if bankpwd <> _playerpwd then
set result = 1;
set error = '密码不正确';
select result, error;
leave label_cp;
end if;
if domode = 0 then
if amount > _playerbean then
set result = 1;
set error = '数量不够';
select result, error;
leave label_cp;
else
update player set play_bean = ifnull(play_bean, 0) - amount,
play_bank = ifnull(play_bank, 0) + amount
where play_agentid = agentid and play_playerid = playerid limit 1;
end if;
else
if amount > _playerbank then
set result = 1;
set error = '数量不够';
select result, error;
leave label_cp;
else
update player set play_bean = ifnull(play_bean, 0) + amount,
play_bank = ifnull(play_bank, 0) - amount
where play_agentid = agentid and play_playerid = playerid limit 1;
end if;
end if;
-- 返回执行结果
select result, error, play_bean, play_bank
from player where play_agentid = agentid and play_playerid = playerid limit 1;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_deduct_roomcard
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_deduct_roomcard`;
delimiter ;;
CREATE PROCEDURE `cp_game_deduct_roomcard`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `deduct` int(8) ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '第一小局结算后扣除房主开房所需的房卡'
begin
declare error int default 0;
-- 如果出现异常也继续执行
declare continue handler for sqlexception set error = 1;
-- 启动事务
start transaction;
if deduct > 0 then
update player set play_roomcard = play_roomcard - deduct,
play_usecard = play_usecard + deduct
where play_agentid = agentid
and play_playerid = playerid limit 1;
update agent_game_player set agpl_usecard = agpl_usecard + deduct
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
-- 按日期统计房卡消耗数量
call cp_report_game_day(agentid, gameid, now(), 1, deduct, null);
end if;
-- 运行没有异常,提交事务
if error = 1 then
rollback;
else
commit;
end if;
select playerid, play_roomcard as roomcard, deduct
from player
where play_agentid = agentid and play_playerid = playerid limit 1;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_del_timeout_task
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_del_timeout_task`;
delimiter ;;
CREATE PROCEDURE `cp_game_del_timeout_task`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '删除过期任务'
begin
if isnull(agentid) then
delete task_player
from task_player, task
where task_agentid = tapl_agentid
and task_taskid = tapl_taskid
-- 每日任务
and ((task_type = 0 and datediff(tapl_createtime, curdate()) <> 0)
-- 限时任务
or (task_type = 1 and ((task_begintime is not null and tapl_createtime < task_begintime)
or (task_endtime is not null and tapl_createtime > task_endtime)
)
)
);
else
-- 删除所有人的过期任务
delete task_player
from task_player, task
where tapl_agentid = agentid
and task_agentid = agentid
and task_taskid = tapl_taskid
-- 每日任务
and ((task_type = 0 and datediff(tapl_createtime, curdate()) <> 0)
-- 限时任务
or (task_type = 1 and ((task_begintime is not null and tapl_createtime < task_begintime)
or (task_endtime is not null and tapl_createtime > task_endtime)
)
)
);
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_get_player_invitecode
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_get_player_invitecode`;
delimiter ;;
CREATE PROCEDURE `cp_game_get_player_invitecode`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取玩家绑定的邀请码'
begin
declare invitecode int(8);
select play_invitecode into invitecode
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
if isnull(invitecode) then
call cp_game_get_player_invitecode_insales(agentid, playerid, unionid, invitecode);
end if;
select invitecode;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_get_player_invitecode_insales
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_get_player_invitecode_insales`;
delimiter ;;
CREATE PROCEDURE `cp_game_get_player_invitecode_insales`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,OUT `invitecode` int(8))
SQL SECURITY INVOKER
COMMENT '获取玩家绑定的邀请码'
begin
-- 看是否自动绑定过邀请码
if isnull(invitecode) then
select saus_invitecode into invitecode
from sales_user
where saus_agentid = agentid
and saus_unionid = unionid;
if not isnull(invitecode) then
update player set play_invitecode = invitecode
where play_agentid = agentid
and play_playerid = playerid;
-- 完成绑定邀请码任务
call cp_game_task_finish(agentid, playerid, 'UEFsfbv29YnlacKLo0mjomK48Bv82hGv', 1, 0);
end if;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_get_player_taskstate
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_get_player_taskstate`;
delimiter ;;
CREATE PROCEDURE `cp_game_get_player_taskstate`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,OUT `taskstate` tinyint(1))
SQL SECURITY INVOKER
COMMENT '删除过期任务,获取玩家当天的任务状态'
begin
-- 获取玩家的任务状态
set taskstate = 0;
if exists(select 1 from task_player
where tapl_agentid = agentid
and tapl_playerid = playerid
and tapl_state = 1
) then
-- 有任务已完成可领取奖励
set taskstate = 2;
elseif exists(select 1 from task
where task_agentid = agentid
and ((task_type = 0)
or (task_type = 1 and
(task_begintime is null or now() >= task_begintime) and
(task_endtime is null or now() <= task_endtime)
)
)
and not exists(select 1 from task_player
where tapl_agentid = agentid
and tapl_playerid = playerid
and tapl_taskid = task_taskid)
) then
-- 有任务未完成
set taskstate = 1;
elseif exists(select 1 from task_player, task
where tapl_agentid = agentid
and tapl_playerid = playerid
and tapl_state = 0
and task_agentid = agentid
and task_taskid = tapl_taskid
and task_type in (0, 1)
) then
-- 有任务未完成
set taskstate = 1;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_grade_robot
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_grade_robot`;
delimiter ;;
CREATE PROCEDURE `cp_game_grade_robot`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `grade` int(11) ,IN `beanmult` int(11))
SQL SECURITY INVOKER
COMMENT '累计机器人的星星输赢'
begin
if exists(select 1 from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = 999999) then
update agent_game_player
set agpl_playset_xx = agpl_playset_xx + 1,
agpl_winlose_xx = agpl_winlose_xx + if(beanmult = 0, 0, grade div beanmult),
agpl_winlose_x2 = agpl_winlose_x2 + grade,
agpl_lasttime = now()
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = 999999 limit 1;
else
insert into agent_game_player(agpl_agentid, agpl_gameid, agpl_playerid, agpl_openid,
agpl_firsttime, agpl_lasttime, agpl_playset_xx, agpl_winlose_xx, agpl_winlose_x2)
values(agentid, gameid, 999999, 'robot', now(), now(), 1, grade, if(beanmult = 0, 0, grade div beanmult));
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_grade_save
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_grade_save`;
delimiter ;;
CREATE PROCEDURE `cp_game_grade_save`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerids` varchar(800) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `roomcode` int(8) ,IN `roomtype` varchar(200) charset utf8 collate utf8_general_ci ,IN `createtime` datetime ,IN `makewartime` datetime ,IN `overtime` datetime ,IN `gameinfo1` varchar(10000) charset utf8 collate utf8_general_ci ,IN `gameinfo2` mediumtext charset utf8 collate utf8_general_ci ,IN `ownerid` int(8) ,IN `grades` varchar(800) charset utf8 collate utf8_general_ci ,IN `roommode` tinyint(1) ,IN `beanmult` int(4) ,IN `shortcode` int(8) ,IN `isrobots` varchar(800) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '保存战绩'
begin
declare ary_playerid varchar(800);
declare ary_grade varchar(800);
declare ary_isrobot varchar(800);
declare pos_playerid int(10);
declare pos_grade int(10);
declare pos_isrobot int(10);
declare playerid varchar(8);
declare grade varchar(8);
declare isrobot varchar(8);
-- 如果出现异常自动退出并rollback
declare exit handler for sqlexception ROLLBACK;
-- 启动事务
start transaction;
set ary_playerid = playerids;
set ary_grade = grades;
set ary_isrobot = isrobots;
while ary_playerid <> '' do
set pos_playerid = instr(ary_playerid, ',');
set pos_grade = instr(ary_grade, ',');
set pos_isrobot = instr(ary_isrobot, ',');
if pos_playerid = 0 then
set playerid = ary_playerid;
set grade = ary_grade;
set isrobot = ary_isrobot;
set ary_playerid = '';
set ary_grade = '';
set ary_isrobot = '';
else
set playerid = left(ary_playerid, pos_playerid - 1);
set grade = left(ary_grade, pos_grade - 1);
set isrobot = left(ary_isrobot, pos_isrobot - 1);
set ary_playerid = right(ary_playerid, length(ary_playerid) - pos_playerid);
set ary_grade = right(ary_grade, length(ary_grade) - pos_grade);
set ary_isrobot = right(ary_isrobot, length(ary_isrobot) - pos_isrobot);
end if;
-- 累计游戏局数(大局)
if roommode = 0 then
-- 非星星场
if isrobot = '0' then
update agent_game_player
set agpl_playset = agpl_playset + 1,
agpl_winlose = agpl_winlose + grade
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
end if;
else
-- 星星场
if isrobot = '0' then
update agent_game_player
set agpl_playset_xx = agpl_playset_xx + 1,
agpl_winlose_xx = agpl_winlose_xx + (grade div beanmult),
agpl_winlose_x2 = agpl_winlose_x2 + grade
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
else
call cp_game_grade_robot(agentid, gameid, grade, beanmult);
end if;
end if;
-- 统计房主的邀请新人奖励
if ownerid <> playerid then
if exists(select 1 from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid
and agpl_playset = 1) then
call cp_game_task_finish(agentid, ownerid, 'ZVlpZweovbeQ68g8xdjcxaXHfbfIvvu7', 1, 0);
end if;
-- 累加积分玩一局积分加1
/*
update player set play_score = play_score + 1
where play_agentid = agentid
and play_playerid = playerid;
else
-- 累加积分开房积分加2
update player set play_score = play_score + 3
where play_agentid = agentid
and play_playerid = playerid;
*/
end if;
end while;
-- 按日期统计玩家一共玩了多少游戏局(大局)
call cp_report_game_day(agentid, gameid, now(), 2, 1, null);
-- 运行没有异常,提交事务
commit;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_login_location
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_login_location`;
delimiter ;;
CREATE PROCEDURE `cp_game_login_location`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `country` varchar(100) charset utf8 collate utf8_general_ci ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci ,IN `citycode` varchar(20) charset utf8 collate utf8_general_ci ,IN `district` varchar(100) charset utf8 collate utf8_general_ci ,IN `street` varchar(100) charset utf8 collate utf8_general_ci ,IN `address` varchar(200) charset utf8 collate utf8_general_ci ,IN `latitude` varchar(20) charset utf8 collate utf8_general_ci ,IN `longitude` varchar(20) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家登录游戏记录地理位置'
begin
declare _channelid varchar(32); -- 玩家所属的渠道id
declare _citycode varchar(20); -- 已记录的城市编号
declare _invitecode int(8); -- 已绑定的邀请码
declare city_wechatgzh varchar(100); -- 城市公众号
declare city_wechatewm varchar(100); -- 城市公众号二维码图片地址
declare city_wechatkfh varchar(50); -- 城市客服微信
declare city_qq varchar(50); -- 城市客服QQ
declare city_tel varchar(50); -- 城市客服电话
select play_channelid, play_a_citycode, play_invitecode
into _channelid, _citycode, _invitecode
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
if isnull(_citycode) then
-- 记录第一次登录时的城市
update player set play_a_country = country, play_a_province = province,
play_a_city = city, play_a_citycode = citycode,
play_a_district = district, play_a_street = street,
play_a_address = address
where play_agentid = agentid
and play_playerid = playerid limit 1;
-- 获取城市的联系方式
select agcc_WechatPublicNo, agcc_wechat_ewm, agcc_service_wechat, agcc_service_qq, agcc_service_tel
into city_wechatgzh, city_wechatewm, city_wechatkfh, city_qq, city_tel
from agent_channel_city
where agcc_agentid = agentid
and agcc_channelid = _channelid
and agcc_citycode = citycode;
end if;
if isnull(_invitecode) then
-- 自动绑定邀请码
select ifnull(agcc_invitecode, agch_invitecode)
into _invitecode
from agent_channel, agent_channel_city
where agch_agentid = agentid
and agch_channelid = _channelid
and agcc_agentid = agentid
and agcc_channelid = _channelid
and agcc_citycode = citycode;
if not isnull(_invitecode) then
update player set play_invitecode = _invitecode
where play_agentid = agentid
and play_playerid = playerid;
-- 完成绑定邀请码任务
call cp_game_task_finish(agentid, playerid, 'UEFsfbv29YnlacKLo0mjomK48Bv82hGv', 1, 0);
end if;
end if;
update player set play_longitude = longitude, play_latitude = latitude
where play_agentid = agentid
and play_playerid = playerid limit 1;
select city_wechatgzh as wechatgzh, city_wechatewm as wechatewm,
city_wechatkfh as wechatkfh, city_qq as qq, city_tel as tel,
_invitecode as invitecode;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_login_phoneinfo
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_login_phoneinfo`;
delimiter ;;
CREATE PROCEDURE `cp_game_login_phoneinfo`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `info` varchar(8000) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家登录游戏记录手机信息'
begin
update player set play_phoneinfo = info where play_agentid = agentid and play_playerid = playerid limit 1;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_pay_succ
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_pay_succ`;
delimiter ;;
CREATE PROCEDURE `cp_game_pay_succ`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `billcode` varchar(50) charset utf8 collate utf8_general_ci ,IN `productid` varchar(32) charset utf8 collate utf8_general_ci ,IN `payid` varchar(100) charset utf8 collate utf8_general_ci ,IN `amount` int(11) ,IN `money` decimal(10,2) ,IN `createtime` datetime ,IN `paymoney` decimal(10,2) ,IN `paytime` datetime ,IN `paytype` tinyint(1) ,IN `transid` varchar(100) charset utf8 collate utf8_general_ci ,IN `outtradeNo` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '游戏中支付成功'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare playername varchar(100); -- 玩家昵称
declare playerroomcard int(11); -- 玩家房卡数量
declare roomcard int(11); -- 购卡后房卡数量
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验playerid
call cp_check_2_player(agentid, playerid, result, error, playername, playerroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 获取渠道商id
if not exists (select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
select agch_channelid into channelid from agent_channel where agch_agentid = agentid order by idx limit 1;
end if;
-- 保存订单
insert into game_buybill(gabu_agentid, gabu_playerid, gabu_channelid,
gabu_billcode, gabu_productid, gabu_payid,
gabu_amount, gabu_money, gabu_createtime,
gabu_paystate, gabu_paymoney, gabu_paytime,
gabu_paytype, gabu_transid, gabu_outtradeNo)
values(agentid, playerid, channelid, billcode, productid, payid, amount, money,
createtime, 1, paymoney, paytime, paytype, transid, outtradeNo);
-- 统计总流水
update agent set agen_selftotal = agen_selftotal + paymoney where agen_agentid = agentid;
-- 按日期统计房卡销售金额
call cp_report_agent_day(agentid, 3, paymoney);
-- 修改玩家房卡数量
update player set play_roomcard = play_roomcard + amount
where play_agentid = agentid and play_playerid = playerid;
-- 返回玩家购卡后的房卡数量
select play_roomcard into roomcard from player
where play_agentid = agentid and play_playerid = playerid;
-- 返回执行结果
select result, error, playerid, playername, amount, roomcard;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_player_advanced
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_player_advanced`;
delimiter ;;
CREATE PROCEDURE `cp_game_player_advanced`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `advanced` tinyint(3) ,IN `shortcode` int(6) ,IN `desone` varchar(400) charset utf8 collate utf8_general_ci ,IN `destwo` varchar(400) charset utf8 collate utf8_general_ci ,IN `lowlimit` int(11) ,IN `notice` varchar(400) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '设置玩家的短号'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
-- 检验agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '运营商id不存在';
select result, error;
leave label_cp;
end if;
-- 检验playerid
if not exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) then
set result = 2;
set error = '玩家id不存在';
select result, error;
leave label_cp;
end if;
update player
set play_shortcode = null, play_advanced = 0, play_roomcodes = null,
play_desone = null, play_destwo = null,
play_limit = null, play_notice = null
where play_agentid = agentid
and play_shortcode = shortcode;
update player set play_advanced = advanced, play_shortcode = shortcode,
play_desone = desone, play_destwo = destwo,
play_limit = lowlimit, play_notice = notice
where play_agentid = agentid and play_playerid = playerid limit 1;
-- 返回执行结果
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_player_login
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_player_login`;
delimiter ;;
CREATE PROCEDURE `cp_game_player_login`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,IN `sex` int(11) ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci ,IN `marketid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家登录游戏'
begin
declare playerid int(8); -- 玩家id
declare roomcard int(11); -- 玩家房卡数量
declare bean int(11); -- 玩家元宝数量
declare playertype int(1); -- 玩家类型
declare score int(11); -- 积分
declare invitecode int(8); -- 绑定的邀请码
declare state tinyint(1); -- 封禁状态
declare advanced tinyint(3); -- 创建固定房间的权限
declare shortcode int(6); -- 房间短号
declare roomcodes varchar(4000);-- 固定房号
declare desone varchar(400);
declare destwo varchar(400);
declare whitelist varchar(8000);-- 短号白名单
declare lowlimit int(11); -- 短号房魅力值下限
declare notice varchar(400); -- 短号房公告
declare optdata varchar(2000);
declare nn_winlose int(11); -- 牛牛游戏得分
declare nn_winlose_xx int(11); -- 牛牛游戏得分(星星场)
declare nn_winlose_x2 int(11);
declare bankpower tinyint(1); -- 金币银行权限
declare bank int(11); -- 金币银行中的金币数量
declare bankpwd varchar(10);-- 金币银行密码
declare game_winlose int(11); -- 游戏得分
declare game_winlose_xx int(11); -- 游戏得分(星星场)
declare game_winlose_x2 int(11); -- 游戏星星输赢
declare psign varchar(400);
-- 如果出现异常自动退出并rollback
declare exit handler for sqlexception ROLLBACK;
-- 启动事务
start transaction;
-- 检查是否是新玩家
select play_playerid, play_roomcard, play_bean, play_type, play_score,
play_invitecode, play_state, play_advanced, play_shortcode,
play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,play_sign
into playerid, roomcard, bean, playertype, score, invitecode, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice,psign
from player
where play_agentid = agentid
and play_unionid = unionid limit 1;
if isnull(playerid) then
-- 新玩家
update agent set agen_maxplayerid = agen_maxplayerid + 1 where agen_agentid = agentid limit 1;
select agen_maxplayerid, agen_initroomacard, agen_initbean into playerid, roomcard, bean
from agent where agen_agentid = agentid limit 1;
-- 随机取一个不存在的玩家id作为新的玩家id(200000-899999)
set playerid = ceil(rand() * 700000) + 200000;
while exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) do
set playerid = ceil(rand() * 700000) + 200000;
end while;
insert into player(play_agentid, play_playerid, play_channelid, play_openid,
play_unionid, play_nickname, play_avatar, play_sex,
play_province, play_city, play_regtime, play_lasttime,
play_roomcard, play_bean, play_marketid)
values(agentid, playerid, channelid, openid, unionid, nickname, avatar, sex,
province, city, now(), now(), roomcard, bean, marketid);
set optdata = CONCAT('{"openid":"', openid, '", "unionid":"', unionid, '", "nickname":"', ifnull(nickname, ''), '","avatar":"', ifnull(avatar, ''), '","sex":', ifnull(sex, 0), ',"province":"', ifnull(province, ''), '","city":"', ifnull(city, ''), '"}');
insert into ct_user_process_log(uspl_agentid, uspl_channelid, uspl_playerid, uspl_unionid, uspl_opt, uspl_optdata, uspl_opttime)
values(agentid, channelid, playerid, unionid, 1, optdata, now());
select play_roomcard, play_bean, play_type, play_score, play_invitecode, play_state,
play_advanced, play_shortcode, play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,play_sign
into roomcard, bean, playertype, score, invitecode, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice,psign
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
-- 按日期统计新增玩家数量
call cp_report_agent_day(agentid, 0, 1);
else
-- 老玩家
update player set play_nickname = nickname, play_avatar = avatar, play_openid = openid,
play_sex = sex, play_province = province, play_city = city,
play_logindate = play_logindate + if(datediff(now(), play_lasttime) = 0, 0, 1),
play_lasttime = now()
where play_agentid = agentid
and play_playerid = playerid limit 1;
end if;
-- 统计玩家的最后登录时间和累积登录天数
if not exists(select 1 from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid) then
insert into agent_game_player(agpl_agentid, agpl_gameid, agpl_playerid, agpl_openid, agpl_firsttime, agpl_lasttime)
values(agentid, gameid, playerid, openid, now(), now());
-- 按日期统计新增玩家数量
call cp_report_game_day(agentid, gameid, now(), 0, 1, null);
else
update agent_game_player set agpl_logindate = agpl_logindate + if(datediff(now(), agpl_lasttime) = 0, 0, 1),
agpl_lasttime = now()
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
end if;
-- 看是否自动绑定过邀请码
if isnull(invitecode) then
call cp_game_get_player_invitecode_insales(agentid, playerid, unionid, invitecode);
end if;
-- 运行没有异常,提交事务
commit;
-- 返回执行结果
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into nn_winlose, nn_winlose_xx, nn_winlose_x2
from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_playerid = playerid limit 1;
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into game_winlose, game_winlose_xx, game_winlose_x2
from agent_game_player
where agpl_agentid = agentid
-- and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
select playerid, roomcard, bean, playertype, score, invitecode, state,
advanced, shortcode, roomcodes, whitelist,
nn_winlose, nn_winlose_xx, nn_winlose_x2, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice ,gameid,game_winlose, game_winlose_xx, game_winlose_x2,psign;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_player_login_1121
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_player_login_1121`;
delimiter ;;
CREATE PROCEDURE `cp_game_player_login_1121`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,IN `sex` int(11) ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci ,IN `marketid` varchar(100) charset utf8 collate utf8_general_ci ,IN `telphone` varchar(20) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家登录游戏'
proc: begin
declare playerid int(8); -- 玩家id
declare roomcard int(11); -- 玩家房卡数量
declare bean int(11); -- 玩家元宝数量
declare playertype int(1); -- 玩家类型
declare score int(11); -- 积分
declare invitecode int(8); -- 绑定的邀请码
declare inviteid int(8); -- 绑定的邀请码
declare state tinyint(1); -- 封禁状态
declare advanced tinyint(3); -- 创建固定房间的权限
declare shortcode int(6); -- 房间短号
declare roomcodes varchar(4000);-- 固定房号
declare desone varchar(400);
declare destwo varchar(400);
declare whitelist varchar(8000);-- 短号白名单
declare lowlimit int(11); -- 短号房魅力值下限
declare notice varchar(400); -- 短号房公告
declare optdata varchar(2000);
declare nn_winlose int(11); -- 牛牛游戏得分
declare nn_winlose_xx int(11); -- 牛牛游戏得分(星星场)
declare nn_winlose_x2 int(11);
declare bankpower tinyint(1); -- 金币银行权限
declare bank int(11); -- 金币银行中的金币数量
declare bankpwd varchar(10);-- 金币银行密码
declare game_winlose int(11); -- 游戏得分
declare game_winlose_xx int(11); -- 游戏得分(星星场)
declare game_winlose_x2 int(11); -- 游戏星星输赢
declare psign varchar(400);
declare tel varchar(20); -- 绑定的手机号
-- 手机号登录时返回的额外信息
declare ret_nickname varchar(100);
declare ret_avatar varchar(200);
declare ret_openid varchar(100);
declare ret_sex int(11);
declare ret_province varchar(100);
declare ret_city varchar(100);
declare ret_logindate int(11);
declare ret_unionid varchar(100);
-- 如果出现异常自动退出并rollback
declare exit handler for sqlexception ROLLBACK;
-- 启动事务
start transaction;
-- 检查是否是新玩家
if isnull(telphone) then
-- 微信授权或设备码登录
select play_playerid, play_roomcard, play_bean, play_type, play_score,
play_invitecode, play_inviteid, play_state, play_advanced, play_shortcode,
play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,
play_sign, play_tel
into playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_unionid = unionid limit 1;
else
-- 手机号登录
select play_playerid, play_roomcard, play_bean, play_type, play_score,
play_invitecode, play_inviteid, play_state, play_advanced, play_shortcode,
play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,
play_sign, play_tel,
play_nickname, play_avatar, play_openid, play_sex, play_province, play_city, play_logindate, play_unionid
into playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel,
ret_nickname, ret_avatar, ret_openid, ret_sex, ret_province, ret_city, ret_logindate, ret_unionid
from player
where play_agentid = agentid
and play_tel = telphone limit 1;
end if;
if isnull(playerid) then
-- 如果传入了手机号,但没找到记录,说明手机号未注册,不允许自动创建新号
if not isnull(telphone) then
rollback;
select -1 as result, '手机号未注册' as msg;
leave proc;
end if;
-- 新玩家
update agent set agen_maxplayerid = agen_maxplayerid + 1 where agen_agentid = agentid limit 1;
select agen_maxplayerid, agen_initroomacard, agen_initbean into playerid, roomcard, bean
from agent where agen_agentid = agentid limit 1;
-- 随机取一个不存在的玩家id作为新的玩家id(200000-899999)
set playerid = ceil(rand() * 700000) + 200000;
while exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) do
set playerid = ceil(rand() * 700000) + 200000;
end while;
insert into player(play_agentid, play_playerid, play_channelid, play_openid,
play_unionid, play_nickname, play_avatar, play_sex,
play_province, play_city, play_regtime, play_lasttime,
play_roomcard, play_bean, play_marketid, play_tel)
values(agentid, playerid, channelid, openid, unionid, nickname, avatar, sex,
province, city, now(), now(), roomcard, bean, marketid, telphone);
set optdata = CONCAT('{"openid":"', openid, '", "unionid":"', unionid, '", "nickname":"', ifnull(nickname, ''), '","avatar":"', ifnull(avatar, ''), '","sex":', ifnull(sex, 0), ',"province":"', ifnull(province, ''), '","city":"', ifnull(city, ''), '"}');
insert into ct_user_process_log(uspl_agentid, uspl_channelid, uspl_playerid, uspl_unionid, uspl_opt, uspl_optdata, uspl_opttime)
values(agentid, channelid, playerid, unionid, 1, optdata, now());
select play_roomcard, play_bean, play_type, play_score, play_invitecode, play_inviteid, play_state,
play_advanced, play_shortcode, play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice, play_sign, play_tel
into roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
-- 按日期统计新增玩家数量
call cp_report_agent_day(agentid, 0, 1);
else
-- 老玩家
if not isnull(telphone) then
-- 手机号登录,只更新登录时间,不修改用户信息
update player set play_logindate = play_logindate + if(datediff(now(), play_lasttime) = 0, 0, 1),
play_lasttime = now()
where play_agentid = agentid
and play_playerid = playerid limit 1;
else
-- 微信/UnionID登录更新用户信息
update player set play_nickname = nickname, play_avatar = avatar, play_openid = openid,
play_sex = sex, play_province = province, play_city = city,
play_logindate = play_logindate + if(datediff(now(), play_lasttime) = 0, 0, 1),
play_lasttime = now(), play_unionid = unionid
where play_agentid = agentid
and play_playerid = playerid limit 1;
end if;
end if;
-- 统计玩家的最后登录时间和累积登录天数
if not exists(select 1 from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid) then
insert into agent_game_player(agpl_agentid, agpl_gameid, agpl_playerid, agpl_openid, agpl_firsttime, agpl_lasttime)
values(agentid, gameid, playerid, openid, now(), now());
-- 按日期统计新增玩家数量
call cp_report_game_day(agentid, gameid, now(), 0, 1, null);
else
update agent_game_player set agpl_logindate = agpl_logindate + if(datediff(now(), agpl_lasttime) = 0, 0, 1),
agpl_lasttime = now()
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
end if;
-- 看是否自动绑定过邀请码
if isnull(invitecode) then
call cp_game_get_player_invitecode_insales(agentid, playerid, unionid, invitecode);
end if;
-- 运行没有异常,提交事务
commit;
-- 返回执行结果
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into nn_winlose, nn_winlose_xx, nn_winlose_x2
from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_playerid = playerid limit 1;
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into game_winlose, game_winlose_xx, game_winlose_x2
from agent_game_player
where agpl_agentid = agentid
-- and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
select playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist,
nn_winlose, nn_winlose_xx, nn_winlose_x2, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice ,gameid,game_winlose,
game_winlose_xx, game_winlose_x2, psign, tel,
ret_nickname, ret_avatar, ret_openid, ret_sex, ret_province, ret_city, ret_logindate, ret_unionid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_player_login_1121_bak
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_player_login_1121_bak`;
delimiter ;;
CREATE PROCEDURE `cp_game_player_login_1121_bak`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,IN `sex` int(11) ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci ,IN `marketid` varchar(100) charset utf8 collate utf8_general_ci ,IN `telphone` varchar(20) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家登录游戏'
begin
declare playerid int(8); -- 玩家id
declare roomcard int(11); -- 玩家房卡数量
declare bean int(11); -- 玩家元宝数量
declare playertype int(1); -- 玩家类型
declare score int(11); -- 积分
declare invitecode int(8); -- 绑定的邀请码
declare inviteid int(8); -- 绑定的邀请码
declare state tinyint(1); -- 封禁状态
declare advanced tinyint(3); -- 创建固定房间的权限
declare shortcode int(6); -- 房间短号
declare roomcodes varchar(4000);-- 固定房号
declare desone varchar(400);
declare destwo varchar(400);
declare whitelist varchar(8000);-- 短号白名单
declare lowlimit int(11); -- 短号房魅力值下限
declare notice varchar(400); -- 短号房公告
declare optdata varchar(2000);
declare nn_winlose int(11); -- 牛牛游戏得分
declare nn_winlose_xx int(11); -- 牛牛游戏得分(星星场)
declare nn_winlose_x2 int(11);
declare bankpower tinyint(1); -- 金币银行权限
declare bank int(11); -- 金币银行中的金币数量
declare bankpwd varchar(10);-- 金币银行密码
declare game_winlose int(11); -- 游戏得分
declare game_winlose_xx int(11); -- 游戏得分(星星场)
declare game_winlose_x2 int(11); -- 游戏星星输赢
declare psign varchar(400);
declare tel varchar(20); -- 绑定的手机号
-- 如果出现异常自动退出并rollback
declare exit handler for sqlexception ROLLBACK;
-- 启动事务
start transaction;
-- 检查是否是新玩家
if isnull(telphone) then
-- 微信授权或设备码登录
select play_playerid, play_roomcard, play_bean, play_type, play_score,
play_invitecode, play_inviteid, play_state, play_advanced, play_shortcode,
play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,
play_sign, play_tel
into playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_unionid = unionid limit 1;
else
-- 手机号登录
select play_playerid, play_roomcard, play_bean, play_type, play_score,
play_invitecode, play_inviteid, play_state, play_advanced, play_shortcode,
play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,
play_sign, play_tel
into playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_tel = telphone limit 1;
end if;
if isnull(playerid) then
-- 新玩家
update agent set agen_maxplayerid = agen_maxplayerid + 1 where agen_agentid = agentid limit 1;
select agen_maxplayerid, agen_initroomacard, agen_initbean into playerid, roomcard, bean
from agent where agen_agentid = agentid limit 1;
-- 随机取一个不存在的玩家id作为新的玩家id(200000-899999)
set playerid = ceil(rand() * 700000) + 200000;
while exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) do
set playerid = ceil(rand() * 700000) + 200000;
end while;
insert into player(play_agentid, play_playerid, play_channelid, play_openid,
play_unionid, play_nickname, play_avatar, play_sex,
play_province, play_city, play_regtime, play_lasttime,
play_roomcard, play_bean, play_marketid, play_tel)
values(agentid, playerid, channelid, openid, unionid, nickname, avatar, sex,
province, city, now(), now(), roomcard, bean, marketid, telphone);
set optdata = CONCAT('{"openid":"', openid, '", "unionid":"', unionid, '", "nickname":"', ifnull(nickname, ''), '","avatar":"', ifnull(avatar, ''), '","sex":', ifnull(sex, 0), ',"province":"', ifnull(province, ''), '","city":"', ifnull(city, ''), '"}');
insert into ct_user_process_log(uspl_agentid, uspl_channelid, uspl_playerid, uspl_unionid, uspl_opt, uspl_optdata, uspl_opttime)
values(agentid, channelid, playerid, unionid, 1, optdata, now());
select play_roomcard, play_bean, play_type, play_score, play_invitecode, play_inviteid, play_state,
play_advanced, play_shortcode, play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice, play_sign, play_tel
into roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
-- 按日期统计新增玩家数量
call cp_report_agent_day(agentid, 0, 1);
else
-- 老玩家
update player set play_nickname = nickname, play_avatar = avatar, play_openid = openid,
play_sex = sex, play_province = province, play_city = city,
play_logindate = play_logindate + if(datediff(now(), play_lasttime) = 0, 0, 1),
play_lasttime = now(), play_unionid = unionid
where play_agentid = agentid
and play_playerid = playerid limit 1;
end if;
-- 统计玩家的最后登录时间和累积登录天数
if not exists(select 1 from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid) then
insert into agent_game_player(agpl_agentid, agpl_gameid, agpl_playerid, agpl_openid, agpl_firsttime, agpl_lasttime)
values(agentid, gameid, playerid, openid, now(), now());
-- 按日期统计新增玩家数量
call cp_report_game_day(agentid, gameid, now(), 0, 1, null);
else
update agent_game_player set agpl_logindate = agpl_logindate + if(datediff(now(), agpl_lasttime) = 0, 0, 1),
agpl_lasttime = now()
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
end if;
-- 看是否自动绑定过邀请码
if isnull(invitecode) then
call cp_game_get_player_invitecode_insales(agentid, playerid, unionid, invitecode);
end if;
-- 运行没有异常,提交事务
commit;
-- 返回执行结果
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into nn_winlose, nn_winlose_xx, nn_winlose_x2
from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_playerid = playerid limit 1;
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into game_winlose, game_winlose_xx, game_winlose_x2
from agent_game_player
where agpl_agentid = agentid
-- and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
select playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist,
nn_winlose, nn_winlose_xx, nn_winlose_x2, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice ,gameid,game_winlose,
game_winlose_xx, game_winlose_x2, psign, tel;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_player_login_test
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_player_login_test`;
delimiter ;;
CREATE PROCEDURE `cp_game_player_login_test`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,IN `sex` int(11) ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci ,IN `marketid` varchar(100) charset utf8 collate utf8_general_ci ,IN `telphone` varchar(20) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家登录游戏'
begin
declare playerid int(8); -- 玩家id
declare roomcard int(11); -- 玩家房卡数量
declare bean int(11); -- 玩家元宝数量
declare playertype int(1); -- 玩家类型
declare score int(11); -- 积分
declare invitecode int(8); -- 绑定的邀请码
declare inviteid int(8); -- 绑定的邀请码
declare state tinyint(1); -- 封禁状态
declare advanced tinyint(3); -- 创建固定房间的权限
declare shortcode int(6); -- 房间短号
declare roomcodes varchar(4000);-- 固定房号
declare desone varchar(400);
declare destwo varchar(400);
declare whitelist varchar(8000);-- 短号白名单
declare lowlimit int(11); -- 短号房魅力值下限
declare notice varchar(400); -- 短号房公告
declare optdata varchar(2000);
declare nn_winlose int(11); -- 牛牛游戏得分
declare nn_winlose_xx int(11); -- 牛牛游戏得分(星星场)
declare nn_winlose_x2 int(11);
declare bankpower tinyint(1); -- 金币银行权限
declare bank int(11); -- 金币银行中的金币数量
declare bankpwd varchar(10);-- 金币银行密码
declare game_winlose int(11); -- 游戏得分
declare game_winlose_xx int(11); -- 游戏得分(星星场)
declare game_winlose_x2 int(11); -- 游戏星星输赢
declare psign varchar(400);
declare tel varchar(20); -- 绑定的手机号
-- 如果出现异常自动退出并rollback
declare exit handler for sqlexception ROLLBACK;
-- 启动事务
start transaction;
select 1, telphone;
-- 检查是否是新玩家
if isnull(telphone) then
-- 微信授权或设备码登录
select play_playerid, play_roomcard, play_bean, play_type, play_score,
play_invitecode, play_inviteid, play_state, play_advanced, play_shortcode,
play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,
play_sign, play_tel
into playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_unionid = unionid limit 1;
select 2, playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel;
else
-- 手机号登录
select play_playerid, play_roomcard, play_bean, play_type, play_score,
play_invitecode, play_inviteid, play_state, play_advanced, play_shortcode,
play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice,
play_sign, play_tel
into playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_tel = telphone limit 1;
select 3, playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel;
end if;
if isnull(playerid) then
select 4;
-- 新玩家
update agent set agen_maxplayerid = agen_maxplayerid + 1 where agen_agentid = agentid limit 1;
select 5;
select agen_maxplayerid, agen_initroomacard, agen_initbean into playerid, roomcard, bean
from agent where agen_agentid = agentid limit 1;
select 6;
-- 随机取一个不存在的玩家id作为新的玩家id(200000-899999)
set playerid = ceil(rand() * 700000) + 200000;
while exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) do
set playerid = ceil(rand() * 700000) + 200000;
end while;
select 7, agentid, playerid, channelid, openid, unionid, nickname, avatar, sex,
province, city, roomcard, bean, marketid, telphone;
insert into player(play_agentid, play_playerid, play_channelid, play_openid,
play_unionid, play_nickname, play_avatar, play_sex,
play_province, play_city, play_regtime, play_lasttime,
play_roomcard, play_bean, play_marketid, play_tel)
values(agentid, playerid, channelid, openid, unionid, nickname, avatar, sex,
province, city, now(), now(), roomcard, bean, marketid, telphone);
select 8;
set optdata = CONCAT('{"openid":"', openid, '", "unionid":"', unionid, '", "nickname":"', ifnull(nickname, ''), '","avatar":"', ifnull(avatar, ''), '","sex":', ifnull(sex, 0), ',"province":"', ifnull(province, ''), '","city":"', ifnull(city, ''), '"}');
insert into ct_user_process_log(uspl_agentid, uspl_channelid, uspl_playerid, uspl_unionid, uspl_opt, uspl_optdata, uspl_opttime)
values(agentid, channelid, playerid, unionid, 1, optdata, now());
select 9;
select play_roomcard, play_bean, play_type, play_score, play_invitecode, play_inviteid, play_state,
play_advanced, play_shortcode, play_roomcodes, play_whitelist, play_desone, play_destwo,
play_bankpower, play_bank, play_bankpwd, play_limit, play_notice, play_sign, play_tel
into roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice, psign, tel
from player
where play_agentid = agentid
and play_playerid = playerid limit 1;
select 10;
-- 按日期统计新增玩家数量
call cp_report_agent_day(agentid, 0, 1);
select 11;
else
select 14;
-- 老玩家
update player set play_nickname = nickname, play_avatar = avatar, play_openid = openid,
play_sex = sex, play_province = province, play_city = city,
play_logindate = play_logindate + if(datediff(now(), play_lasttime) = 0, 0, 1),
play_lasttime = now(), play_unionid = unionid
where play_agentid = agentid
and play_playerid = playerid limit 1;
select 15;
end if;
-- 统计玩家的最后登录时间和累积登录天数
if not exists(select 1 from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid) then
insert into agent_game_player(agpl_agentid, agpl_gameid, agpl_playerid, agpl_openid, agpl_firsttime, agpl_lasttime)
values(agentid, gameid, playerid, openid, now(), now());
-- 按日期统计新增玩家数量
call cp_report_game_day(agentid, gameid, now(), 0, 1, null);
else
update agent_game_player set agpl_logindate = agpl_logindate + if(datediff(now(), agpl_lasttime) = 0, 0, 1),
agpl_lasttime = now()
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
end if;
-- 看是否自动绑定过邀请码
if isnull(invitecode) then
call cp_game_get_player_invitecode_insales(agentid, playerid, unionid, invitecode);
end if;
-- 运行没有异常,提交事务
commit;
-- 返回执行结果
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into nn_winlose, nn_winlose_xx, nn_winlose_x2
from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_playerid = playerid limit 1;
select ifnull(agpl_winlose, 0), ifnull(agpl_winlose_xx, 0), ifnull(agpl_winlose_x2, 0)
into game_winlose, game_winlose_xx, game_winlose_x2
from agent_game_player
where agpl_agentid = agentid
-- and agpl_gameid = '8x4l0rGjf026f60c48h0mbUAhK5vV16f'
and agpl_gameid = gameid
and agpl_playerid = playerid limit 1;
select playerid, roomcard, bean, playertype, score, invitecode, inviteid, state,
advanced, shortcode, roomcodes, whitelist,
nn_winlose, nn_winlose_xx, nn_winlose_x2, desone, destwo,
bankpower, bank, bankpwd, lowlimit, notice ,gameid,game_winlose,
game_winlose_xx, game_winlose_x2, psign, tel;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_player_whitelist
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_player_whitelist`;
delimiter ;;
CREATE PROCEDURE `cp_game_player_whitelist`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `whitelist` varchar(6000) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '设置短号白名单'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
-- 检验agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '运营商id不存在';
select result, error;
leave label_cp;
end if;
-- 检验playerid
if not exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) then
set result = 2;
set error = '玩家id不存在';
select result, error;
leave label_cp;
end if;
update player set play_whitelist = whitelist
where play_agentid = agentid and play_playerid = playerid limit 1;
-- 返回执行结果
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_sub_bean
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_sub_bean`;
delimiter ;;
CREATE PROCEDURE `cp_game_sub_bean`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `amount` int(8))
SQL SECURITY INVOKER
COMMENT '减豆豆(第三方接口)'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare bean int(8);
set result = 0;
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = 'agentid不存在';
select result, error;
leave label_cp;
end if;
set bean = null;
select play_bean into bean from player
where play_agentid = agentid and play_playerid = playerid limit 1;
if isnull(bean) then
set result = 1;
set error = 'player不存在';
select result, error;
leave label_cp;
end if;
if amount = 0 then
update player set play_bean = 0
where play_agentid = agentid
and play_playerid = playerid limit 1;
select result, agentid, playerid, bean as amount, 0 as bean;
else
if amount > bean then
set result = 1;
set error = '数量不够';
select result, error;
leave label_cp;
end if;
update player set play_bean = play_bean - amount
where play_agentid = agentid
and play_playerid = playerid limit 1;
select result, agentid, playerid, amount, bean - amount as bean;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_task_award
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_task_award`;
delimiter ;;
CREATE PROCEDURE `cp_game_task_award`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `taskid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家领取任务奖励'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare playername varchar(100); -- 玩家昵称
declare playerroomcard int(11); -- 玩家房卡数量
declare tasktype tinyint(1); -- 任务类型
declare tasktotal int(8); -- 任务的任务总量
declare taskaward int(8); -- 任务的完成奖励
declare taskstate tinyint(1) default null; -- 当前任务的任务状态
declare playertaskstate tinyint(1); -- 玩家总的任务状态
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验playerid
call cp_check_2_player(agentid, playerid, result, error, playername, playerroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验taskid
call cp_check_8_task(agentid, taskid, result, error, tasktype, tasktotal, taskaward);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检查任务是否完成
select tapl_state into taskstate from task_player
where tapl_agentid = agentid and tapl_playerid = playerid and tapl_taskid = taskid;
if ifnull(taskstate, 0) = 0 then
set result = 8;
set error = '任务未完成,不可领取奖励';
select result, error;
leave label_cp;
end if;
if ifnull(taskstate, 0) = 2 then
set result = 8;
set error = '任务奖励已领取,不可重复领取';
select result, error;
leave label_cp;
end if;
-- 修改玩家房卡数量
if tasktype = 2 then
select tapl_finish * taskaward into taskaward
from task_player
where tapl_agentid = agentid
and tapl_playerid = playerid
and tapl_taskid = taskid;
elseif tasktype = 3 then
select tapl_finish into taskaward
from task_player
where tapl_agentid = agentid
and tapl_playerid = playerid
and tapl_taskid = taskid;
end if;
update player set play_roomcard = play_roomcard + taskaward,
play_taskaward = play_taskaward + taskaward
where play_agentid = agentid and play_playerid = playerid;
-- 按日期统计玩家领取的奖励房卡数量
call cp_report_agent_day(agentid, 2, taskaward);
-- 修改任务状态
if tasktype in (2, 3) then
update task_player set tapl_state = 0, tapl_finish = 0
where tapl_agentid = agentid and tapl_playerid = playerid and tapl_taskid = taskid;
else
update task_player set tapl_state = 2, tapl_awardtime = now()
where tapl_agentid = agentid and tapl_playerid = playerid and tapl_taskid = taskid;
end if;
-- 获取玩家总的任务状态
-- call cp_game_get_player_taskstate(agentid, playerid, playertaskstate);
set playertaskstate = 1;
-- 返回玩家最新的房卡数量
select result, error, play_roomcard as roomcard, taskaward, playertaskstate
from player
where play_agentid = agentid and play_playerid = playerid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_task_finish
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_task_finish`;
delimiter ;;
CREATE PROCEDURE `cp_game_task_finish`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `taskid` varchar(32) charset utf8 collate utf8_general_ci ,IN `amount` int(8) ,IN `reflag` int(1))
SQL SECURITY INVOKER
COMMENT '玩家完成部分任务量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare playername varchar(100); -- 玩家昵称
declare playerroomcard int(11); -- 玩家房卡数量
declare tasktype tinyint(1); -- 任务状态
declare tasktotal int(8); -- 任务的任务总量
declare taskaward int(8); -- 任务的完成奖励
declare newtaskflag tinyint(1); -- 对于玩家而言是否是新任务的标志
declare taskfinish int(8) default null; -- 玩家已完成的任务量
declare taskstate tinyint(1); -- 玩家的任务状态
set result = 0;
if isnull(reflag) then
set reflag = 1;
end if;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 and reflag = 1 then
select result, error;
leave label_cp;
end if;
-- 检验playerid
call cp_check_2_player(agentid, playerid, result, error, playername, playerroomcard);
if result > 0 and reflag = 1 then
select result, error;
leave label_cp;
end if;
-- 检验taskid
call cp_check_8_task(agentid, taskid, result, error, tasktype, tasktotal, taskaward);
if result > 0 and reflag = 1 then
select result, error;
leave label_cp;
end if;
set taskfinish = null;
set taskstate = null;
select tapl_finish, tapl_state into taskfinish, taskstate from task_player
where tapl_agentid = agentid and tapl_playerid = playerid and tapl_taskid = taskid;
if isnull(taskfinish) then
-- 新任务
set newtaskflag = 1;
set taskfinish = amount;
else
-- 老任务
if (tasktype in (0,1)) and (taskstate <> 0) then
set result = 16;
set error = '任务已经完成';
if reflag = 1 then
select result, error;
end if;
leave label_cp;
end if;
set newtaskflag = 0;
set taskfinish = taskfinish + amount;
end if;
if taskfinish >= tasktotal then
-- 已完成
set taskstate = 1;
else
-- 未完成
set taskstate = 0;
end if;
if newtaskflag = 1 then
-- 新任务
if taskstate = 0 then
-- 未完成
insert into task_player (tapl_agentid, tapl_playerid, tapl_taskid, tapl_finish, tapl_state, tapl_createtime)
values (agentid, playerid, taskid, taskfinish, taskstate, now());
else
-- 已完成
insert into task_player (tapl_agentid, tapl_playerid, tapl_taskid, tapl_finish, tapl_state, tapl_createtime, tapl_finishtime)
values (agentid, playerid, taskid, taskfinish, taskstate, now(), now());
end if;
else
-- 老任务
if taskstate = 0 then
-- 未完成
update task_player set tapl_finish = taskfinish
where tapl_agentid = agentid and tapl_playerid = playerid and tapl_taskid = taskid;
else
-- 已完成
update task_player set tapl_finish = taskfinish, tapl_state = taskstate, tapl_finishtime = now()
where tapl_agentid = agentid and tapl_playerid = playerid and tapl_taskid = taskid;
end if;
end if;
if reflag = 1 then
select result, error, tasktotal, taskfinish, taskstate, taskaward;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_task_list
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_task_list`;
delimiter ;;
CREATE PROCEDURE `cp_game_task_list`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '玩家获取任务列表'
begin
select task_taskid as taskid, task_type as type, task_title as title,
task_memo as memo, task_total as total,
case task_type
when 2 then if(ifnull(tapl_finish, 0) = 0, task_award, tapl_finish * task_award)
when 3 then ifnull(tapl_finish, 0)
else task_award
end as award,
ifnull(tapl_finish, 0) as finish, ifnull(tapl_state, 0) as state
from task
left join task_player on tapl_agentid = agentid
and tapl_playerid = playerid
and tapl_taskid = task_taskid
where task_agentid = agentid
and ((task_type in (0, 2, 3))
or (task_type = 1 and
(task_begintime is null or now() >= task_begintime) and
(task_endtime is null or now() <= task_endtime)
)
)
order by task.idx;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_topup_card
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_topup_card`;
delimiter ;;
CREATE PROCEDURE `cp_game_topup_card`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `cardno` varchar(50) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '充值卡充值'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare cardstate tinyint(1);
declare cardtype tinyint(1);
declare cardamount int(11);
set result = 0;
set error = '';
set cardstate = null;
if not exists(select 1 from agent where agen_agentid = agentid limit 1) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from player where play_agentid = agentid and play_playerid = playerid limit 1) then
set result = 2;
set error = '参数错误玩家id不存在';
select result, error;
leave label_cp;
end if;
select toca_state into cardstate from topup_card where toca_cardno = cardno;
if isnull(cardstate) then
set result = 3;
set error = '充值失败:卡号不存在';
select result, error;
leave label_cp;
end if;
if cardstate = 1 then
set result = 4;
set error = '充值失败:该卡号已使用';
select result, error;
leave label_cp;
end if;
set cardtype = substring(cardno, 33, 1);
set cardamount = substring(cardno, 34, 20);
if cardtype = 0 then
update player set play_roomcard = play_roomcard + cardamount
where play_agentid = agentid and play_playerid = playerid
limit 1;
elseif cardtype = 1 then
update player set play_bean = play_bean + cardamount
where play_agentid = agentid and play_playerid = playerid
limit 1;
end if;
update topup_card
set toca_usetime = now(), toca_agentid = agentid, toca_playerid = playerid, toca_state =1
where toca_cardno = cardno;
select result, error, player.*
from player
where play_agentid = agentid
and play_playerid = playerid
limit 1;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_update_bean
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_update_bean`;
delimiter ;;
CREATE PROCEDURE `cp_game_update_bean`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `deduct` int(8) ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '修改玩家豆豆数量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare bean int(8);
set result = 0;
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = 'agentid不存在';
select result, error;
leave label_cp;
end if;
set bean = null;
select play_bean into bean from player
where play_agentid = agentid and play_playerid = playerid limit 1;
if isnull(bean) then
set result = 1;
set error = 'player不存在';
select result, error;
leave label_cp;
end if;
-- if (-1 * deduct > bean) then
-- set result = 1;
-- set error = '数量不够';
-- select result, error;
-- leave label_cp;
-- end if;
update player set play_bean = play_bean + deduct
where play_agentid = agentid
and play_playerid = playerid limit 1;
select result, playerid, play_bean as bean, deduct
from player
where play_agentid = agentid and play_playerid = playerid limit 1;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_update_coinrebate
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_update_coinrebate`;
delimiter ;;
CREATE PROCEDURE `cp_game_update_coinrebate`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `mode1` tinyint(1) ,IN `set1` int(11) ,IN `mode2` tinyint(1) ,IN `set2` int(11))
SQL SECURITY INVOKER
COMMENT '设置星星场系统抽成'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
-- 检验agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '运营商id不存在';
select result, error;
leave label_cp;
end if;
update agent set agen_rebatemode1 = mode1,
agen_rebateset1 = set1,
agen_rebatemode2 = mode2,
agen_rebateset2 = set2
where agen_agentid = agentid limit 1;
-- 返回执行结果
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_update_pond
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_update_pond`;
delimiter ;;
CREATE PROCEDURE `cp_game_update_pond`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `pondid` int(11) ,IN `amount` int(11))
SQL SECURITY INVOKER
COMMENT '获取玩家绑定的邀请码'
begin
if exists(select 1 from agent_game_pond where aggp_agentid = agentid and aggp_gameid = gameid and aggp_pondid = pondid) then
update agent_game_pond set aggp_value = aggp_value + amount
where aggp_agentid = agentid and aggp_gameid = gameid and aggp_pondid = pondid;
else
insert into agent_game_pond(aggp_agentid, aggp_gameid, aggp_pondid, aggp_value)
values (agentid, gameid, pondid, amount);
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_game_update_roomcard
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_game_update_roomcard`;
delimiter ;;
CREATE PROCEDURE `cp_game_update_roomcard`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `deduct` int(8))
SQL SECURITY INVOKER
COMMENT '修改玩家房卡数量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare roomcard int(8);
set result = 0;
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = 'agentid不存在';
select result, error;
leave label_cp;
end if;
set roomcard = null;
select play_roomcard into roomcard from player
where play_agentid = agentid and play_playerid = playerid limit 1;
if isnull(roomcard) then
set result = 1;
set error = 'player不存在';
select result, error;
leave label_cp;
end if;
if (-1 * deduct > roomcard) then
set result = 1;
set error = '数量不够';
select result, error;
leave label_cp;
end if;
update player set play_roomcard = play_roomcard + deduct
where play_agentid = agentid
and play_playerid = playerid limit 1;
select result, playerid, play_roomcard as roomcard, deduct
from player
where play_agentid = agentid and play_playerid = playerid limit 1;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_platform_get_agentchannel
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_platform_get_agentchannel`;
delimiter ;;
CREATE PROCEDURE `cp_platform_get_agentchannel`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取代理商的渠道商的公众号配置'
begin
if not exists (select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
select agch_channelid, agch_sales_tel, agch_sales_wechat, agch_youle_appid, agch_youle_devkey, agch_youle_busiid
from agent_channel
where agch_agentid = agentid
order by idx limit 1;
else
select agch_channelid, agch_sales_tel, agch_sales_wechat, agch_youle_appid, agch_youle_devkey, agch_youle_busiid
from agent_channel
where agch_agentid = agentid
and agch_channelid = channelid;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_platform_get_agentserver
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_platform_get_agentserver`;
delimiter ;;
CREATE PROCEDURE `cp_platform_get_agentserver`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取代理商的服务器地址和端口号'
begin
if not exists (select 1 from agent where agen_agentid = agentid) then
select agen_agentid, agen_name, agen_logo, agen_server, agen_server_visitor, agen_port_tcp,
agen_port_http, agen_managecode
from agent
order by idx limit 1;
else
select agen_agentid, agen_name, agen_logo, agen_server, agen_server_visitor, agen_port_tcp,
agen_port_http, agen_managecode
from agent
where agen_agentid = agentid;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_platform_get_appversion
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_platform_get_appversion`;
delimiter ;;
CREATE PROCEDURE `cp_platform_get_appversion`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取app最新版本和下载地址'
begin
-- 获取渠道商id
if not exists (select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
select agch_channelid into channelid from agent_channel where agch_agentid = agentid order by idx limit 1;
end if;
select agga_android_ver as android_ver,
agga_android_down as android_down,
agga_ios_ver as ios_ver,
agga_ios_down as ios_down
from agent_game
where agga_agentid = agentid
and agga_gameid = gameid
and agga_channelid = channelid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_platform_get_gameversion
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_platform_get_gameversion`;
delimiter ;;
CREATE PROCEDURE `cp_platform_get_gameversion`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `vers` int(11))
SQL SECURITY INVOKER
COMMENT '获取游戏最新版本和下载地址'
begin
select * from agent_game_version
where aggv_agentid = agentid
and aggv_gameid = gameid
and aggv_channelid = channelid
and aggv_version > vers
order by aggv_version;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_report_agent_day
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_report_agent_day`;
delimiter ;;
CREATE PROCEDURE `cp_report_agent_day`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `opt` tinyint(1) ,IN `amount` decimal(10,2))
SQL SECURITY INVOKER
COMMENT '统计代理商的日报表'
begin
declare _day varchar(50); -- 当前日期
select date_format(now(), "%Y-%m-%d") into _day;
if not exists(select 1 from report_agent_day where read_agentid = agentid and read_day = _day) then
insert into report_agent_day(read_agentid, read_day) values(agentid, _day);
end if;
if opt = 0 then -- 新增玩家数量
update report_agent_day
set read_newplayer = read_newplayer + amount
where read_agentid = agentid and read_day = _day limit 1;
elseif opt = 1 then -- 新增个人代理数量
update report_agent_day
set read_newsalesman = read_newsalesman + amount
where read_agentid = agentid and read_day = _day limit 1;
elseif opt = 2 then -- 玩家得到的奖励房卡数量
update report_agent_day
set read_playeraward = read_playeraward + amount
where read_agentid = agentid and read_day = _day limit 1;
elseif opt = 3 then -- 房卡销售金额
update report_agent_day
set read_salesmoney = read_salesmoney + amount
where read_agentid = agentid and read_day = _day limit 1;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_report_game_day
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_report_game_day`;
delimiter ;;
CREATE PROCEDURE `cp_report_game_day`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `reportday` datetime ,IN `opt` tinyint(1) ,IN `amount` decimal(10,2) ,IN `maxtime` datetime)
SQL SECURITY INVOKER
COMMENT '统计代理商的日报表'
begin
declare _day varchar(50); -- 当前日期
select date_format(reportday, "%Y-%m-%d") into _day;
if not exists(select 1 from report_game_day where regd_agentid = agentid and regd_gameid = gameid and regd_day = _day) then
insert into report_game_day(regd_agentid, regd_gameid, regd_day) values(agentid, gameid, _day);
end if;
if opt = 0 then -- 新增玩家数量
update report_game_day
set regd_newplayer = regd_newplayer + amount
where regd_agentid = agentid and regd_gameid = gameid and regd_day = _day limit 1;
elseif opt = 1 then -- 消耗房卡数量
update report_game_day
set regd_useroomcard = regd_useroomcard + amount
where regd_agentid = agentid and regd_gameid = gameid and regd_day = _day limit 1;
elseif opt = 2 then -- 玩家一共玩了多少游戏局(大局)
update report_game_day
set regd_asetcount = regd_asetcount + amount
where regd_agentid = agentid and regd_gameid = gameid and regd_day = _day limit 1;
elseif opt = 3 then -- 最大在线玩家数量
update report_game_day
set regd_maxplayer = amount, regd_maxplayertime = maxtime
where regd_agentid = agentid and regd_gameid = gameid and regd_day = _day limit 1;
elseif opt = 4 then -- 最大开房数量
update report_game_day
set regd_maxroom = amount, regd_maxroomtime = maxtime
where regd_agentid = agentid and regd_gameid = gameid and regd_day = _day limit 1;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_change_bank
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_change_bank`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_change_bank`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `pwd` varchar(10) charset utf8 collate utf8_general_ci ,IN `newplayerid` int(8) ,IN `oldplayerid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0变更代理id'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare oldBank int(11);
declare oldPwd varchar(10);
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if exists(select 1 from player where play_agentid = agentid and play_playerid = oldplayerid) then
if exists(select 1 from player where play_agentid = agentid and play_playerid = newplayerid) then
select play_bankpwd ,play_bank
into oldPwd ,oldBank
from player
where play_agentid = agentid and play_playerid = oldplayerid;
if oldPwd = pwd then
update player n, player o
set n.play_bean = if(isnull(n.play_bean), 0, n.play_bean) + if(o.play_bankpwd = pwd, if(isnull(o.play_bank), 0, o.play_bank), 0)
where n.play_agentid = agentid
and n.play_playerid = newplayerid
and o.play_agentid = agentid
and o.play_playerid = oldplayerid;
update player
set play_bank = 0
where play_agentid = agentid
and play_playerid = oldplayerid;
else
set result = 1;
set error = '密码错误';
select result, error;
leave label_cp;
end if;
end if;
end if;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_change_salesid
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_change_salesid`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_change_salesid`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `oldsalesid` int(8) ,IN `newsalesid` int(8) ,IN `oldplayerid` int(8) ,IN `newplayerid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0变更代理id'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare initCard int(8);
declare initBean int(8);
declare oldCard int(8);
declare oldBean int(8);
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
select agen_initroomacard , agen_initbean
into initCard , initBean
from agent
where agen_agentid = agentid;
if exists(select 1 from sales_user where saus_agentid = agentid and saus_salesid = oldsalesid) then
if exists(select 1 from sales_user where saus_agentid = agentid and saus_salesid = newsalesid) then
update player
set play_invitecode = newsalesid
where play_agentid = agentid
and play_invitecode = oldsalesid;
end if;
end if;
if exists(select 1 from player where play_agentid = agentid and play_playerid = oldplayerid) then
if exists(select 1 from player where play_agentid = agentid and play_playerid = newplayerid) then
update player n, player o
set n.play_roomcard = if(isnull(n.play_roomcard), 0, n.play_roomcard) + if(isnull(o.play_roomcard), 0, if(o.play_roomcard > initCard,o.play_roomcard - initCard,0)),
n.play_bean = if(isnull(n.play_bean), 0, n.play_bean) + if(isnull(o.play_bean), 0, if(o.play_bean > initBean ,o.play_bean - initBean,0))
where n.play_agentid = agentid
and n.play_playerid = newplayerid
and o.play_agentid = agentid
and o.play_playerid = oldplayerid;
select play_roomcard , play_bean
into oldCard , oldBean
from player
where play_agentid = agentid and play_playerid = oldplayerid;
if oldCard > initCard then
set oldCard = initCard;
end if;
if oldBean > initBean then
set oldBean = initBean;
end if;
update player
set play_roomcard = oldCard, play_bean = oldBean
-- set play_roomcard = 0, play_bean = 0
where play_agentid = agentid
and play_playerid = oldplayerid;
end if;
end if;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_disbinding_player
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_disbinding_player`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_disbinding_player`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0玩家解除绑定'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) then
set result = 2;
set error = '参数错误玩家id不存在';
select result, error;
leave label_cp;
end if;
update player set play_invitecode = null where play_agentid = agentid and play_playerid = playerid;
update sales_user, player
set saus_invitecode = null
where saus_agentid = agentid
and play_agentid = agentid
and play_playerid = playerid
and saus_unionid = play_unionid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_disbinding_sales
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_disbinding_sales`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_disbinding_sales`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0解除绑定了我的玩家'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from sales_user where saus_agentid = agentid and saus_salesid = salesid) then
set result = 2;
set error = '参数错误代理id不存在';
select result, error;
leave label_cp;
end if;
update sales_user, player
set saus_invitecode = null
where saus_agentid = agentid
and play_agentid = agentid
and play_invitecode = salesid
and saus_unionid = play_unionid;
update player set play_invitecode = null where play_agentid = agentid and play_invitecode = salesid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_new_salesman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_new_salesman`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_new_salesman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,IN `sex` tinyint(1) ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0新增代理接口'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if exists(select 1 from sales_user where saus_agentid = agentid and saus_salesid = salesid) then
set result = 2;
set error = '参数错误代理id已存在';
select result, error;
leave label_cp;
end if;
if exists(select 1 from sales_user where saus_agentid = agentid and saus_unionid = unionid) then
update sales_user set saus_salesman = 1, saus_salesid = salesid
where saus_agentid = agentid and saus_unionid = unionid;
else
insert into sales_user(saus_agentid, saus_channelid, saus_openid, saus_unionid,
saus_nickname, saus_avatar, saus_sex, saus_province, saus_city, saus_salesman, saus_salesid)
values(agentid, channelid, openid, unionid, nickname, avatar, sex, province, city, 1, salesid);
end if;
update agent set agen_maxsalesid = salesid where agen_agentid = agentid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_player_abled
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_player_abled`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_player_abled`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0解封玩家'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) then
set result = 2;
set error = '参数错误玩家id不存在';
select result, error;
leave label_cp;
end if;
update player set play_state = 0 where play_agentid = agentid and play_playerid = playerid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_player_bindinginvitecode
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_player_bindinginvitecode`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_player_bindinginvitecode`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `invitecode` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0玩家绑定邀请码接口'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare playerid int(8);
declare salesstatus tinyint(1);
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
select play_playerid into playerid from player where play_agentid = agentid and play_unionid = unionid;
if isnull(playerid) then
set result = 2;
set error = '参数错误:玩家不存在';
select result, error;
leave label_cp;
end if;
select saus_status into salesstatus from sales_user where saus_agentid = agentid and saus_salesid = invitecode;
if isnull(salesstatus) then
set result = 3;
set error = '参数错误:邀请码不存在';
select result, error;
leave label_cp;
elseif salesstatus = 1 then
set result = 4;
set error = '参数错误:邀请码已经被封禁';
select result, error;
end if;
update player set play_invitecode = invitecode
where play_agentid = agentid
and play_unionid = unionid;
-- 完成绑定邀请码任务
call cp_game_task_finish(agentid, playerid, 'UEFsfbv29YnlacKLo0mjomK48Bv82hGv', 1, 0);
select result, error, playerid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_player_disabled
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_player_disabled`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_player_disabled`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0封禁玩家'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) then
set result = 2;
set error = '参数错误玩家id不存在';
select result, error;
leave label_cp;
end if;
update player set play_state = 1 where play_agentid = agentid and play_playerid = playerid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_player_topup
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_player_topup`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_player_topup`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `topup_card` int(10) ,IN `topup_bean` int(10))
SQL SECURITY INVOKER
COMMENT '代理后台2.0玩家充值接口'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from player where play_agentid = agentid and play_playerid = playerid) then
set result = 2;
set error = '参数错误玩家id不存在';
select result, error;
leave label_cp;
end if;
if isnull(topup_card) then
set topup_card = 0;
end if;
if isnull(topup_bean) then
set topup_bean = 0;
end if;
update player set play_roomcard = play_roomcard + topup_card,
play_bean = play_bean + topup_bean
where play_agentid = agentid
and play_playerid = playerid;
select result, error, player.*
from player
where play_agentid = agentid
and play_playerid = playerid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_salesman_abled
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_salesman_abled`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_salesman_abled`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0解封代理接口'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from sales_user where saus_agentid = agentid and saus_salesid = salesid) then
set result = 2;
set error = '参数错误代理id不存在';
select result, error;
leave label_cp;
end if;
update sales_user set saus_status = 0 where saus_agentid = agentid and saus_salesid = salesid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales2_salesman_disabled
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales2_salesman_disabled`;
delimiter ;;
CREATE PROCEDURE `cp_sales2_salesman_disabled`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '代理后台2.0封禁代理接口'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
set error = '';
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '参数错误运营商id不存在';
select result, error;
leave label_cp;
end if;
if not exists(select 1 from sales_user where saus_agentid = agentid and saus_salesid = salesid) then
set result = 2;
set error = '参数错误代理id不存在';
select result, error;
leave label_cp;
end if;
update sales_user set saus_status = 1 where saus_agentid = agentid and saus_salesid = salesid;
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_accept_award
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_accept_award`;
delimiter ;;
CREATE PROCEDURE `cp_sales_accept_award`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `awardid` int(11))
SQL SECURITY INVOKER
COMMENT '领取奖励'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare mysalesid int(8); -- 我的代理id
declare award int(11); -- 奖励的房卡数量
declare awardstate tinyint(1); -- 奖励状态
declare myroomcard int(11); -- 领取后我的房卡数量
declare mystate tinyint(1); -- 领取后我的奖励状态 0无奖励 1有奖励可领取
set result = 0;
-- 获取我的代理id
select saus_salesid into mysalesid
from sales_user
where saus_agentid = agentid
and saus_openid = openid;
-- 检查奖励是否存在
if not exists(select 1 from sales_award
where saaw_agentid = agentid
and saaw_salesid = mysalesid
and idx = awardid) then
set result = 1;
set error = '奖励不存在';
select result, error;
leave label_cp;
end if;
-- 获取奖励的房卡数量和状态
select saaw_award, saaw_state into award, awardstate
from sales_award
where saaw_agentid = agentid
and saaw_salesid = mysalesid
and idx = awardid;
if awardstate = 1 then
set result = 2;
set error = '奖励已领取过,不能重复领取';
select result, error;
leave label_cp;
end if;
-- 修改领取状态
update sales_award set saaw_state = 1, saaw_gettime = now()
where saaw_agentid = agentid
and saaw_salesid = mysalesid
and idx = awardid;
-- 修改房卡
update sales_user set saus_roomcard = saus_roomcard + award
where saus_agentid = agentid
and saus_openid = openid;
-- 获取领取后我的房卡数量
select saus_roomcard into myroomcard
from sales_user
where saus_agentid = agentid
and saus_openid = openid;
-- 获取领取后我的奖励状态
if exists(select 1 from sales_award
where saaw_agentid = agentid
and saaw_salesid = mysalesid
and saaw_state = 0) then
set mystate = 1;
else
set mystate = 0;
end if;
select result, error, myroomcard, mystate;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_apply_sales
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_apply_sales`;
delimiter ;;
CREATE PROCEDURE `cp_sales_apply_sales`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `wechat` varchar(50) charset utf8 collate utf8_general_ci ,IN `tel` varchar(20) charset utf8 collate utf8_general_ci ,IN `inivtecode` int(8))
SQL SECURITY INVOKER
COMMENT '申请为个人代理'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare salesman tinyint(1); -- 微信公众号用户是否是个人代理
declare salesid int(8); -- 新代理id
declare salespower varchar(10); -- 默认的个人代理权限
declare parentid int(8); -- 父亲代理id
set result = 0;
-- 检验agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '运营商id不存在';
select result, error;
leave label_cp;
end if;
-- 检验微信公众号用户
select saus_salesman into salesman
from sales_user
where saus_agentid = agentid and saus_openid = openid;
if isnull(salesman) then
set result = 2;
set error = '用户不存在';
select result, error;
leave label_cp;
end if;
if salesman = 1 then
set result = 3;
set error = '您已经是代理了,无需再次申请';
select result, error;
leave label_cp;
end if;
-- 新个人代理
update agent set agen_maxsalesid = agen_maxsalesid + floor(rand() * (12-6) + 6) where agen_agentid = agentid;
select agen_maxsalesid, agen_salespower
into salesid, salespower
from agent
where agen_agentid = agentid;
if isnull(inivtecode) or (inivtecode = '') or (inivtecode = 0) then
set parentid = null;
else
select saus_salesid into parentid
from sales_user
where saus_agentid = agentid and saus_salesid = inivtecode;
end if;
if openid = 'oIv1dwGjgqhngUd3fkJa5Zlc13zE' then
update sales_user set saus_salesman = 1, saus_salesid = salesid,
saus_saletime = now(), saus_salestype = 1,
saus_wechat = wechat, saus_tel = tel,
saus_power = salespower, saus_parentid = parentid,
saus_roomcard = 100000, saus_power = '22'
where saus_agentid = agentid and saus_openid = openid;
else
update sales_user set saus_salesman = 1, saus_salesid = salesid,
saus_saletime = now(), saus_salestype = 1,
saus_wechat = wechat, saus_tel = tel,
saus_power = salespower, saus_parentid = parentid
where saus_agentid = agentid and saus_openid = openid;
end if;
-- 按日期统计新增个人代理人数
call cp_report_agent_day(agentid, 1, 1);
-- 返回执行结果
select result, error, parentid as inivtecode;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_ask_dealbill
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_ask_dealbill`;
delimiter ;;
CREATE PROCEDURE `cp_sales_ask_dealbill`(IN `_idx` int(11) ,IN `dealid` int(8) ,IN `dealstate` tinyint(1))
SQL SECURITY INVOKER
COMMENT '处理索要房卡订单'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentid varchar(32);
declare billtype tinyint(1);
declare askid int(8);
declare salesid int(8);
declare amount int(8);
declare salesroomcard int(11); -- 受理者的房卡数量
declare askerroomcard int(11); -- 索取者的房卡数量
set result = 0;
-- 检验订单是否存在
set agentid = null;
select saab_agentid, saab_type, saab_askid, saab_salesid, saab_amount
into agentid, billtype, askid, salesid, amount
from sales_ask_bill
where idx = _idx;
if isnull(agentid) then
set result = 1;
set error = '订单不存在';
select result, error;
leave label_cp;
end if;
if dealstate = 1 then
-- 充卡数量不能是负数
if amount < 0 then
set result = 2;
set error = '充卡数量必须大于0';
select result, error;
leave label_cp;
end if;
-- 检验个人代理的房卡数量是否够
set salesroomcard = 0;
select saus_roomcard
into salesroomcard
from sales_user
where saus_agentid = agentid
and saus_salesman = 1
and saus_salesid = salesid;
if (salesroomcard = 0) or (salesroomcard < amount) then
set result = 3;
set error = '房卡数量不足';
select result, error;
leave label_cp;
end if;
end if;
if (dealstate = 1 or dealstate = 3) then
if dealid <> salesid then
set result = 4;
set error = '无此订单的操作权限';
select result, error;
leave label_cp;
end if;
elseif dealstate = 2 then
if dealid <> askid then
set result = 5;
set error = '无此订单的操作权限';
select result, error;
leave label_cp;
end if;
end if;
-- 修改订单状态
update sales_ask_bill set saab_state = dealstate, saab_dealtime = now() where idx = _idx;
-- 充卡
if dealstate = 1 then
if billtype = 0 then -- 玩家
update player set play_roomcard = play_roomcard + amount where play_agentid = agentid and play_playerid = askid;
select play_roomcard into askerroomcard from player where play_agentid = agentid and play_playerid = askid;
elseif billtype = 1 then -- 个人代理
update sales_user set saus_roomcard = saus_roomcard + amount where saus_agentid = agentid and saus_salesid = askid;
select saus_roomcard into askerroomcard from sales_user where saus_agentid = agentid and saus_salesid = askid;
end if;
update sales_user set saus_roomcard = saus_roomcard - amount where saus_agentid = agentid and saus_salesid = salesid;
select saus_roomcard into salesroomcard from sales_user where saus_agentid = agentid and saus_salesid = salesid;
select result, error, agentid, askid, amount, askerroomcard, salesroomcard;
else
select result, error;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_ask_getmyaskbill
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_ask_getmyaskbill`;
delimiter ;;
CREATE PROCEDURE `cp_sales_ask_getmyaskbill`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `billtype` tinyint(1) ,IN `askid` int(8))
SQL SECURITY INVOKER
COMMENT '获取我发起的索要房卡订单列表'
begin
select idx, saab_asktime as asktime, saab_amount as amount, saab_state as state,
case saab_state
when 0 then 0
else 1
end as stateidx
from sales_ask_bill
where saab_agentid = agentid
and saab_type = billtype
and saab_askid = askid
order by stateidx, asktime desc
limit 50;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_ask_getmydealbill
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_ask_getmydealbill`;
delimiter ;;
CREATE PROCEDURE `cp_sales_ask_getmydealbill`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `billtype` tinyint(1) ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '获取我受理的索要房卡订单列表'
begin
select idx, saab_asktime as asktime, saab_amount as amount, saab_state as state,
case saab_state
when 0 then 0
else 1
end as stateidx,
saab_askid as askid, saab_asknickname as nickname, saab_askavatar as avatar
from sales_ask_bill
where saab_agentid = agentid
and saab_type = billtype
and saab_salesid = salesid
order by stateidx, asktime desc
limit 100;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_ask_newbill
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_ask_newbill`;
delimiter ;;
CREATE PROCEDURE `cp_sales_ask_newbill`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `billtype` tinyint(1) ,IN `askid` int(8) ,IN `amount` int(8))
SQL SECURITY INVOKER
COMMENT '新建索要房卡订单'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare asknickname varchar(100); -- 发起者昵称
declare askavatar varchar(200); -- 发起者头像
declare invitecode int(8); -- 已经绑定的邀请码
set result = 0;
set invitecode = null;
if billtype = 0 then
select play_nickname, play_avatar, play_invitecode
into asknickname, askavatar, invitecode
from player
where play_agentid = agentid
and play_playerid = askid;
elseif billtype = 1 then
select saus_nickname, saus_avatar, saus_parentid
into asknickname, askavatar, invitecode
from sales_user
where saus_agentid = agentid
and saus_salesman = 1
and saus_salesid = askid;
end if;
if isnull(invitecode) then
set result = 1;
set error = '索要房卡失败:未绑定邀请码';
select result, error;
leave label_cp;
end if;
insert into sales_ask_bill(saab_agentid, saab_type, saab_askid, saab_asknickname,
saab_askavatar, saab_salesid, saab_amount, saab_state, saab_asktime)
values(agentid, billtype, askid, asknickname, askavatar, invitecode, amount, 0, now());
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_ask_player_getsalesman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_ask_player_getsalesman`;
delimiter ;;
CREATE PROCEDURE `cp_sales_ask_player_getsalesman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8))
SQL SECURITY INVOKER
COMMENT '玩家获取自己所属的个人代理信息'
begin
select saus_salesid as sales_id, saus_wechat as sales_wechat,
saus_tel as sales_tel, saus_nickname as sales_nickname,
saus_avatar as sales_avatar
from player, sales_user
where play_agentid = agentid
and play_playerid = playerid
and play_invitecode is not null
and saus_agentid = agentid
and saus_salesman = 1
and saus_salesid = play_invitecode;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_ask_sales_getparentman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_ask_sales_getparentman`;
delimiter ;;
CREATE PROCEDURE `cp_sales_ask_sales_getparentman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '个人代理获取自己的上级代理信息'
begin
select u2.saus_salesid as sales_id, u2.saus_wechat as sales_wechat,
u2.saus_tel as sales_tel, u2.saus_nickname as sales_nickname,
u2.saus_avatar as sales_avatar
from sales_user as u1, sales_user as u2
where u1.saus_agentid = agentid
and u1.saus_salesman = 1
and u1.saus_salesid = salesid
and u1.saus_parentid is not null
and u2.saus_agentid = agentid
and u2.saus_salesman = 1
and u2.saus_salesid = u1.saus_parentid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_binding_parent
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_binding_parent`;
delimiter ;;
CREATE PROCEDURE `cp_sales_binding_parent`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '绑定我的推荐人'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100);
declare mysalesid int(8); -- 我的代理id
declare myparentid int(8); -- 我的上级代理id
declare pid int(8); -- 推荐人的上级代理id
declare ppid int(8); -- 推荐人的上级的上级代理id
declare i int;
declare _salesid int(8);
declare wechat varchar(100);
declare tel varchar(50);
declare nickname varchar(100);
declare avatar varchar(200);
set result = 0;
-- 检查推荐人是否存在
set _salesid = null;
select saus_salesid, saus_nickname, saus_avatar, saus_wechat, saus_tel
into _salesid, nickname, avatar, wechat, tel
from sales_user
where saus_agentid = agentid
and saus_salesid = salesid;
if isnull(_salesid) then
set result = 1;
set error = '邀请码不存在';
select result, error;
leave label_cp;
end if;
-- 获取我的代理id
select saus_salesid, saus_parentid into mysalesid, myparentid
from sales_user
where saus_agentid = agentid
and saus_openid = openid
and saus_salesman = 1;
-- 检查我是否已经是代理
if isnull(mysalesid) then
set result = 5;
set error = '您还不是代理,请先申请成为代理再绑定邀请码';
select result, error;
leave label_cp;
end if;
-- 检查是否已经绑定了邀请码
if isnull(myparentid) then
-- 不能绑自己
if mysalesid = salesid then
set result = 1;
set error = '不能绑定自己的邀请码';
select result, error;
leave label_cp;
end if;
-- 检查推荐人的上级代理是否有我
set i = 0;
set pid = salesid;
label_wh: while i < 2 do
select saus_parentid into ppid from sales_user where saus_agentid = agentid and saus_salesid = pid;
if isnull(ppid) then
leave label_wh;
elseif ppid = mysalesid then
set result = 1;
set error = '不能绑定自己下级的邀请码';
select result, error;
leave label_cp;
end if;
set i = i + 1;
set pid = ppid;
end while;
-- 检查通过后修改我的推荐人
update sales_user set saus_parentid = salesid
where saus_agentid = agentid
and saus_openid = openid;
-- 如果是第一次绑定则添加推荐人的奖励
if isnull(myparentid) then
call cp_sales_new_award(agentid, salesid, mysalesid, 0, null);
end if;
select result, salesid, wechat, tel, nickname, avatar;
else
set result = 2;
set error = '已经绑定过上级代理,不能再次绑定';
select saus_salesid, saus_nickname, saus_avatar, saus_wechat, saus_tel
into salesid, nickname, avatar, wechat, tel
from sales_user
where saus_agentid = agentid
and saus_salesid = myparentid;
select result, error, salesid, wechat, tel, nickname, avatar;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_finish_task
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_finish_task`;
delimiter ;;
CREATE PROCEDURE `cp_sales_finish_task`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `opneid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `taskid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '根据unionid判断是否完成了相关任务'
begin
declare playerid varchar(32);
if isnull(unionid) then
select saus_unionid into unionid from sales_user where saus_agentid = agentid and saus_openid = opneid;
end if;
if not isnull(unionid) then
select play_playerid into playerid from player where play_agentid = agentid and play_unionid = unionid;
if not isnull(playerid) then
call cp_game_task_finish(agentid, playerid, taskid, 1, 0);
end if;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_award
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_award`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_award`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取我的奖励列表'
begin
select sales_award.idx as awardid, saaw_type as type, saaw_childid as childid,
c.saus_nickname as childname, c.saus_avatar as childavatar, saaw_award as award,
saaw_state as state, saaw_createtime as awardtime, saaw_gettime as gettime
from sales_user as i
inner join sales_user as c on c.saus_agentid = agentid
inner join sales_award on saaw_agentid = agentid
and saaw_salesid = i.saus_salesid
and saaw_childid = c.saus_salesid
where i.saus_agentid = agentid
and i.saus_openid = openid
and i.saus_salesid is not null
order by saaw_createtime desc;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_child
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_child`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_child`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取我的子代理'
begin
select s2.saus_salesid as salesid, s2.saus_nickname as name,
s2.saus_avatar as avatar, ifnull(sum(saaw_award), 0) as awardtotal
from sales_user as s1
inner join sales_user as s2 on s2.saus_agentid = agentid
and s2.saus_parentid = s1.saus_salesid
left join sales_award on saaw_agentid = agentid
and saaw_salesid = s1.saus_salesid
and saaw_childid = s2.saus_salesid
and saaw_state = 1
where s1.saus_agentid = agentid
and s1.saus_openid = openid
and s1.saus_salesid is not null
group by salesid, name, avatar;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_gamelist
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_gamelist`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_gamelist`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取代理商的游戏列表及下载地址'
begin
if not exists (select 1 from agent where agen_agentid = agentid) then
select agen_agentid into agentid from agent order by idx limit 1;
end if;
-- 获取渠道商id
if not exists (select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
select agch_channelid into channelid from agent_channel where agch_agentid = agentid order by idx limit 1;
end if;
select agga_aliasname as name, agga_image as image, agga_state as state,
agga_gamememo as memo,
agga_ios_down as ios_down, agga_ios_size as ios_size,
agga_android_down as android_down, agga_android_size as android_size
from agent_game
where agga_agentid = agentid
and agga_channelid = channelid
order by idx;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_invitecodeinfo
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_invitecodeinfo`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_invitecodeinfo`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取玩家绑定的邀请码的代理信息'
begin
select p.saus_salesid, p.saus_nickname, p.saus_avatar
from sales_user as i
inner join sales_user as p on p.saus_agentid = agentid
and p.saus_salesid is not null
and p.saus_salesid = i.saus_invitecode
where i.saus_agentid = agentid
and i.saus_openid = openid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_myplayer
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_myplayer`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_myplayer`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '绑定了我的邀请码的玩家列表'
begin
declare salesid int(8);
set salesid = null;
select saus_salesid into salesid from sales_user
where saus_agentid = agentid and saus_openid = openid and saus_salesman = 1;
if not isnull(salesid) then
select play_playerid as playerid, play_nickname as nickname,
play_avatar as avatar, ifnull(v.money, 0) as money
from player
left join (select sabu_agentid, sabu_playerid, sum(sabu_paymoney) as money
from sales_buybill
where sabu_billtype = 0
and sabu_paystate = 1
and yearweek(date_format(sabu_paytime, '%Y-%m-%d')) = yearweek(now())
group by sabu_agentid, sabu_playerid
) as v
on v.sabu_agentid = play_agentid
and v.sabu_playerid = play_playerid
where play_agentid = agentid
and play_invitecode = salesid
order by playerid;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_mysalesman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_mysalesman`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_mysalesman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '我的下级代理列表'
begin
declare salesid int(8);
set salesid = null;
select saus_salesid into salesid from sales_user
where saus_agentid = agentid and saus_openid = openid and saus_salesman = 1;
if not isnull(salesid) then
select s1.saus_salesid as salesid, s1.saus_nickname as nickname, s1.saus_avatar as avatar,
ifnull(v1.salesmancount, 0) as salesmancount,
ifnull(v2.playercount, 0) as playercount
from sales_user as s1
left join (select s2.saus_parentid, count(1) as salesmancount
from sales_user as s2
where s2.saus_agentid = agentid
and s2.saus_salesman = 1
and s2.saus_parentid is not null
group by s2.saus_parentid
) as v1 on v1.saus_parentid = s1.saus_salesid
left join (select play_invitecode, count(1) as playercount
from player
where play_agentid = agentid
and play_invitecode is not null
group by play_invitecode
) as v2 on v2.play_invitecode = s1.saus_salesid
where s1.saus_agentid = agentid
and s1.saus_salesman = 1
and s1.saus_parentid = salesid;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_parentinfo
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_parentinfo`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_parentinfo`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取我的推荐人信息'
begin
select p.saus_salesid, p.saus_nickname, p.saus_avatar
from sales_user as i
inner join sales_user as p on p.saus_agentid = agentid
and p.saus_salesid is not null
and p.saus_salesid = i.saus_parentid
where i.saus_agentid = agentid
and i.saus_openid = openid
and i.saus_salesid is not null;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_topupname
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_topupname`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_topupname`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取充卡名单'
begin
select distinct(sase_playerid) as playerid, play_nickname as name,
play_avatar as avatar,
sum(sase_amount) as total, max(sase_selltime) as lastselltime
from sales_sellbill
inner join player on play_agentid = agentid
and play_playerid = sase_playerid
where sase_agentid = agentid
and sase_openid = openid
group by playerid, name, avatar
order by lastselltime desc;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_get_transfername
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_get_transfername`;
delimiter ;;
CREATE PROCEDURE `cp_sales_get_transfername`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取转卡名单'
begin
select distinct(satr_salesid) as salesid, saus_nickname as name,
saus_avatar as avatar,
sum(satr_amount) as total, max(satr_transfertime) as lasttransfertime
from sales_transferbill
inner join sales_user on saus_agentid = agentid
and saus_salesid = satr_salesid
where satr_agentid = agentid
and satr_openid = openid
group by salesid, name, avatar
order by lasttransfertime desc;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_new_award
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_new_award`;
delimiter ;;
CREATE PROCEDURE `cp_sales_new_award`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `salesid` int(8) ,IN `childid` int(8) ,IN `type` tinyint(1) ,IN `billcode` varchar(50) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '添加推荐人奖励'
begin
if type = 0 then
insert into sales_award (saaw_agentid, saaw_salesid, saaw_childid,
saaw_type, saaw_award, saaw_state, saaw_createtime)
values(agentid, salesid, childid, type, 100, 0, now());
else
insert into sales_award (saaw_agentid, saaw_salesid, saaw_childid,
saaw_type, saaw_buybill, saaw_award, saaw_state, saaw_createtime)
values(agentid, salesid, childid, type, billcode, 200, 0, now());
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_new_bill
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_new_bill`;
delimiter ;;
CREATE PROCEDURE `cp_sales_new_bill`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `billcode` varchar(100) charset utf8 collate utf8_general_ci ,IN `billtype` tinyint(1) ,IN `productid` varchar(32) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `tel` varchar(50) charset utf8 collate utf8_general_ci ,IN `wechat` varchar(50) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '新增一条购卡订单'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare username varchar(100); -- 微信公众号用户昵称
declare usersalesman tinyint(1); -- 微信公众号用户是否是个人代理
declare productname varchar(100); -- 产品名称
declare productamount int(11); -- 产品的房卡数量
declare productmoney decimal(10,2);-- 产品的所需金额
declare playername varchar(100); -- 充入者的昵称
declare playerroomcard int(11); -- 充入者的房卡数量
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验微信公众号用户
call cp_check_4_salesuser(agentid, openid, result, error, username, usersalesman);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验productid
call cp_check_5_product(agentid, productid, result, error, productname, productamount, productmoney);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验playerid
if (billtype = 0) then
call cp_check_2_player(agentid, playerid, result, error, playername, playerroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
end if;
-- 获取渠道商id
if not exists (select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
select agch_channelid into channelid from agent_channel where agch_agentid = agentid order by idx limit 1;
end if;
-- 保存订单
if (billtype = 0) then
insert into sales_buybill(sabu_agentid, sabu_openid, sabu_channelid, sabu_billcode, sabu_productid,
sabu_amount, sabu_money, sabu_createtime, sabu_billtype,
sabu_playerid, sabu_playername)
values(agentid, openid, channelid, billcode, productid, productamount, productmoney, now(),
billtype, playerid, playername);
else
insert into sales_buybill(sabu_agentid, sabu_openid, sabu_channelid, sabu_billcode, sabu_productid,
sabu_amount, sabu_money, sabu_createtime, sabu_billtype)
values(agentid, openid, channelid, billcode, productid, productamount, productmoney, now(), billtype);
-- 保存个人代理的联系方式
update sales_user set saus_tel = tel, saus_wechat = wechat where saus_agentid = agentid and saus_openid = openid;
end if;
-- 返回执行结果
select result, error, productname, productamount, productmoney, playername;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_pay_query
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_pay_query`;
delimiter ;;
CREATE PROCEDURE `cp_sales_pay_query`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `billcode` varchar(50) charset utf8 collate utf8_general_ci ,IN `paymoney` decimal(10,2) ,IN `appid` varchar(50) charset utf8 collate utf8_general_ci ,IN `devkey` varchar(50) charset utf8 collate utf8_general_ci ,IN `business_id` varchar(50) charset utf8 collate utf8_general_ci ,IN `parentid` int(8))
SQL SECURITY INVOKER
COMMENT '订单支付查询成功,修改实际支付金额'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare username varchar(100); -- 微信公众号用户昵称
declare usersalesman tinyint(1); -- 微信公众号用户是否是个人代理
declare billtype tinyint(1); -- 订单类型
declare playerid int(8); -- 充入者玩家id
declare playername varchar(100); -- 充入者昵称
declare amount int(11); -- 购卡数量
declare money decimal(10,2);-- 产品中的所需金额
declare paystate tinyint(1); -- 支付状态
declare roomcard int(11); -- 购卡后房卡数量
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验微信公众号用户
call cp_check_4_salesuser(agentid, openid, result, error, username, usersalesman);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验订单
call cp_check_6_buybill(agentid, billcode, result, error, billtype, playerid, playername, amount, money, paystate);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 修改实际支付金额
update sales_buybill set sabu_paymoney = paymoney,
sabu_appid = appid, sabu_devkey = devkey,
sabu_business_id = business_id
where sabu_agentid = agentid and sabu_billcode = billcode;
-- 返回执行结果
if (billtype = 0) then
-- 返回玩家购卡后的房卡数量
select play_roomcard into roomcard from player where play_agentid = agentid and play_playerid = playerid;
-- 返回执行结果
select result, error, billtype, playerid, playername, amount, roomcard;
else
-- 无推荐人
if isnull(parentid) or (parentid = '') or (parentid = 0) then
select result, error, billtype, saus_salesid as salesid,
saus_nickname as salesname, amount, saus_roomcard as roomcard
from sales_user where saus_agentid = agentid and saus_openid = openid;
else
select result, error, billtype, u.saus_salesid as salesid,
u.saus_nickname as salesname, amount, u.saus_roomcard as roomcard,
p.saus_salesid as parentid, p.saus_nickname as parentname
from sales_user as u
left join sales_user as p on p.saus_agentid = agentid
and p.saus_salesid = u.saus_parentid
where u.saus_agentid = agentid
and u.saus_openid = openid;
end if;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_pay_succ
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_pay_succ`;
delimiter ;;
CREATE PROCEDURE `cp_sales_pay_succ`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `billcode` varchar(50) charset utf8 collate utf8_general_ci ,IN `transid` varchar(100) charset utf8 collate utf8_general_ci ,IN `outtradeNo` varchar(100) charset utf8 collate utf8_general_ci ,IN `signkey` varchar(50) charset utf8 collate utf8_general_ci ,IN `paymoney` decimal(10,2) ,IN `parentid` int(8))
SQL SECURITY INVOKER
COMMENT '订单支付成功'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare username varchar(100); -- 微信公众号用户昵称
declare usersalesman tinyint(1); -- 微信公众号用户是否是个人代理
declare usersalesid int(8); -- 个人代理id
declare userparentid int(8); -- 上级个人代理id
declare billtype tinyint(1); -- 订单类型
declare playerid int(8); -- 充入者玩家id
declare playername varchar(100); -- 充入者昵称
declare amount int(11); -- 购卡数量
declare money decimal(10,2);-- 产品中的所需金额
declare paystate tinyint(1); -- 支付状态
declare roomcard int(11); -- 购卡后房卡数量
declare salesid int(8); -- 新代理id
declare salespower varchar(10); -- 默认的个人代理权限
declare salesid1 int(8); -- 玩家绑定的上一级个人代理id
declare salesid2 int(8); -- 玩家绑定的上二级个人代理id
declare pushrate1 int(4); -- 玩家的上一级代理的提成比例
declare pushrate2 int(4); -- 玩家的上二级代理的提成比例
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验微信公众号用户
call cp_check_4_salesuser(agentid, openid, result, error, username, usersalesman);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验订单
call cp_check_6_buybill(agentid, billcode, result, error, billtype, playerid, playername, amount, money, paystate);
if result > 0 then
select result, error;
leave label_cp;
end if;
if paystate = 1 then
set result = 11;
set error = '订单已支付';
select result, error;
leave label_cp;
end if;
-- 获取渠道商id
if not exists (select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
select agch_channelid into channelid from agent_channel where agch_agentid = agentid order by idx limit 1;
end if;
-- 检验signkey
if not exists(select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid and agch_youle_signkey = signkey) then
set result = 12;
set error = '微信支付签名不正确';
select result, error;
leave label_cp;
end if;
-- 修改订单状态
update sales_buybill set sabu_paystate = 1, sabu_paytime = now(),
sabu_transid = transid, sabu_outtradeNo = outtradeNo,
sabu_signkey = signkey, sabu_paymoney = paymoney
where sabu_agentid = agentid and sabu_billcode = billcode;
-- 统计总流水
update agent set agen_selftotal = agen_selftotal + paymoney where agen_agentid = agentid;
-- 按日期统计房卡销售金额
call cp_report_agent_day(agentid, 3, paymoney);
-- 检验支付金额
if paymoney <> money then
set result = 13;
set error = '支付金额不正确';
select result, error;
leave label_cp;
end if;
-- 完成购买任意金额房卡的任务
call cp_sales_finish_task(agentid, openid, null, 'heB1piC7b8M4nfifn34k9ouV2qL9osTM');
if (billtype = 0) then
-- 修改玩家房卡数量
update player set play_roomcard = play_roomcard + amount
where play_agentid = agentid and play_playerid = playerid;
-- 返回玩家购卡后的房卡数量
select play_roomcard into roomcard from player
where play_agentid = agentid and play_playerid = playerid;
-- 统计绑定的个人代理的提成
select play_invitecode into salesid1
from player
where play_agentid = agentid and play_playerid = playerid;
if not isnull(salesid1) then
select saus_parentid, saus_pushrate1 into salesid2, pushrate1
from sales_user
where saus_agentid = agentid and saus_salesid = salesid1;
update sales_buybill set sabu_pushsalesid1 = salesid1,
sabu_pushrate1 = pushrate1,
sabu_pushmoney1 = if(isnull(pushrate1), null, paymoney * pushrate1 / 100)
where sabu_agentid = agentid and sabu_billcode = billcode;
if not isnull(pushrate1) then
update sales_user set saus_pushmoney1 = saus_pushmoney1 + paymoney * pushrate1 / 100
where saus_agentid = agentid and saus_salesid = salesid1;
end if;
if not isnull(salesid2) then
select saus_pushrate2 into pushrate2
from sales_user
where saus_agentid = agentid and saus_salesid = salesid2;
update sales_buybill set sabu_pushsalesid2 = salesid2,
sabu_pushrate2 = pushrate2,
sabu_pushmoney2 = if(isnull(pushrate2), null, paymoney * pushrate2 / 100)
where sabu_agentid = agentid and sabu_billcode = billcode;
if not isnull(pushrate2) then
update sales_user set saus_pushmoney2 = saus_pushmoney2 + paymoney * pushrate2 / 100
where saus_agentid = agentid and saus_salesid = salesid2;
end if;
end if;
end if;
-- 返回执行结果
select result, error, billtype, playerid, playername, amount, roomcard;
else
if (usersalesman = 0) then
-- 新个人代理
update agent set agen_maxsalesid = agen_maxsalesid + floor(rand() * (12-6) + 6) where agen_agentid = agentid;
select agen_maxsalesid, agen_salespower
into salesid, salespower
from agent
where agen_agentid = agentid;
-- 无推荐人
if isnull(parentid) or (parentid = '') or (parentid = 0) then
update sales_user set saus_roomcard = saus_roomcard + amount,
saus_salesman = 1, saus_salesid = salesid,
saus_level = 0, saus_saletime = now(),
saus_salestype = 1, saus_power = salespower
where saus_agentid = agentid and saus_openid = openid;
else -- 有推荐人
update sales_user set saus_roomcard = saus_roomcard + amount,
saus_salesman = 1, saus_salesid = salesid,
saus_saletime = now(),
saus_salestype = 1, saus_power = salespower,
saus_parentid = parentid
where saus_agentid = agentid and saus_openid = openid;
-- 推荐人奖励
call cp_sales_new_award(agentid, parentid, salesid, 0, billcode);
end if;
-- 按日期统计新增个人代理人数
call cp_report_agent_day(agentid, 1, 1);
else
-- 老个人代理
update sales_user set saus_roomcard = saus_roomcard + amount
where saus_agentid = agentid and saus_openid = openid;
-- 推荐人的奖励
select saus_salesid, saus_parentid into usersalesid, userparentid
from sales_user where saus_agentid = agentid and saus_openid = openid;
if not isnull(userparentid) then
call cp_sales_new_award(agentid, userparentid, usersalesid, 1, billcode);
end if;
end if;
-- 返回执行结果
select result, error, billtype;
end if;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_player_binding_invitecode
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_player_binding_invitecode`;
delimiter ;;
CREATE PROCEDURE `cp_sales_player_binding_invitecode`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `invitecode` int(8))
SQL SECURITY INVOKER
COMMENT '玩家自动绑定邀请码'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare salesid int(8);
declare nickname varchar(100);
declare avatar varchar(200);
declare wechat varchar(50);
declare tel varchar(20);
declare myinvitecode int(8); -- 已经绑定的邀请码
-- 检验邀请码是否存在
select saus_salesid, saus_nickname, saus_avatar, saus_wechat, saus_tel
into salesid, nickname, avatar, wechat, tel
from sales_user
where saus_agentid = agentid
and saus_salesid = invitecode
and saus_salesman = 1;
if isnull(salesid) then
set result = 1;
set error = '邀请码不存在';
select result, error;
leave label_cp;
end if;
-- 检查是否已经绑定了邀请码
select saus_invitecode into myinvitecode
from sales_user
where saus_agentid = agentid
and saus_openid = openid;
if isnull(myinvitecode) then
update sales_user
set saus_invitecode = invitecode
where saus_agentid = agentid
and saus_openid = openid;
set result = 0;
set error = '绑定邀请码成功';
else
set result = 2;
set error = '已经绑定过邀请码,不能再次绑定';
select saus_salesid, saus_nickname, saus_avatar, saus_wechat, saus_tel
into salesid, nickname, avatar, wechat, tel
from sales_user
where saus_agentid = agentid
and saus_salesid = myinvitecode
and saus_salesman = 1;
end if;
select result, error, salesid, nickname, avatar, wechat, tel;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_query_player
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_query_player`;
delimiter ;;
CREATE PROCEDURE `cp_sales_query_player`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `playerid` int(8))
SQL SECURITY INVOKER
COMMENT '通过玩家id查询玩家昵称和房卡数量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare roomcard int(11); -- 个人代理房卡数量
declare playername varchar(100); -- 充入者的昵称
declare playerroomcard int(11); -- 充入者的房卡数量
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验是否是个人代理
call cp_check_7_salesman(agentid, openid, result, error, roomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验playerid
call cp_check_2_player(agentid, playerid, result, error, playername, playerroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
select result, error, playerid, playername, playerroomcard;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_query_player_bean
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_query_player_bean`;
delimiter ;;
CREATE PROCEDURE `cp_sales_query_player_bean`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `playerid` int(8))
SQL SECURITY INVOKER
COMMENT '通过玩家id查询玩家昵称和房卡数量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare _playerid int(8);
declare playername varchar(100); -- 玩家的昵称
declare playerbean int(11); -- 玩家的星星数量
set result = 0;
-- 检验agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '运营商不存在';
select result, error;
leave label_cp;
end if;
-- 检验是否是个人代理
if not exists(select 1 from sales_user where saus_agentid = agentid and saus_openid = openid and saus_salesman = 1) then
set result = 7;
set error = '您不是个人代理';
select result, error;
leave label_cp;
end if;
-- 检验playerid
select play_playerid, play_nickname, play_bean into _playerid, playername, playerbean
from player
where play_agentid = agentid and play_playerid = playerid;
if isnull(_playerid) then
set result = 2;
set error = '玩家不存在';
select result, error;
leave label_cp;
end if;
select result, error, playerid, playername, playerbean;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_query_salesman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_query_salesman`;
delimiter ;;
CREATE PROCEDURE `cp_sales_query_salesman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `salesid` int(8))
SQL SECURITY INVOKER
COMMENT '通过个人代理id查询个人代理昵称和房卡数量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare roomcard int(11); -- 用户的房卡数量
declare salesname varchar(100); -- 查询的个人代理昵称
declare salesroomcard int(11); -- 查询的个人代理房卡数量
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验用户是否是个人代理
call cp_check_7_salesman(agentid, openid, result, error, roomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验salesid
call cp_check_9_salesman(agentid, salesid, result, error, salesname, salesroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
select result, error, salesid, salesname, salesroomcard;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_topup_player
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_topup_player`;
delimiter ;;
CREATE PROCEDURE `cp_sales_topup_player`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `amount` int(11))
SQL SECURITY INVOKER
COMMENT '个人代理给玩家充卡'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare roomcard int(11); -- 个人代理房卡数量
declare playername varchar(100); -- 充入者的昵称
declare playerroomcard int(11); -- 充入者的房卡数量
declare salespower varchar(10); -- 个人代理的权限
declare topuppower varchar(1); -- 给玩家充值权限
declare playerinvitecode int(8); -- 充入者绑定的邀请码
declare mysalesid int(8); -- 我的个人代理id
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验是否是个人代理
call cp_check_7_salesman(agentid, openid, result, error, roomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验playerid
call cp_check_2_player(agentid, playerid, result, error, playername, playerroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验个人代理的房卡数量是否够
if roomcard < amount then
set result = 11;
set error = '房卡数量不足';
select result, error;
leave label_cp;
end if;
-- 充卡数量不能是负数
if amount < 0 then
set result = 12;
set error = '充卡数量必须大于0';
select result, error;
leave label_cp;
end if;
-- 判断是否有给玩家充值的权限
select saus_salesid, saus_power
into mysalesid, salespower
from sales_user
where saus_agentid = agentid
and saus_openid = openid;
if isnull(salespower) then
select agen_salespower
into salespower
from agent
where agen_agentid = agentid;
end if;
set topuppower = substring(salespower, 2, 1);
if topuppower = '0' then
set result = 13;
set error = '您没有给玩家充卡的权限';
select result, error;
leave label_cp;
end if;
if topuppower = '1' then
select play_invitecode into playerinvitecode
from player
where play_agentid = agentid
and play_playerid = playerid;
if isnull(playerinvitecode) or (playerinvitecode <> mysalesid) then
set result = 14;
set error = '只能给绑定了自己邀请码的玩家充卡';
select result, error;
leave label_cp;
end if;
end if;
-- 保存充卡记录
insert into sales_sellbill(sase_agentid, sase_openid, sase_playerid,
sase_amount, sase_selltime)
values(agentid, openid, playerid, amount, now());
-- 修改个人代理的房卡数量
update sales_user set saus_roomcard = saus_roomcard - amount
where saus_agentid = agentid and saus_openid = openid;
select saus_roomcard into roomcard from sales_user
where saus_agentid = agentid and saus_openid = openid;
-- 修改玩家的房卡数量
update player set play_roomcard = play_roomcard + amount
where play_agentid = agentid and play_playerid = playerid;
select play_roomcard into playerroomcard from player
where play_agentid = agentid and play_playerid = playerid;
-- 返回执行结果
select result, error, roomcard, amount, playerid, playername, playerroomcard;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_topup_player_bean
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_topup_player_bean`;
delimiter ;;
CREATE PROCEDURE `cp_sales_topup_player_bean`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `playerid` int(8) ,IN `amount` int(11))
SQL SECURITY INVOKER
COMMENT '个人代理给玩家充星星'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentsalespower varchar(10); -- 代理商设置的默认权限
declare salesid int(8); -- 我的个人代理id
declare salespower varchar(10); -- 个人代理的权限
declare topuppower varchar(1); -- 给玩家充星星权限
declare salesbean int(11); -- 个人代理星星数量
declare _playerid int(8); -- 玩家id
declare playername varchar(100); -- 玩家昵称
declare playerbean int(11); -- 玩家星星数量
declare playerinvitecode int(8); -- 玩家绑定的邀请码
set result = 0;
-- 检验agentid
set agentsalespower = '';
select agen_salespower into agentsalespower from agent where agen_agentid = agentid;
if isnull(agentsalespower) then
set result = 1;
set error = '运营商不存在';
select result, error;
leave label_cp;
end if;
-- 检验是否是个人代理
select saus_salesid, saus_power, saus_bean into salesid, salespower, salesbean
from sales_user
where saus_agentid = agentid and saus_openid = openid and saus_salesman = 1;
if isnull(salesid) then
set result = 7;
set error = '您不是个人代理';
select result, error;
leave label_cp;
end if;
-- 检验playerid
select play_playerid, play_nickname, play_invitecode into _playerid, playername, playerinvitecode
from player
where play_agentid = agentid and play_playerid = playerid;
if isnull(_playerid) then
set result = 2;
set error = '玩家不存在';
select result, error;
leave label_cp;
end if;
-- 充值数量不能是负数
if amount < 0 then
set result = 12;
set error = '充值数量必须大于0';
select result, error;
leave label_cp;
end if;
-- 检验个人代理的星星数量是否够
if salesbean < amount then
set result = 11;
set error = '星星数量不足';
select result, error;
leave label_cp;
end if;
-- 判断是否有给玩家充值的权限
if isnull(salespower) then
set salespower = agentsalespower;
end if;
set topuppower = substring(salespower, 3, 1);
if topuppower = '' or topuppower = '0' then
set result = 13;
set error = '您没有给玩家充值的权限';
select result, error;
leave label_cp;
end if;
if topuppower = '1' then
if isnull(playerinvitecode) or (playerinvitecode <> salesid) then
set result = 14;
set error = '只能给绑定了自己邀请码的玩家充值星星';
select result, error;
leave label_cp;
end if;
end if;
-- 保存充卡记录
insert into sales_sellbill_bean(
ssbe_agentid, ssbe_openid, ssbe_playerid, ssbe_amount, ssbe_selltime)
values(agentid, openid, playerid, amount, now());
-- 修改个人代理的星星数量
update sales_user set saus_bean = saus_bean - amount
where saus_agentid = agentid and saus_openid = openid;
select saus_bean into salesbean from sales_user
where saus_agentid = agentid and saus_openid = openid;
-- 修改玩家的房卡数量
update player set play_bean = play_bean + amount
where play_agentid = agentid and play_playerid = playerid;
select play_bean into playerbean from player
where play_agentid = agentid and play_playerid = playerid;
-- 返回执行结果
select result, error, salesbean, amount, playerid, playername, playerbean;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_topup_salesman
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_topup_salesman`;
delimiter ;;
CREATE PROCEDURE `cp_sales_topup_salesman`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `salesid` int(8) ,IN `amount` int(11))
SQL SECURITY INVOKER
COMMENT '个人代理给其他个人代理转卡'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare agentname varchar(100); -- 代理商名称
declare roomcard int(11); -- 个人代理房卡数量
declare salesname varchar(100); -- 转入的个人代理昵称
declare salesroomcard int(11); -- 转入的个人代理房卡数量
declare salespower varchar(10);-- 个人代理的权限
declare topuppower varchar(1); -- 转卡权限
declare parentid int(8); -- 充入者的上级代理id
declare mysalesid int(8); -- 我的个人代理id
set result = 0;
-- 检验agentid
call cp_check_1_agent(agentid, result, error, agentname);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验是否是个人代理
call cp_check_7_salesman(agentid, openid, result, error, roomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验salesid
call cp_check_9_salesman(agentid, salesid, result, error, salesname, salesroomcard);
if result > 0 then
select result, error;
leave label_cp;
end if;
-- 检验个人代理的房卡数量是否够
if roomcard < amount then
set result = 11;
set error = '房卡数量不足';
select result, error;
leave label_cp;
end if;
-- 转卡数量不能是负数
if amount < 0 then
set result = 12;
set error = '转卡数量必须大于0';
select result, error;
leave label_cp;
end if;
-- 判断是否有给转卡的权限
select saus_salesid, saus_power
into mysalesid, salespower
from sales_user
where saus_agentid = agentid
and saus_openid = openid;
if isnull(salespower) then
select agen_salespower
into salespower
from agent
where agen_agentid = agentid;
end if;
set topuppower = substring(salespower, 1, 1);
if topuppower = '0' then
set result = 13;
set error = '您没有给其他代理转卡的权限';
select result, error;
leave label_cp;
end if;
if topuppower = '1' then
select saus_parentid into parentid
from sales_user
where saus_agentid = agentid
and saus_salesid = salesid;
if isnull(parentid) or (parentid <> mysalesid) then
set result = 14;
set error = '只能给绑定了自己邀请码的子代理转卡';
select result, error;
leave label_cp;
end if;
end if;
-- 保存转卡记录
insert into sales_transferbill(satr_agentid, satr_openid, satr_salesid,
satr_amount, satr_transfertime)
values(agentid, openid, salesid, amount, now());
-- 修改转出的个人代理的房卡数量
update sales_user set saus_roomcard = saus_roomcard - amount
where saus_agentid = agentid and saus_openid = openid;
select saus_roomcard into roomcard from sales_user
where saus_agentid = agentid and saus_openid = openid;
-- 修改转入的个人代理的房卡数量
update sales_user set saus_roomcard = saus_roomcard + amount
where saus_agentid = agentid and saus_salesid = salesid;
select saus_roomcard into salesroomcard from sales_user
where saus_agentid = agentid and saus_salesid = salesid;
-- 返回执行结果
select result, error, roomcard, amount, salesid, salesname, salesroomcard;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_update_mywechat
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_update_mywechat`;
delimiter ;;
CREATE PROCEDURE `cp_sales_update_mywechat`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `wechat` varchar(50) charset utf8 collate utf8_general_ci ,IN `tel` varchar(20) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '修改个人代理的联系方式'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
set result = 0;
-- 检验agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = '运营商id不存在';
select result, error;
leave label_cp;
end if;
-- 检验微信公众号用户
if not exists(select 1 from sales_user where saus_agentid = agentid and saus_openid = openid) then
set result = 2;
set error = '用户不存在';
select result, error;
leave label_cp;
end if;
update sales_user set saus_wechat = wechat, saus_tel = tel
where saus_agentid = agentid and saus_openid = openid;
-- 返回执行结果
select result, error;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_sales_user_login
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_sales_user_login`;
delimiter ;;
CREATE PROCEDURE `cp_sales_user_login`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,IN `sex` tinyint(1) ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '微信公众号用户登录'
begin
declare old_openid varchar(100);
declare salesman tinyint(1);
declare salesid int(8);
declare saleslevel int(4);
declare salestype tinyint(1);
declare roomcard int(11);
declare bean int(11);
declare pushmoney decimal(10,2);
declare salespower varchar(10);
declare playerask tinyint(1);
declare salesask tinyint(1);
declare invitecode int(8);
-- 获取代理商id
if not exists (select 1 from agent where agen_agentid = agentid) then
select agen_agentid into agentid from agent order by idx limit 1;
end if;
-- 获取渠道商id
if not exists (select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
select agch_channelid into channelid from agent_channel where agch_agentid = agentid order by idx limit 1;
end if;
-- 获取用户信息
select saus_openid, saus_salesman, saus_salesid, saus_level, saus_salestype,
saus_roomcard, saus_bean, saus_power, saus_invitecode,
ifnull(saus_pushmoney1, 0) + ifnull(saus_pushmoney2, 0)
into old_openid, salesman, salesid, saleslevel, salestype,
roomcard, bean, salespower, invitecode, pushmoney
from sales_user
where saus_agentid = agentid
and saus_unionid = unionid;
if isnull(old_openid) then
-- 新用户
insert into sales_user (saus_agentid, saus_channelid, saus_openid, saus_unionid,
saus_nickname, saus_avatar, saus_sex, saus_province,
saus_city, saus_firsttime, saus_lasttime)
values (agentid, channelid, openid, unionid, nickname, avatar, sex, province, city, now(), now());
else
-- 老用户
update sales_user set saus_openid = openid, saus_nickname = nickname,
saus_avatar = avatar, saus_sex = sex,
saus_province = province, saus_city = city,
saus_lasttime = now()
where saus_agentid = agentid and saus_unionid = unionid;
-- 更换了授权后openid会发生变化
if openid <> old_openid then
update sales_buybill set sabu_openid = openid where sabu_agentid = agentid and sabu_openid = old_openid;
update sales_sellbill set sase_openid = openid where sase_agentid = agentid and sase_openid = old_openid;
update sales_sellbill_bean set ssbe_openid = openid where ssbe_agentid = agentid and ssbe_openid = old_openid;
update sales_transferbill set satr_openid = openid where satr_agentid = agentid and satr_openid = old_openid;
end if;
end if;
select saus_openid, saus_salesman, saus_salesid, saus_level, saus_salestype,
saus_roomcard, saus_bean, saus_power, saus_invitecode,
ifnull(saus_pushmoney1, 0) + ifnull(saus_pushmoney2, 0)
into old_openid, salesman, salesid, saleslevel, salestype,
roomcard, bean, salespower, invitecode, pushmoney
from sales_user
where saus_agentid = agentid
and saus_unionid = unionid;
if salesman = 1 then
-- 获取是否有新的玩家索要房卡记录
if exists(select 1 from sales_ask_bill
where saab_agentid = agentid
and saab_salesid = salesid
and saab_state = 0
and saab_type = 0) then
set playerask = 1;
else
set playerask = 0;
end if;
-- 获取是否有新的代理索要房卡记录
if exists(select 1 from sales_ask_bill
where saab_agentid = agentid
and saab_salesid = salesid
and saab_state = 0
and saab_type = 1) then
set salesask = 1;
else
set salesask = 0;
end if;
end if;
-- 完成关注公众号的任务
call cp_sales_finish_task(agentid, null, unionid, 'lXA1XUuHPvKyupdGlbQI4y5D37Kbgodo');
-- 看是否绑定过邀请码
if isnull(invitecode) then
select play_invitecode into invitecode
from player
where play_agentid = agentid
and play_unionid = unionid;
if not isnull(invitecode) then
update sales_user set saus_invitecode = invitecode
where saus_agentid = agentid
and saus_unionid = unionid;
end if;
end if;
-- 返回结果
select salesman, salesid, saleslevel, salestype, roomcard, bean,
salespower, playerask, salesask, pushmoney;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_third_change_roomcard
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_third_change_roomcard`;
delimiter ;;
CREATE PROCEDURE `cp_third_change_roomcard`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `amount` int(11))
SQL SECURITY INVOKER
COMMENT '修改房卡数量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare playerid int(8); -- 玩家id
declare roomcard int(11); -- 玩家房卡数量
-- 检查agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = 'a参数错误';
select result, error;
leave label_cp;
end if;
-- 检查channelid
if not exists(select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
set result = 2;
set error = 'c参数错误';
select result, error;
leave label_cp;
end if;
-- 检查gameid
if not exists(select 1 from game where game_gameid = gameid) then
set result = 3;
set error = 'g参数错误';
select result, error;
leave label_cp;
end if;
-- 检查玩家
select play_roomcard into roomcard
from player
where play_agentid = agentid and play_unionid = unionid;
if isnull(roomcard) then
set result = 4;
set error = '玩家不存在';
select result, error;
leave label_cp;
end if;
if amount > 0 then
set result = 5;
set error = '没有该权限';
select result, error;
leave label_cp;
end if;
-- 检查房卡数量是否够
if roomcard < -1 * amount then
set result = 6;
set error = '玩家房卡数量不够';
select result, error;
leave label_cp;
end if;
update player set play_roomcard = play_roomcard + amount
where play_agentid = agentid and play_unionid = unionid;
-- 返回执行结果
set result = 0;
set error = '';
select result, error, play_playerid as playerid, play_roomcard as roomcard, amount
from player
where play_agentid = agentid and play_unionid = unionid;
end
;;
delimiter ;
-- ----------------------------
-- Procedure structure for cp_third_get_roomcard
-- ----------------------------
DROP PROCEDURE IF EXISTS `cp_third_get_roomcard`;
delimiter ;;
CREATE PROCEDURE `cp_third_get_roomcard`(IN `agentid` varchar(32) charset utf8 collate utf8_general_ci ,IN `channelid` varchar(32) charset utf8 collate utf8_general_ci ,IN `gameid` varchar(32) charset utf8 collate utf8_general_ci ,IN `openid` varchar(100) charset utf8 collate utf8_general_ci ,IN `unionid` varchar(100) charset utf8 collate utf8_general_ci ,IN `nickname` varchar(100) charset utf8 collate utf8_general_ci ,IN `avatar` varchar(200) charset utf8 collate utf8_general_ci ,IN `sex` int(11) ,IN `province` varchar(100) charset utf8 collate utf8_general_ci ,IN `city` varchar(100) charset utf8 collate utf8_general_ci)
SQL SECURITY INVOKER
COMMENT '获取房卡数量'
label_cp: begin
declare result tinyint(1); -- 0:成功 >0:失败
declare error varchar(100); -- 失败描述
declare playerid int(8); -- 玩家id
declare roomcard int(11); -- 玩家房卡数量
-- 检查agentid
if not exists(select 1 from agent where agen_agentid = agentid) then
set result = 1;
set error = 'a参数错误';
select result, error;
leave label_cp;
end if;
-- 检查channelid
if not exists(select 1 from agent_channel where agch_agentid = agentid and agch_channelid = channelid) then
set result = 2;
set error = 'c参数错误';
select result, error;
leave label_cp;
end if;
-- 检查gameid
if not exists(select 1 from game where game_gameid = gameid) then
set result = 3;
set error = 'g参数错误';
select result, error;
leave label_cp;
end if;
-- 检查是否是新玩家
select play_playerid, play_roomcard
into playerid, roomcard
from player
where play_agentid = agentid
and play_unionid = unionid;
if isnull(playerid) then
-- 新玩家
update agent set agen_maxplayerid = agen_maxplayerid + 1 where agen_agentid = agentid;
select agen_maxplayerid into playerid from agent where agen_agentid = agentid;
insert into player(play_agentid, play_playerid, play_channelid, play_openid,
play_unionid, play_nickname, play_avatar, play_sex,
play_province, play_city, play_regtime, play_lasttime)
values(agentid, playerid, channelid, openid, unionid, nickname, avatar, sex, province, city, now(), now());
select play_roomcard
into roomcard
from player
where play_agentid = agentid
and play_unionid = unionid;
-- 按日期统计新增玩家数量
call cp_report_agent_day(agentid, 0, 1);
else
-- 老玩家
update player set play_nickname = nickname, play_avatar = avatar, play_openid = openid,
play_sex = sex, play_province = province, play_city = city,
play_logindate = play_logindate + if(datediff(now(), play_lasttime) = 0, 0, 1),
play_lasttime = now()
where play_agentid = agentid
and play_unionid = unionid;
end if;
-- 统计玩家的最后登录时间和累积登录天数
if not exists(select 1 from agent_game_player
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid) then
insert into agent_game_player(agpl_agentid, agpl_gameid, agpl_playerid, agpl_openid, agpl_firsttime, agpl_lasttime)
values(agentid, gameid, playerid, openid, now(), now());
-- 按日期统计新增玩家数量
call cp_report_game_day(agentid, gameid, now(), 0, 1, null);
else
update agent_game_player
set agpl_logindate = agpl_logindate + if(datediff(now(), agpl_lasttime) = 0, 0, 1),
agpl_lasttime = now()
where agpl_agentid = agentid
and agpl_gameid = gameid
and agpl_playerid = playerid;
end if;
-- 返回执行结果
set result = 0;
set error = '';
select result, error, playerid, roomcard;
end
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;