USE [GameCenterDB]
GO
/****** Object: StoredProcedure [dbo].[Game_AllUser_SetGameStatus] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_AllUser_SetGameStatus]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 设置游戏信息(在线、离线)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_AllUser_SetGameStatus]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@ServerName NVARCHAR(32), --服务器名称
@IsOnline TINYINT, --是否在线(1=在线 0=离线)
@IsChip TINYINT = 0 --是否元宝(0=休闲 1=元宝)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @LoginTime DATETIME --登录时间
--非法参数
IF(@IsOnline IS NULL OR @IsOnline NOT IN (0, 1))
RETURN
--机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
RETURN
--在线
IF(@IsOnline = 1)
BEGIN
--在线数据
IF EXISTS(SELECT UserID FROM [t_onlineuser] WHERE UserID = @UserID)
BEGIN
--清理在线数据
DELETE FROM [t_onlineuser] WHERE Userid = @UserID
END
--记录在线
INSERT INTO [t_onlineuser]
(
UserID, ServerName, LoginTime, GameID, IsChip
)
VALUES
(
@UserID, @ServerName, GETDATE(), @GameID, @IsChip
)
--添加在线用户日志
INSERT INTO [t_onlinelog]
(
UserID, GameID, ServerName, Crdate, IsChip
)
VALUES
(
@UserID, @GameID, @ServerName, GETDATE(), @IsChip
)
--更新登录时间
UPDATE
[t_onlinetime]
SET
LoginTime = GETDATE(),
TodaySeconds = CASE
WHEN LoginTime < CONVERT(CHAR(10), GETDATE(), 120) THEN 0
ELSE TodaySeconds
END
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--初始化
INSERT INTO [t_onlinetime]
(
UserID, TotalSeconds, TodaySeconds, LoginTime
)
VALUES
(
@UserID, 0, 0, GETDATE()
)
END
--更新登录时间
UPDATE [AgentMember] SET LoginTime = GETDATE() WHERE UserID = @UserID
END
--离开游戏,进入大厅
ELSE IF(@IsOnline = 0 AND @GameID > 0)
BEGIN
UPDATE
[t_onlineuser]
SET
GameID = 0, LoginTime = GETDATE(), ServerName = N'游戏大厅', IsChip = @IsChip
WHERE
UserID = @UserID
END
--退出元宝大厅,进入休闲大厅
ELSE IF(@IsOnline = 0 AND @GameID = 0 AND @IsChip = 1)
BEGIN
UPDATE
[t_onlineuser]
SET
GameID = 0, LoginTime = GETDATE(), ServerName = N'游戏大厅', IsChip = 0
WHERE
UserID = @UserID
END
--离线
ELSE
BEGIN
--删除在线
DELETE FROM [t_onlineuser] WHERE UserID = @UserID
--添加在线用户日志
INSERT INTO [t_onlinelog]
(
UserID, GameID, ServerName, Crdate, IsChip
)
VALUES
(
@UserID, @GameID, @ServerName, GETDATE(), @IsChip
)
--计算时长
UPDATE
[t_onlinetime]
SET
TotalSeconds = TotalSeconds + DATEDIFF(SECOND, LoginTime, GETDATE()),
TodaySeconds = TodaySeconds + DATEDIFF(SECOND, LoginTime, GETDATE())
WHERE
UserID = @UserID
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_BetCount_Write] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_BetCount_Write]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 下注局数
-- ==============================================
CREATE PROCEDURE [dbo].[Game_BetCount_Write]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@BetSecBefore INT, --结算前几秒下注的
@PlayCount INT --游戏局数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @BetTime DATETIME --下注时间
SET @BetTime = DATEADD(SECOND, -@BetSecBefore, GETDATE())
--游戏下注局数
INSERT INTO [UserBetCount]
(
UserID, GameID, PlayCount, BetTime
)
VALUES
(
@UserID, @GameID, @PlayCount, @BetTime
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_BetRecord_Write] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--EXEC [Game_BetRecord_Write]
-- ==============================================
-- Author: wolf
-- Create Date: 2019-06-24
-- Mendor: wolf
-- Alter Date: 2019-07-11
-- Description: 服务器游戏写记录
-- ============================================
CREATE PROCEDURE [dbo].[Game_BetRecord_Write]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@BetSecBefore INT, --结算前几秒下注的
@BetAmount BIGINT, --下注金额
@BetZone VARCHAR(128), --下注描述
@ResultAmount BIGINT, --输赢
@ResultZone VARCHAR(1024), --结果描述
@Tax BIGINT, --产生税收
@Odds DECIMAL(10, 2), --赔率(百为基数)
@TransType VARCHAR(32),
@IpAddress VARCHAR(16), --IP地址
@ServerName NVARCHAR(32) --房间名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @BetTime DATETIME --下注时间
DECLARE @RecordID VARCHAR(32) --记录ID
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Amount BIGINT --金币数
DECLARE @Bank BIGINT --保险柜
DECLARE @PartnerID INT --渠道ID
DECLARE @WinCount INT --赢局数
DECLARE @WinAmount BIGINT
DECLARE @InvestAmount BIGINT --投注额
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
DECLARE @FreeType INT --免费类型
DECLARE @ChipAmount BIGINT --筹码数量
DECLARE @RetCode TINYINT
DECLARE @LogType INT --日志类型
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @ChipSend BIGINT --筹码赠送
SET @CurrTime = GETDATE()
SET @BetTime = DATEADD(SECOND, -@BetSecBefore, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @RecordID = ''
SET @WinCount = 0
SET @InvestAmount = 0
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
IF(@UserID <= 0)
RETURN
--机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
RETURN
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @RecordID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
--组装成有序的订单
SET @RecordID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(VARCHAR(16), GETDATE(), 114), ':', '') + SUBSTRING(@RecordID, 1, 2)
--添加下注信息
INSERT INTO [Bet]
(
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, Tax, StillAmount, Status
)
VALUES
(
@RecordID, @UserID, @GameID, @TransType, @BetAmount, @BetTime, @BetZone, @Odds,
@ResultAmount, @CurrTime, @ResultZone, @Tax, @Amount, 2
)
--计算赢局数
SET @WinCount = CASE WHEN @ResultAmount - @BetAmount > 0 THEN 1 ELSE 0 END
--SET @WinAmount = @ResultAmount - @BetAmount
SET @WinAmount = CASE WHEN @ResultAmount > 0 THEN @ResultAmount ELSE 0 END
--Match=比赛场、PrivateRoom=私人场
SET @ServerName = CASE
WHEN @BetZone IN ('PrivateRoom', 'Match') THEN @BetZone
ELSE @ServerName
END
--统计每日流水
UPDATE
[DailyBetStat]
SET
BetAmount = BetAmount + @BetAmount, ResultAmount = ResultAmount + @ResultAmount,
WinAmount = WinAmount + @WinAmount,
TotalCount = TotalCount + 1, WinCount = WinCount + @WinCount
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID AND ServerName = @ServerName
--当天无流水
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [DailyBetStat]
(
DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
)
VALUES
(
@DateFlag, @UserID, @GameID, @ServerName, @BetAmount, @ResultAmount, @WinAmount,
0, 0, 1, @WinCount, 0
)
END
UPDATE
[UserGameCount]
SET
TotalCount = TotalCount + 1, WinCount = WinCount + @WinCount,
MaxWinAmount = CASE
WHEN @ResultAmount - @BetAmount > MaxWinAmount THEN @ResultAmount - @BetAmount
ELSE MaxWinAmount
END
WHERE
UserID = @UserID AND GameID = @GameID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserGameCount]
(
UserID, GameID, TotalCount, WinCount, MaxWinAmount, CardStat
)
VALUES
(
@UserID, @GameID, 1, @WinCount, CASE WHEN @ResultAmount - @BetAmount > 0 THEN @ResultAmount - @BetAmount ELSE 0 END, ''
)
END
--最大赢金
UPDATE
[UserMaxWin]
SET
WinAmount = CASE WHEN @WinAmount > WinAmount THEN @WinAmount ELSE WinAmount END
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserMaxWin]
(
DateFlag, UserID, WinAmount
)
VALUES
(
@DateFlag, @UserID, @WinAmount
)
END
--投注额
EXEC [Game_Score_Cal] @UserID = @UserID, @GameID = @GameID, @ServerName = @ServerName, @BetAmount = @BetAmount
IF(@GameID IN (50, 51, 52, 55, 56, 57, 58, 87))
BEGIN
SET @StartIndex = 1
SET @EndIndex = 0
SET @EndIndex = CHARINDEX('|', @BetZone, @StartIndex)
IF(@EndIndex > 0)
BEGIN
SET @BetAmount = CAST(SUBSTRING(@BetZone, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
SET @StartIndex = @EndIndex + 1
SET @FreeType = CAST(SUBSTRING(@BetZone, @StartIndex, LEN(@BetZone) - @StartIndex + 1) AS INT)
SET @InvestAmount = @BetAmount + CASE WHEN @FreeType = 0 THEN 3 WHEN @FreeType = 1 THEN 4 ELSE 0 END
END
--数据监控
EXEC [Game_Slot_Trigger] @UserID = @UserID, @GameID = @GameID, @BetAmount = @BetAmount,
@ResultAmount = @ResultAmount, @WinAmount = @WinAmount, @Tax = @Tax, @InvestAmount = @InvestAmount
END
/*
--非免费
IF(CHARINDEX('|', @BetZone) = 0)
BEGIN
--用户信息
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
--非游客用户
IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.' )
BEGIN
--统计今天赠送的筹码总额
SELECT @ChipSend = ISNULL(SUM(Amount), 0) FROM [ChipSendLog] WHERE UserID = @UserID AND DateFlag >= @DateFlag
--结算额的0.0001%
SET @ChipAmount = ABS(@WinAmount) * 0.000001
SET @ChipAmount = CASE
WHEN @ChipAmount + @ChipSend > 3000000 THEN 3000000 - @ChipSend --超过上限,补差额
ELSE @ChipAmount
END
--赠送
IF(@ChipAmount > 0)
BEGIN
--记录赠送日志
UPDATE [ChipSendLog] SET Amount = Amount + @ChipAmount WHERE UserID = @UserID AND DateFlag = @DateFlag AND IsShow = 0
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [ChipSendLog](DateFlag, UserID, Amount, IsShow) VALUES(@DateFlag, @UserID, @ChipAmount, 0)
END
--日志
SET @LogType = @GameID * 100 + 88
--加筹码
EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = @ServerName, @GameID = @GameID, @WantedAmount = @ChipAmount,
@LogType = @LogType, @Remark = N'游戏赠送', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
END
END
END
*/
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_CardStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_CardStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 玩牌统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_CardStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @BreakAmount INT --破产额
DECLARE @tmpMiday TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
GameID INT NOT NULL, --游戏ID
MidwayUserCount INT NOT NULL, --中途退出人数
MidwayTimes INT NOT NULL --中途退出次数
)
DECLARE @tmpUser TABLE(
UserID INT NOT NULL
)
DECLARE @tmpBetCount TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
GameID INT NOT NULL, --游戏ID
PlayCount INT NOT NULL --游戏局数
)
SET @DateFlag = CONVERT(CHAR(10), GETDATE() -1, 120)
SET @BreakAmount = 5000 --破产额
--牌局统计
INSERT INTO [GameCardStat]
(
DateFlag, GameID, TypeID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
)
SELECT
@DateFlag, GameID, 0, COUNT(DISTINCT UserID),
SUM(CASE WHEN ResultAmount - BetAmount > 0 THEN ResultAmount - BetAmount ELSE 0 END),
SUM(CASE WHEN ResultAmount - BetAmount < 0 THEN ResultAmount - BetAmount ELSE 0 END),
COUNT(DISTINCT CASE WHEN StillAmount <= @BreakAmount THEN UserID ELSE 0 END) - 1,
SUM(CASE WHEN StillAmount <= @BreakAmount THEN 1 ELSE 0 END),
COUNT(UserID), SUM(DATEDIFF(SECOND, BetTime, ResultTime)), 0, 0
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
GameID
--统计中途退出
INSERT INTO @tmpMiday
(
DateFlag, GameID, MidwayUserCount, MidwayTimes
)
SELECT
CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID,
COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN UserID ELSE 0 END) - 1,
SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
FROM
[MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
WHERE
m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
CONVERT(CHAR(10), m.Crdate, 120), m.GameID
--更新中途统计数据
UPDATE
g
SET
g.MidwayUserCount = t.MidwayUserCount, g.MidwayTimes = t.MidwayTimes
FROM
[GameCardStat] g INNER JOIN @tmpMiday t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
WHERE
TypeID = 0
--统计游戏局数
INSERT INTO @tmpBetCount
(
DateFlag, GameID, PlayCount
)
SELECT
@DateFlag, GameID, SUM(PlayCount)
FROM
[UserBetCount]
WHERE
BetTime BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
GameID
--更新游戏局数
UPDATE
g
SET
g.PlayCount = t.PlayCount
FROM
[GameCardStat] g INNER JOIN @tmpBetCount t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
WHERE
TypeID = 0
--初始化
INSERT INTO @tmpUser(UserID)
SELECT
UserID
FROM
[LabelPool]
WHERE
TypeID = 17 AND LabelID != '' AND Expire >= GETDATE()
--牌局统计
INSERT INTO [GameCardStat]
(
DateFlag, GameID, TypeID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
)
SELECT
@DateFlag, GameID, 17, COUNT(DISTINCT b.UserID),
SUM(CASE WHEN ResultAmount - BetAmount > 0 THEN ResultAmount - BetAmount ELSE 0 END),
SUM(CASE WHEN ResultAmount - BetAmount < 0 THEN ResultAmount - BetAmount ELSE 0 END),
COUNT(DISTINCT CASE WHEN StillAmount <= @BreakAmount THEN b.UserID ELSE 0 END) - 1,
SUM(CASE WHEN StillAmount <= @BreakAmount THEN 1 ELSE 0 END),
COUNT(b.UserID), SUM(DATEDIFF(SECOND, BetTime, ResultTime)), 0, 0
FROM
[BetInfoHistory] b INNER JOIN @tmpUser u ON b.UserID = u.UserID
WHERE
BetTime BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
GameID
--统计中途退出
INSERT INTO @tmpMiday
(
DateFlag, GameID, MidwayUserCount, MidwayTimes
)
SELECT
CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID,
COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN m.UserID ELSE 0 END) - 1,
SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
FROM
[MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
INNER JOIN @tmpUser u ON m.UserID = u.UserID
WHERE
m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
CONVERT(CHAR(10), m.Crdate, 120), m.GameID
--更新中途统计数据
UPDATE
g
SET
g.MidwayUserCount = t.MidwayUserCount, g.MidwayTimes = t.MidwayTimes
FROM
[GameCardStat] g INNER JOIN @tmpMiday t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
WHERE
TypeID = 17
--统计游戏局数
INSERT INTO @tmpBetCount
(
DateFlag, GameID, PlayCount
)
SELECT
@DateFlag, GameID, SUM(PlayCount)
FROM
[UserBetCount] u INNER JOIN @tmpUser t ON u.UserID = t.UserID
WHERE
BetTime BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
GameID
--更新游戏局数
UPDATE
g
SET
g.PlayCount = t.PlayCount
FROM
[GameCardStat] g INNER JOIN @tmpBetCount t ON g.DateFlag = t.DateFlag AND g.GameID = t.GameID
WHERE
TypeID = 17
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Cash_Transfer] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*************************
用途:保险柜转账
说明:税为0%、单次转账最大额1E、最小额100、
说明:同时判断接收方加金币不超过20E(INT最大值)
**************************/
CREATE PROCEDURE [dbo].[Game_Cash_Transfer]
@UserID INT, --转账方ID
@AcceptUserID INT, --接收方ID
@WantAmount BIGINT, --要转多少金币,保证为正数
@IPAddress VARCHAR(15) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @MAX_AMOUNT BIGINT --单次转账最大量
DECLARE @MIN_AMOUNT BIGINT --单次转账最小量
DECLARE @AcceptCurrAmount BIGINT --接收者的当前金币量
DECLARE @TaxAmount BIGINT --税
DECLARE @CurrAmount BIGINT --当前的金币量
DECLARE @TotalAmount BIGINT --实际总共改变的金币量,等于@WantAmount +@TaxAmount
DECLARE @NickName NVARCHAR(32) --昵称
DECLARE @AcceptNickName NVARCHAR(32) --接收方昵称
DECLARE @AcceptStillAmount BIGINT --接收者剩余金币
DECLARE @CurrTime DATETIME --时间
DECLARE @Msg NVARCHAR(256) --消息
DECLARE @DailyTransferAmount BIGINT --日转账
DECLARE @TransferAmount BIGINT --转账金额
DECLARE @SysMsgID INT
DECLARE @TimeStamp INT --时间戳
DECLARE @WantAmountUnit VARCHAR(32)
DECLARE @Fee INT --手续费率(百分制)
DECLARE @FreeBeginTime DATETIME --免费开启时间
DECLARE @FreeEndTime DATETIME --免费截止时间
DECLARE @RefundBeginTime DATETIME --返额开始时间
DECLARE @RefundEndTime DATETIME --返额截止时间
DECLARE @RefundRatio INT --返额比率(百分制)
DECLARE @RefundMaxAmount BIGINT --单笔返额上限(首笔)
DECLARE @Refund BIGINT --返还金额
DECLARE @MinAmount BIGINT --转账最低金额
DECLARE @RetCode INT --操作结果
DECLARE @ErrMsg VARCHAR(128) --消息
DECLARE @StillAmount BIGINT --剩余保险柜
DECLARE @Title NVARCHAR(32)
SET @StillAmount = 0
SET @TaxAmount = @WantAmount * 0.01 --1%的手续费
SET @TotalAmount = @WantAmount + @TaxAmount -- 消耗的金币 = 转出的金币+税
SET @NickName = ''
SET @AcceptNickName = ''
SET @MAX_AMOUNT = 999999999999999
SET @MIN_AMOUNT = 1
SET @RetCode = 0
SET @CurrTime = GETDATE()
SET @WantAmountUnit = ''
SET @MinAmount = 100000000
SET @Refund = 0
IF(@WantAmount IS NULL OR @WantAmount < 0)
BEGIN
SET @RetCode = -1
SET @ErrMsg = 'Safe amount input error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
IF(@UserID IS NULL OR @AcceptUserID IS NULL OR @UserID < 0 OR @AcceptUserID < 0)
BEGIN
IF @UserID IS NULL
SET @UserID = 0
IF @AcceptUserID IS NULL
SET @AcceptUserID = 0
INSERT INTO [MoneyLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, 'Safe transfer:Incoming user parameter error', @CurrTime, 0
)
SET @RetCode = -2
SET @ErrMsg = 'User parameter error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--判断是否是自己账号
IF(@UserID = @AcceptUserID)
BEGIN
SET @RetCode = -2
SET @ErrMsg = 'User parameter error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--获取配置信息
SELECT
@Fee = Fee, @FreeBeginTime = FreeBeginTime, @FreeEndTime = FreeEndTime,
@RefundBeginTime = RefundBeginTime, @RefundEndTime = RefundEndTime,
@RefundRatio = RefundRatio, @RefundMaxAmount = RefundMaxAmount,
@MinAmount = CASE
WHEN @CurrTime BETWEEN MinBeginTime AND MinEndTime THEN MinAmount
ELSE @MinAmount
END
FROM
[TransferConfig]
WHERE
ConfigID = 1
--有配置信息
IF(@@ROWCOUNT > 0)
BEGIN
--免费
IF(@CurrTime BETWEEN @FreeBeginTime AND @FreeEndTime)
BEGIN
SET @TaxAmount = 0
END
--手续费
ELSE
BEGIN
SET @TaxAmount = @WantAmount * (@Fee / 100.00) --1%的手续费
END
--扣减的总金额
SET @TotalAmount = @WantAmount + @TaxAmount
--限时返额
IF(@CurrTime BETWEEN @RefundBeginTime AND @RefundEndTime)
BEGIN
--判断时间段内是否是首笔
IF NOT EXISTS(SELECT LogID FROM [TransferLog] WHERE Crdate BETWEEN @RefundBeginTime AND @RefundEndTime AND UserID = @UserID)
BEGIN
SET @Refund = @WantAmount * (@RefundRatio / 100.00) --返还金额
--是否超过返额上限
SET @Refund = CASE
WHEN @Refund > @RefundMaxAmount THEN @RefundMaxAmount
ELSE @Refund
END
END
END
END
IF(@WantAmount < @MIN_AMOUNT OR @WantAmount > @MAX_AMOUNT)
BEGIN
INSERT INTO [MoneyLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, 'Safe transfer:Incoming amount error', @CurrTime, 0
)
SET @RetCode = -3
SET @ErrMsg = 'The transfer amount of safe exceeds the limit'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--获取当前自己的昵称
SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [MoneyLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, 'Safe transfer:Incoming user parameter error', @CurrTime, 0
)
SET @RetCode = -2
SET @ErrMsg = 'User parameter error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--获取当前自己的昵称
SELECT @AcceptNickName = NickName FROM [AllUser] WHERE UserID = @AcceptUserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [MoneyLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, 'Safe transfer:Receive ID does not exist', @CurrTime, 0
)
SET @RetCode = -5
SET @ErrMsg = 'Receive ID does not exist'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--日转账限额
SELECT @DailyTransferAmount = DailyTransferAmount FROM [PlatformConfig] WHERE ConfigID = 1
--有设置转账限额
IF(@DailyTransferAmount > 0)
BEGIN
--今天转账金额
SELECT
@TransferAmount = ISNULL(SUM(-WantAmount), 0)
FROM
[TransferLog]
WHERE
Crdate >= CONVERT(CHAR(10), @CurrTime, 120) AND UserID = @UserID
--判断是否达到上限
IF((@TransferAmount + @WantAmount) > @DailyTransferAmount)
BEGIN
SET @RetCode = -9
SET @ErrMsg = 'Up to today transfer limit'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
END
SET @AcceptCurrAmount = (SELECT [Amount] FROM [Money] WHERE [UserID] = @AcceptUserID)
IF @AcceptCurrAmount IS NULL
SET @AcceptCurrAmount = 0
--开始金币的转账操作
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN
--检查用户现金
SET @CurrAmount = (SELECT [Amount] FROM [Money] WHERE [UserID] = @UserID)
IF @CurrAmount IS NULL
SET @CurrAmount = 0
IF(@CurrAmount < @TotalAmount)
BEGIN
ROLLBACK TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
INSERT INTO [MoneyLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, @WantAmount,
0, @TaxAmount, @IPAddress, 'Safe transfer:Cash is not enough', @CurrTime, 0
)
SET @RetCode = -7
SET @ErrMsg = 'Your current safe is not less than the amount sent'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--可以进行保险柜操作了
UPDATE [Money] SET [Amount] = [Amount] - @TotalAmount WHERE [UserID] = @UserID
UPDATE [Money] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @AcceptUserID
IF(@@RowCount = 0)
BEGIN
INSERT INTO [Money]
(
[UserID],[Amount], bank
)
VALUES
(
@AcceptUserID, @WantAmount, 0
)
END
COMMIT TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
--写日志
INSERT INTO [MoneyLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
SELECT
0, N'玩家转账', 'CASH', @AcceptUserID, @AcceptCurrAmount, @WantAmount,
@AcceptCurrAmount + @WantAmount, @TaxAmount, @IPAddress, 'Safe transfer:Receiving OK', @CurrTime, 11
UNION ALL
SELECT
0, N'玩家转账,', 'CASH', @UserID, @CurrAmount, -@WantAmount,
@CurrAmount - @WantAmount, @TaxAmount, @IPAddress, 'Safe transfer:Send OK', @CurrTime, 111
--剩余金币
SET @StillAmount = @CurrAmount - @TotalAmount
SET @AcceptStillAmount = @AcceptCurrAmount + @WantAmount
SET @ErrMsg ='Safe transfer succeeded, you have sent ' + CAST(@WantAmount AS VARCHAR(64)) + ',You still have the safe account ' + CAST(@StillAmount AS VARCHAR(64))
--转账日志
INSERT INTO [TransferLog]
(
[UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
[AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
[TaxAmount], [IPAddress], [Memo], [Crdate]
)
VALUES
(
@UserID, @NickName, @CurrAmount, -@WantAmount, @StillAmount,
@AcceptUserID, @AcceptNickName, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount,
@TaxAmount, @IPAddress, @ErrMsg, @CurrTime
)
SET @WantAmountUnit = CASE
WHEN @WantAmount >= 1000000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'T'
WHEN @WantAmount >= 1000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'B'
WHEN @WantAmount >= 1000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'M'
ELSE CAST(@WantAmount AS VARCHAR(32))
END
--SET @Msg = N'Teman Anda ' + @NickName + ' ID' + LTRIM(STR(@UserID)) + ' memberi Anda ' + REPLACE(@WantAmountUnit, '.00', '') + ' ingot'
SET @Msg = N'账号@A给您赠送了@B金币,货币已经直接到账'
EXEC [Game_Translate_Get] @Source = N'交易通知', @Target = @Title OUTPUT
EXEC [Game_Translate_Get] @Source = @Msg, @Target = @Msg OUTPUT
SET @Msg = REPLACE(@Msg, '@A', @NickName)
SET @Msg = REPLACE(@Msg, '@B', REPLACE(@WantAmountUnit, '.00', ''))
SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
--发送消息
EXEC [WS_SysMessage_Send] @UserID = @AcceptUserID, @Title = @Title, @Content = @Msg, @Status = 0, @SourceName = 'Transfer',
@Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
--加元宝(限时返额)
IF(@Refund > 0)
BEGIN
--加筹码
EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = N'玩家转账', @GameID = 0, @WantedAmount = @Refund,
@LogType = 44, @Remark = N'赠送返还', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
END
SET @RetCode = 1
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Cash_TransferLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Cash_TransferLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 筹码赠送记录
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Cash_TransferLog]
@UserID INT, --用户ID
@Days INT = 7 --天数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT TOP 100
UserID, NickName, AcceptUserID, AcceptNickName, AcceptWantAmount AS Amount,
CONVERT(CHAR(16), Crdate, 120) AS Crdate, TaxAmount
FROM
[TransferLog]
WHERE
Crdate >= CONVERT(CHAR(10), GETDATE() - @Days, 120) AND (UserID = @UserID OR AcceptUserID = @UserID)
ORDER BY
LogID DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_CasinoOnline_Lock] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_CasinoOnline_Lock]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 金币锁加锁
-- ==============================================
CREATE PROCEDURE [dbo].[Game_CasinoOnline_Lock]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@ServerName NVARCHAR(32) --服务器名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DBServerName NVARCHAR(32) --服务器名称
--服务器名称
SELECT @DBServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
--没有锁
IF(@@ROWCOUNT = 0)
BEGIN
--上锁
INSERT INTO [CasinoOnline]
(
UserID, LoginTime, ServerName, GameID
)
VALUES
(
@UserID, GETDATE(), @ServerName, @GameID
)
RETURN 1
END
--同服务器
IF(@DBServerName = @ServerName)
RETURN 1
RETURN 0
END
GO
/****** Object: StoredProcedure [dbo].[Game_CasinoOnline_Unlock] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_CasinoOnline_Unlock]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 金币锁解锁
-- ==============================================
CREATE PROCEDURE [dbo].[Game_CasinoOnline_Unlock]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
--解锁
DELETE FROM [CasinoOnline] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_CasinoOnline_Verify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_CasinoOnline_Verify]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 金币锁校验
-- ==============================================
CREATE PROCEDURE [dbo].[Game_CasinoOnline_Verify]
@GameID INT, --游戏ID
@ServerName NVARCHAR(32), --服务器名称
@Type TINYINT --状态 0=开服 1=关服 2=普通轮询
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--用户
DECLARE @tmpUser TABLE(UserID INT NOT NULL)
--表变量
DECLARE @tmptable TABLE(
GameID INT NOT NULL, --游戏ID
ServerName NVARCHAR(32) NOT NULL --服务器名称
)
IF(@Type NOT IN (0, 1, 2))
RETURN
--0=开服 1=关服
IF(@Type IN (0, 1))
BEGIN
--删除旧服务器信息
DELETE FROM [Server] WHERE GameID = @GameID AND ServerName = @ServerName
--初始化
INSERT INTO @tmptable(GameID, ServerName) VALUES(@GameID, @ServerName)
END
--0=开服
IF(@Type = 0)
BEGIN
--新服务器信息
INSERT INTO [Server]
(
GameID, ServerName, RollTime, Crdate
)
VALUES
(
@GameID, @ServerName, GETDATE(), GETDATE()
)
END
--2=正常轮询
ELSE IF(@Type = 2)
BEGIN
--服务器轮询
UPDATE [Server] SET RollTime = GETDATE() WHERE GameID = @GameID AND ServerName = @ServerName
END
--过期服务器
INSERT INTO @tmptable(GameID, ServerName)
SELECT GameID, ServerName FROM [Server] WHERE RollTime < DATEADD(SECOND, -90, GETDATE())
--用户
INSERT INTO @tmpUser(UserID)
SELECT c.UserID FROM [CasinoOnline] c INNER JOIN @tmptable t ON c.GameID = t.GameID AND c.ServerName = t.ServerName
IF(@@ROWCOUNT = 0)
RETURN
--清理金币锁
DELETE FROM [CasinoOnline] WHERE UserID IN (SELECT UserID FROM @tmpUser)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_BankIn] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
declare @s varchar(512)
exec p_bank_in 10479800, 9999, '', 0 , 0, @s output
print @s
*/
--存入保险柜
--返回值1:成功 其它:失败
CREATE PROCEDURE [dbo].[Game_Chip_BankIn]
@userid INT,
@amount BIGINT,
@servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
@cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
@bankamount BIGINT OUTPUT, --保险柜中的金币数量
@outmsg NVARCHAR(512) OUTPUT,
@GameID INT = 0,
@EPassword VARCHAR(32) = '', --MD5密文
@IPAddress VARCHAR(16) = '', --IP地址
@RetCode INT OUTPUT --操作结果
AS
Set NoCount On
Set Xact_Abort On
BEGIN
--金币锁
declare @chvOnlineServerName NVARCHAR(64)
DECLARE @currentcashamount BIGINT
DECLARE @currentbankamount BIGINT
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @OldEPassword VARCHAR(32) --登陆密码
DECLARE @Msg VARCHAR(4096) --操作描述
DECLARE @IsRobot TINYINT --是否机器人
SET @currentbankamount = 0
SET @CurrTime = GETDATE()
SET @RetCode = 0
SELECT
@OldEPassword = EPassword, @IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
FROM
[AllUser]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
set @outmsg = N'存入保险柜失败:账号信息不存在'
return
END
/*
IF(LEN(@ServerName) <= 0)
BEGIN
--校验登陆密码
IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
BEGIN
SET @Msg = '存入保险柜,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
--添加日志
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
set @outmsg = '存入保险柜失败'
return
END
END
*/
select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
set @bankamount = 0
set @cashamount = 0
if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
begin
set @outmsg = N'游戏中不能存入金币,只能取出'
return
end
if @amount <= 0
begin
set @outmsg = N'存入保险柜失败:请输入正确的数量'
return
end
--检查存入后金额是否超过INT限制
SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Chip] WHERE userid = @userid
--非金币房间需要更新 amount
if @servername = ''
update [Chip] set bank = bank + @amount, amount = amount - @amount where userid = @userid and amount >= @amount
else
update [Chip] set bank = bank + @amount where userid = @userid
if @@rowcount = 1 --成功
begin
select @cashamount = amount, @bankamount = bank from [Chip] where userid = @userid
INSERT INTO [ChipBankLog]
(
userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
)
VALUES
(
@userid, @userid, @currentbankamount, @amount, @bankamount, '存入保险柜', @CurrTime, @IPAddress
)
--机器人
IF(@IsRobot = 1)
BEGIN
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
@currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
@currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
END
ELSE
BEGIN
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
@currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
@currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
END
set @outmsg = N'成功'
SET @RetCode = 1
return
end
else
begin
set @outmsg = N'存入保险柜失败:您身上金币不足'
return
end
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_BankOut] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
declare @s varchar(512)
exec p_bank_out 22, 10000, '123', '', 0 , 0 , @s output
print @s
*/
--从保险柜取出
--返回值1:成功 其它:失败
CREATE PROCEDURE [dbo].[Game_Chip_BankOut]
@userid INT,
@amount BIGINT,
@safeboxpwd VARCHAR(32), --保险柜密码 (加密前的)
@servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
@cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
@bankamount BIGINT OUTPUT, --保险柜中的金币数量
@outmsg NVARCHAR(512) OUTPUT,
@EPassword VARCHAR(32) = '', --MD5密文
@IPAddress VARCHAR(16) = '', --IP地址
@RetCode INT OUTPUT, --操作结果
@GameID INT = 0
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN
--金币锁
DECLARE @chvOnlineServerName NVARCHAR(64)
DECLARE @max_amount BIGINT
DECLARE @currentcashamount BIGINT
DECLARE @currentbankamount BIGINT
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @OldEPassword VARCHAR(32) --登陆密码
DECLARE @OldEsafeboxpwd VARCHAR(32) --保险柜密码
DECLARE @Msg VARCHAR(4096) --操作描述
DECLARE @IsRobot TINYINT
SET @max_amount = 2000000000000000
SET @currentcashamount = 0
SET @CurrTime = GETDATE()
SET @RetCode = 0
--获取当前登陆密码、保险柜密码
SELECT
@OldEPassword = EPassword, --@OldEsafeboxPwd = Esafeboxpwd,
@IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
FROM
[AllUser]
WHERE
UserID = @userid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
set @outmsg = N'从保险柜取出失败:账号信息不存在'
return 0
END
/*
--Web 调用
IF(LEN(@ServerName) <= 0)
BEGIN
--校验登陆密码
IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
BEGIN
SET @Msg = '保险柜取出,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
--添加日志
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
SET @outmsg = '从保险柜取出失败'
RETURN -1
END
END
*/
declare @rc int --其它存储过程的返回值
select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
set @bankamount = 0
set @cashamount = 0
if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
begin
SET @RetCode = 12
set @outmsg = N'从保险柜取出失败:您已在服务器[' + @chvOnlineServerName + '],请登陆此服务器,或通过客服中心寻求帮助'
return 0
end
--不判断是否会员
if @amount <= 0
begin
SET @RetCode = 13
set @outmsg = N'从保险柜取出失败:请输入正确的数量'
return 0
end
--校验保险柜密码
--IF(@OldEsafeboxpwd != dbo.fn_md5(@safeboxpwd))
--BEGIN
-- set @outmsg = '从保险柜取出失败:保险柜密码不正确!'
-- return 0
--END
--检查取出后金额是否超过INT限制
SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Chip] WHERE userid = @userid
IF @amount + @currentcashamount > @max_amount
BEGIN
SET @RetCode = 14
set @outmsg = N'从保险柜取出失败:取出数量过大'
return 0
END
update
[Chip]
set
bank = bank - @amount,
amount = amount + case @servername when '' then @amount else 0 end
where
userid = @userid and bank >= @amount
if @@rowcount = 1 --成功
begin
set @outmsg = N'成功'
select @cashamount = amount, @bankamount = bank from [Chip] where userid = @userid
INSERT INTO [ChipBankLog]
(
userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
)
VALUES
(
@userid, @userid, @currentbankamount, -@amount, @bankamount, '保险柜取出', @CurrTime, @IPAddress
)
--机器人
IF(@IsRobot = 1)
BEGIN
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
@currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
@currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
END
ELSE
BEGIN
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
@currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
@currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
END
SET @RetCode = 1
return 1
end
else
begin
SET @RetCode = 15
set @outmsg =N'从保险柜取出失败:您保险柜金额不足'
return 0
end
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_BankQuery] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--接口:查询保险柜数量
CREATE PROCEDURE [dbo].[Game_Chip_BankQuery]
@UserID INT,
@BankAmount BIGINT OUTPUT
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN
SET @BankAmount = 0
SELECT @BankAmount = Bank FROM [Chip] WHERE userid = @userid
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--EXEC [Game_Chip_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2019-06-24
-- Mendor: wolf
-- Alter Date: 2019-07-11
-- Description: 筹码信息
-- ============================================
CREATE PROCEDURE [dbo].[Game_Chip_GetInfo]
@UserID INT,
@Amount BIGINT OUTPUT,
@Bank BIGINT OUTPUT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SET @Amount = 0
SET @Bank = 0
--获取金币、保险柜
SELECT @Amount = Amount, @Bank = Bank FROM [Chip] WHERE UserID = @UserID
RETURN 1
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_Give] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Game_Chip_Give]
-- @UserID = 10001,
-- @SourceName = '',
-- @WantedAmount = 100,
-- @LogType = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-09-04
-- Description: 加筹码接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Chip_Give]
@UserID INT, --用户ID
@WantedAmount BIGINT, --筹码数
@GameID INT, --游戏ID
@LogType INT, --日志类型
@SourceName NVARCHAR(64), --源名称
@Remark NVARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述: 1=操作成功 11=传入参数错误
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrentAmount BIGINT --当前筹码数
DECLARE @LogID INT --日志ID
DECLARE @Balance BIGINT --剩余
SET @RetCode = 0
SET @CurrentAmount = 0
SET @Balance = 0
--判断领取筹码数是否异常
IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid Amount'
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, 0, 0,
0, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
RETURN
END
-------------------先检查输入参数------------------------
IF(@UserID IS NULL OR @UserID <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid User'
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, 0, 0,
0, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
RETURN
END
--不用提高事务隔离级别,Update 原子性操作
--加筹码
UPDATE
[Chip]
SET
Amount = Amount + @WantedAmount, @CurrentAmount = Amount,
@Balance = Amount + @WantedAmount
WHERE
UserID = @UserID
--还没有数据
IF(@@RowCount = 0)
BEGIN
INSERT INTO [Chip](UserID, Amount, Bank) VALUES(@UserID, @WantedAmount, 0)
END
--备注
SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'UnKnown')
--写日志
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, @WantedAmount,
@Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
--日志ID
SET @LogID = SCOPE_IDENTITY()
--统计
EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
--操作成功
SET @RetCode = 1
RETURN @LogID
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_Reduce] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Game_Chip_Reduce]
-- @UserID = 10010,
-- @SourceName = '',
-- @WantedAmount = 100,
-- @LogType = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 扣除筹码接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Chip_Reduce]
@UserID INT, --用户ID
@WantedAmount BIGINT, --操作筹码(必须>0)
@GameID INT, --游戏ID
@LogType INT, --日志类型
@SourceName VARCHAR(64), --源名称
@Remark VARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述:1=操作成功 11=筹码不足 12=参数异常 21=筹码锁
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @CurrentAmount BIGINT --当前筹码数
DECLARE @ServerName NVARCHAR(32) --服务器名称
DECLARE @LogID INT --日志ID
DECLARE @Balance BIGINT --剩余
SET @RetCode = 0
SET @CurrentAmount = 0
SET @Balance = 0
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--判断领取筹码数是否异常
IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid Amount'
RETURN
END
-------------------先检查输入参数------------------------
IF(@UserID IS NULL OR @UserID <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid User'
RETURN
END
--检查用户锁
SELECT @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 21
SET @Remark = @Remark + ',Hold Money Mutex, ServerName = ' + @ServerName
RETURN
END
--不用提高事务隔离级别, Update 原子性
--扣筹码
UPDATE
[Chip]
SET
Amount = Amount - @WantedAmount, @CurrentAmount = Amount, @Balance = Amount - @WantedAmount
WHERE
UserID = @UserID AND Amount >= @WantedAmount
--判断是否成功
IF(@@ROWCOUNT <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ', Reduce Fail'
RETURN
END
--备注
SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'Unknown')
--写日志
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, -@WantedAmount,
@Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
--日志ID
SET @LogID = SCOPE_IDENTITY()
SET @WantedAmount = -@WantedAmount
--统计
EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
--操作成功
SET @RetCode = 1
RETURN @LogID
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_Transfer] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*************************
用途:保险柜转账
说明:税为0%、单次转账最大额1E、最小额100、
说明:同时判断接收方加金币不超过20E(INT最大值)
**************************/
CREATE PROCEDURE [dbo].[Game_Chip_Transfer]
@UserID INT, --转账方ID
@AcceptUserID INT, --接收方ID
@WantAmount BIGINT, --要转多少金币,保证为正数
@IPAddress VARCHAR(15) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @MAX_AMOUNT BIGINT --单次转账最大量
DECLARE @MIN_AMOUNT BIGINT --单次转账最小量
DECLARE @AcceptCurrAmount BIGINT --接收者的当前金币量
DECLARE @TaxAmount BIGINT --税
DECLARE @CurrAmount BIGINT --当前的金币量
DECLARE @TotalAmount BIGINT --实际总共改变的金币量,等于@WantAmount +@TaxAmount
DECLARE @NickName NVARCHAR(32) --昵称
DECLARE @AcceptNickName NVARCHAR(32) --接收方昵称
DECLARE @AcceptStillAmount BIGINT --接收者剩余金币
DECLARE @CurrTime DATETIME --时间
DECLARE @Msg NVARCHAR(256) --消息
DECLARE @DailyTransferAmount BIGINT --日转账
DECLARE @TransferAmount BIGINT --转账金额
DECLARE @SysMsgID INT
DECLARE @TimeStamp INT --时间戳
DECLARE @WantAmountUnit VARCHAR(32)
DECLARE @Fee INT --手续费率(百分制)
DECLARE @FreeBeginTime DATETIME --免费开启时间
DECLARE @FreeEndTime DATETIME --免费截止时间
DECLARE @RefundBeginTime DATETIME --返额开始时间
DECLARE @RefundEndTime DATETIME --返额截止时间
DECLARE @RefundRatio INT --返额比率(百分制)
DECLARE @RefundMaxAmount BIGINT --单笔返额上限(首笔)
DECLARE @Refund BIGINT --返还金额
DECLARE @MinAmount BIGINT --转账最低金额
DECLARE @RetCode INT --操作结果
DECLARE @ErrMsg NVARCHAR(256) --消息
DECLARE @StillAmount BIGINT --剩余保险柜
SET @StillAmount = 0
SET @TaxAmount = @WantAmount * 0.01 --1%的手续费
SET @TotalAmount = @WantAmount + @TaxAmount -- 消耗的金币 = 转出的金币+税
SET @NickName = ''
SET @AcceptNickName = ''
SET @MAX_AMOUNT = 999999999999999
SET @MIN_AMOUNT = 1
SET @RetCode = 0
SET @CurrTime = GETDATE()
SET @WantAmountUnit = ''
SET @MinAmount = 100000000
SET @Refund = 0
IF(@WantAmount IS NULL OR @WantAmount < 0)
BEGIN
SET @RetCode = -1
SET @ErrMsg = N'Safe amount input error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
IF(@UserID IS NULL OR @AcceptUserID IS NULL OR @UserID < 0 OR @AcceptUserID < 0)
BEGIN
IF @UserID IS NULL
SET @UserID = 0
IF @AcceptUserID IS NULL
SET @AcceptUserID = 0
INSERT INTO [ChipLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
)
SET @RetCode = -2
SET @ErrMsg = N'User parameter error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--判断是否是自己账号
IF(@UserID = @AcceptUserID)
BEGIN
SET @RetCode = -2
SET @ErrMsg = N'User parameter error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--获取配置信息
SELECT
@Fee = Fee, @FreeBeginTime = FreeBeginTime, @FreeEndTime = FreeEndTime,
@RefundBeginTime = RefundBeginTime, @RefundEndTime = RefundEndTime,
@RefundRatio = RefundRatio, @RefundMaxAmount = RefundMaxAmount,
@MinAmount = CASE
WHEN @CurrTime BETWEEN MinBeginTime AND MinEndTime THEN MinAmount
ELSE @MinAmount
END
FROM
[TransferConfig]
WHERE
ConfigID = 1
--有配置信息
IF(@@ROWCOUNT > 0)
BEGIN
--免费
IF(@CurrTime BETWEEN @FreeBeginTime AND @FreeEndTime)
BEGIN
SET @TaxAmount = 0
END
--手续费
ELSE
BEGIN
SET @TaxAmount = @WantAmount * (@Fee / 100.00) --1%的手续费
END
--扣减的总金额
SET @TotalAmount = @WantAmount + @TaxAmount
--限时返额
IF(@CurrTime BETWEEN @RefundBeginTime AND @RefundEndTime)
BEGIN
--判断时间段内是否是首笔
IF NOT EXISTS(SELECT LogID FROM [ChipTransferLog] WHERE Crdate BETWEEN @RefundBeginTime AND @RefundEndTime AND UserID = @UserID)
BEGIN
SET @Refund = @WantAmount * (@RefundRatio / 100.00) --返还金额
--是否超过返额上限
SET @Refund = CASE
WHEN @Refund > @RefundMaxAmount THEN @RefundMaxAmount
ELSE @Refund
END
END
END
END
IF(@WantAmount < @MIN_AMOUNT OR @WantAmount > @MAX_AMOUNT)
BEGIN
INSERT INTO [ChipLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming amount error', @CurrTime, 0
)
SET @RetCode = -3
SET @ErrMsg = N'The transfer amount of safe exceeds the limit'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--获取当前自己的昵称
SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [ChipLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
)
SET @RetCode = -2
SET @ErrMsg = N'User parameter error'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--获取当前自己的昵称
SELECT @AcceptNickName = NickName FROM [AllUser] WHERE UserID = @AcceptUserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [ChipLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Receive ID does not exist', @CurrTime, 0
)
SET @RetCode = -5
SET @ErrMsg = N'Receive ID does not exist'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--日转账限额
SELECT @DailyTransferAmount = DailyTransferAmount FROM [PlatformConfig] WHERE ConfigID = 1
--有设置转账限额
IF(@DailyTransferAmount > 0)
BEGIN
--今天转账金额
SELECT
@TransferAmount = ISNULL(SUM(-WantAmount), 0)
FROM
[ChipTransferLog]
WHERE
Crdate >= CONVERT(CHAR(10), @CurrTime, 120) AND UserID = @UserID
--判断是否达到上限
IF((@TransferAmount + @WantAmount) > @DailyTransferAmount)
BEGIN
SET @RetCode = -9
SET @ErrMsg = N'Up to today transfer limit'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
END
SET @AcceptCurrAmount = (SELECT [Amount] FROM [Chip] WHERE [UserID] = @AcceptUserID)
IF @AcceptCurrAmount IS NULL
SET @AcceptCurrAmount = 0
--开始金币的转账操作
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN
--检查用户现金
SET @CurrAmount = (SELECT [Amount] FROM [Chip] WHERE [UserID] = @UserID)
IF @CurrAmount IS NULL
SET @CurrAmount = 0
IF(@CurrAmount < @TotalAmount)
BEGIN
ROLLBACK TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
INSERT INTO [ChipLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, N'玩家转账', 'CASH', @UserID, 0, @WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Cash is not enough', @CurrTime, 0
)
SET @RetCode = -7
SET @ErrMsg = N'Your current safe is not less than the amount sent'
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
--可以进行保险柜操作了
UPDATE [Chip] SET [Amount] = [Amount] - @TotalAmount WHERE [UserID] = @UserID
UPDATE [Chip] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @AcceptUserID
IF(@@RowCount = 0)
BEGIN
INSERT INTO [Chip]
(
[UserID],[Amount], bank
)
VALUES
(
@AcceptUserID, @WantAmount, 0
)
END
COMMIT TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
--写日志
INSERT INTO [ChipLog]
(
[GameID], [SourceName], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
SELECT
0, N'玩家转账', 'CASH', @AcceptUserID, @AcceptCurrAmount, @WantAmount,
@AcceptCurrAmount + @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Receiving OK', @CurrTime, 11
UNION ALL
SELECT
0, N'玩家转账,', 'CASH', @UserID, @CurrAmount, -@WantAmount,
@CurrAmount - @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Send OK', @CurrTime, 111
--剩余金币
SET @StillAmount = @CurrAmount - @TotalAmount
SET @AcceptStillAmount = @AcceptCurrAmount + @WantAmount
SET @ErrMsg = N'Safe transfer succeeded, you have sent ' + CAST(@WantAmount AS VARCHAR(64)) + ',You still have the safe account ' + CAST(@StillAmount AS VARCHAR(64))
--保险柜日志
INSERT INTO [ChipBankLog]
(
UserID, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
)
SELECT @UserID, @AcceptUserID, @CurrAmount, -@WantAmount, @StillAmount, N'Safe transfer out', @CurrTime, @IPAddress
UNION ALL
SELECT @AcceptUserID, @UserID, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount, N'Safe transfer in', @CurrTime, @IPAddress
--转账日志
INSERT INTO [ChipTransferLog]
(
[UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
[AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
[TaxAmount], [IPAddress], [Memo], [Crdate]
)
VALUES
(
@UserID, @NickName, @CurrAmount, -@WantAmount, @StillAmount,
@AcceptUserID, @AcceptNickName, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount,
@TaxAmount, @IPAddress, @ErrMsg, @CurrTime
)
SET @WantAmountUnit = CASE
WHEN @WantAmount >= 1000000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'T'
WHEN @WantAmount >= 1000000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'B'
WHEN @WantAmount >= 1000000 THEN CAST(CAST(@WantAmount * 1.00 / 1000000 AS DECIMAL(18, 2)) AS VARCHAR(32)) + 'M'
ELSE CAST(@WantAmount AS VARCHAR(32))
END
SET @Msg = N'Teman Anda ' + @NickName + ' ID' + LTRIM(STR(@UserID)) + ' memberi Anda ' + REPLACE(@WantAmountUnit, '.00', '') + ' ingot'
SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
--发送消息
EXEC [WS_SysMessage_Send] @UserID = @AcceptUserID, @Title = N'Pemberitahuan Kedatangan Ingot', @Content = @Msg, @Status = 0, @SourceName = 'Transfer',
@Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
--加元宝(限时返额)
IF(@Refund > 0)
BEGIN
--加筹码
EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = N'玩家转账', @GameID = 0, @WantedAmount = @Refund,
@LogType = 44, @Remark = N'赠送返还', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
END
SET @RetCode = 1
SELECT @RetCode AS RetCode, @ErrMsg AS ErrMsg, @StillAmount AS StillAmount, @Refund AS Refund
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_TransferLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Chip_TransferLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 筹码赠送记录
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Chip_TransferLog]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT TOP 100
AcceptUserID, AcceptNickName, AcceptWantAmount,
CONVERT(CHAR(16), Crdate, 120) AS Crdate
FROM
[ChipTransferLog]
WHERE
Crdate >= GETDATE() - 7 AND UserID = @UserID
ORDER BY
LogID DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Chip_Write] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Chip_Write]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 用户写筹码
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Chip_Write]
@UserID INT, --用户ID
@SourceName NVARCHAR(64), --源名称
@GameID INT, --游戏ID
@Amount BIGINT, --金额
@Tax BIGINT, --台费
@Status TINYINT, --状态(0=无效 1=下注 2=结算 3=派奖 11=下注(扣到零为止) 12=结算(扣减到零))
@IPAddress VARCHAR(16), --IP地址
@Type INT, --下注或结算信息(保留)
@Balance BIGINT OUTPUT, --写分后金额
@RetCode TINYINT OUTPUT --操作结果 1=操作成功 2=操作成功(扣减到零) 11=操作失败 12=参数错误
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
DECLARE @chvRemark NVARCHAR(128) --备注
DECLARE @CurrTime DATETIME --时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @WinAmount BIGINT --赢金币
DECLARE @LoseAmount BIGINT --输金币
DECLARE @PlaySeconds INT --游戏时长(秒)
DECLARE @RefreshTime DATETIME --刷新时间
DECLARE @IsRobot TINYINT --是否机器人
SET @PreAmount = 0
SET @Balance = 0
SET @RetCode = 1 --假设成功
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @WinAmount = 0
SET @LoseAmount = 0
SET @RefreshTime = 0
SET @PlaySeconds = 0
SET @IsRobot = 0
--判断参数
IF(@UserID IS NULL OR @Amount IS NULL)
BEGIN
SET @RetCode = 12
RETURN
END
IF(@UserID <= 0)
BEGIN
SET @IsRobot = 1
END
--是否机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
SET @IsRobot = 1
END
--提高事务隔离级别
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
--开启事务
BEGIN TRAN
--加金币
IF(@Amount >= 0)
BEGIN
UPDATE
[Chip]
SET
Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--增加一个现金帐号
INSERT INTO [Chip](UserID, Amount, Bank) VALUES(@UserID, @Amount, 0)
SET @Balance = @Amount
END
END
--扣减金币
ELSE IF(@Amount < 0)
BEGIN
UPDATE
[Chip]
SET
Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
WHERE
UserID = @UserID AND Amount >= ABS(@Amount)
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
END
END
--提交事务
COMMIT TRAN
--恢复事务隔离级别
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--操作成功
IF(@RetCode != 1)
BEGIN
SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type))) + ',Operate Fail'
IF(@IsRobot = 1)
RETURN
--记录日志
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
RETURN
END
--机器人
IF(@IsRobot = 1)
RETURN
--正常玩家
--游戏税收统计
IF(@Tax > 0)
BEGIN
UPDATE [ChipTax] SET Tax = Tax + @Tax WHERE DateFlag = @DateFlag AND ServerName = @SourceName
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [ChipTax] (DateFlag, ServerName, Tax) VALUES(@DateFlag, @SourceName, @Tax)
END
END
SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type)))
--添加日志
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
--用戶日常统计
--赢金币
IF(@Amount > 0)
BEGIN
SET @WinAmount = @Amount
END
--输金币
ELSE IF(@Amount < 0)
BEGIN
SET @LoseAmount = @Amount
END
--获取今天最后游戏时间
SELECT @RefreshTime = RefreshTime FROM [UserPlayTime] WHERE UserID = @UserID
--计算游戏时长
IF(@RefreshTime >= @DateFlag)
BEGIN
SET @PlaySeconds = DATEDIFF(SECOND, @RefreshTime, @CurrTime)
--超过5分钟
SET @PlaySeconds = CASE WHEN @PlaySeconds >= 300 THEN 0 ELSE @PlaySeconds END
END
-- 下面更新统计
IF(@Amount != 0 OR @Tax != 0)
BEGIN
--统计
IF(@Type % 100 != 99)
BEGIN
--统计
EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @Amount, @TaxSum = @Tax, @LogType = @Type
END
END
--更新
UPDATE
[UserDailyStat]
SET
GameStart = CASE WHEN GameStart = '2021-01-01' THEN @CurrTime ELSE GameStart END, GameEnd = @CurrTime,
PlaySeconds = PlaySeconds + @PlaySeconds
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, 0, 0, 0, @CurrTime, @CurrTime,
@PlaySeconds, 0, 0, 0, 0
)
END
--游戏
IF(@GameID > 0)
BEGIN
--刷新时间
UPDATE [UserPlayTime] SET RefreshTime = @CurrTime WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserPlayTime](UserID, RefreshTime) VALUES(@UserID, @CurrTime)
END
END
--游戏大厅离线
IF(@Type = 99)
BEGIN
INSERT INTO [UserTrack](UserID, Level_1, Level_2, Level_3, Crdate) VALUES(@UserID, N'大厅', N'离线', '', @CurrTime)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_ChipBetRecord_Write] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--EXEC [Game_ChipBetRecord_Write]
-- ==============================================
-- Author: wolf
-- Create Date: 2019-06-24
-- Mendor: wolf
-- Alter Date: 2019-07-11
-- Description: 服务器游戏写记录(筹码)
-- ============================================
CREATE PROCEDURE [dbo].[Game_ChipBetRecord_Write]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@BetSecBefore INT, --结算前几秒下注的
@BetAmount BIGINT, --下注金额
@BetZone VARCHAR(128), --下注描述
@ResultAmount BIGINT, --输赢
@ResultZone VARCHAR(1024), --结果描述
@Tax BIGINT, --产生税收
@Odds DECIMAL(10, 2), --赔率(百为基数)
@TransType VARCHAR(32),
@IpAddress VARCHAR(16), --IP地址
@ServerName NVARCHAR(32) --房间名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @BetTime DATETIME --下注时间
DECLARE @RecordID VARCHAR(32) --记录ID
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Amount BIGINT --金币数
DECLARE @Bank BIGINT --保险柜
DECLARE @WinCount INT --赢局数
DECLARE @WinAmount BIGINT
DECLARE @InvestAmount BIGINT --投注额
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
DECLARE @FreeType INT --免费类型
DECLARE @Score BIGINT --积分
SET @CurrTime = GETDATE()
SET @BetTime = DATEADD(SECOND, -@BetSecBefore, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @RecordID = ''
SET @WinCount = 0
SET @InvestAmount = 0
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
IF(@UserID <= 0)
RETURN
--机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
RETURN
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @RecordID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
--组装成有序的订单
SET @RecordID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(VARCHAR(16), GETDATE(), 114), ':', '') + SUBSTRING(@RecordID, 1, 2)
--添加下注信息
INSERT INTO [ChipBet]
(
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, Tax, StillAmount, Status
)
VALUES
(
@RecordID, @UserID, @GameID, @TransType, @BetAmount, @BetTime, @BetZone, @Odds,
@ResultAmount, @CurrTime, @ResultZone, @Tax, @Amount, 2
)
--计算赢局数
SET @WinCount = CASE WHEN @ResultAmount - @BetAmount > 0 THEN 1 ELSE 0 END
SET @WinAmount = @ResultAmount - @BetAmount
IF(@GameID IN (50, 51, 52, 55, 56, 57, 58, 87))
BEGIN
SET @StartIndex = 1
SET @EndIndex = 0
SET @EndIndex = CHARINDEX('|', @BetZone, @StartIndex)
IF(@EndIndex > 0)
BEGIN
SET @BetAmount = CAST(SUBSTRING(@BetZone, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
SET @StartIndex = @EndIndex + 1
SET @FreeType = CAST(SUBSTRING(@BetZone, @StartIndex, LEN(@BetZone) - @StartIndex + 1) AS INT)
SET @InvestAmount = @BetAmount + CASE WHEN @FreeType = 0 THEN 3 WHEN @FreeType = 1 THEN 4 ELSE 0 END
END
--数据监控
EXEC [Game_SlotChip_Trigger] @UserID = @UserID, @GameID = @GameID, @BetAmount = @BetAmount,
@ResultAmount = @ResultAmount, @WinAmount = @WinAmount, @Tax = @Tax, @InvestAmount = @InvestAmount
END
--活动时间
IF(@CurrTime BETWEEN '2022-05-02 10:00' AND '2022-05-06 23:59:59')
BEGIN
--计算积分
SET @Score = CASE
WHEN @WinAmount > 0 THEN @WinAmount / 1000 * 2 --结果为正,则玩家每1k结算金额可获得2积分
WHEN @WinAmount < 0 THEN ABS(@WinAmount) / 1000 --结果为负,则玩家每1k结算金额可获得1积分
ELSE 0
END
--加积分
IF(@Score > 0)
BEGIN
--更新
UPDATE [UserChipScore] SET Score = Score + @Score WHERE DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserChipScore](DateFlag, UserID, Score) VALUES(@DateFlag, @UserID, @Score)
END
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_ChipLoginStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_ChipLoginStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-17
-- Mendor: wolf
-- Alter Date: 2014-10-77
-- Description: 元宝大厅登录统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_ChipLoginStat_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
LoginCount INT NOT NULL --登录人数
)
--初始化
INSERT INTO @tmptable
(
DateFlag, LoginCount
)
SELECT
DateFlag, LoginCount
FROM
[ChipLoginStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
--统计今天的
IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
BEGIN
--初始化
INSERT INTO @tmptable
(
DateFlag, LoginCount
)
SELECT
DateFlag, COUNT(DISTINCT UserID)
FROM
[ChipStat]
WHERE
DateFlag = CONVERT(CHAR(10), GETDATE(), 120) AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
GROUP BY
DateFlag
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, LoginCount
FROM
@tmptable
ORDER BY
DateFlag DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_ChipStat_Total] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_ChipStat_Total]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2016-07-28
-- Description: 每隔30分钟统计筹码总量
-- ==============================================
CREATE PROCEDURE [dbo].[Game_ChipStat_Total]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @TotalAmount BIGINT --总存量
DECLARE @TotalBank BIGINT --保险柜存量
--现金总量、保险柜存量
SELECT
@TotalAmount = SUM(Amount), @TotalBank = SUM(Bank)
FROM
[Chip]
WHERE
UserID NOT IN (SELECT UserID FROM [MachineUser])
SET @TotalAmount = ISNULL(@TotalAmount, 0)
SET @TotalBank = ISNULL(@TotalBank, 0)
--记录
INSERT INTO [ChipStatTotal]
(
Crdate, TotalAmount, TotalBank
)
VALUES
(
CONVERT(CHAR(16), GETDATE(), 120), @TotalAmount, @TotalBank
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_ChipStat_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_ChipStat_Update]
-- @MoneySum = 1,
-- @TaxSum = 1,
-- @LogType = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-12
-- Mendor: wolf
-- Alter Date: 2014-09-02
-- Description: 游戏筹码统计(暂时只统计普通玩家)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_ChipStat_Update]
@UserID INT, --用户ID
@MoneySum BIGINT, --金币数
@TaxSum BIGINT, --税收
@LogType INT --日志类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--更新统计信息
UPDATE
[ChipStat]
SET
MoneySum = MoneySum + @MoneySum, TaxSum = TaxSum + @TaxSum
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND LogType = @LogType
--还没有统计信息
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [ChipStat]
(
DateFlag, UserID, LogType, MoneySum, TaxSum
)
VALUES
(
@DateFlag, @UserID, @LogType, @MoneySum, @TaxSum
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_CouponTask_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_CouponTask_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 红包券统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_CouponTask_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统时间
DECLARE @DateFlag SMALLDATETIME --日期标识
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @DateFlag = @DateFlag - 1
--0点
IF(DATEPART(HOUR, @CurrTime) != 0)
RETURN
IF(DATEPART(MINUTE, @CurrTime) > 1)
RETURN
--统计
INSERT INTO [CouponStat]
(
DateFlag, CouponCount, UserCount
)
SELECT
@DateFlag, SUM(CouponCount), COUNT(DISTINCT UserID)
FROM
[UserCouponStat]
WHERE
DateFlag >= @DateFlag AND DateFlag < @DateFlag + 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_DailyReport_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_DailyReport_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 每日报表统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_DailyReport_Stat]
@CurrTime DATETIME --系统当前时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @BeginTime DATETIME --开始时间
DECLARE @EndTime DATETIME --截止时间
DECLARE @AvgOnlineCount INT --平均在线
DECLARE @MaxOnlineCount INT --最高在线
DECLARE @RegCount INT --注册用户
DECLARE @LoginCount INT --登陆用户
DECLARE @ActiveCount INT--活跃用户(活跃用户是指参与过游戏的用户)
DECLARE @ReturnUserCount INT --回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
DECLARE @GooglePay DECIMAL(18, 2) --google充值
DECLARE @PayerMaxPay DECIMAL(18, 2) --payerMax充值
DECLARE @ManualPay DECIMAL(18, 2) --手动充值
DECLARE @PayUserCount INT --付费人数
DECLARE @AvgPayMoney DECIMAL(18, 2) --人均付费
DECLARE @ExchangeWithdrawAmount DECIMAL(18, 2) --兑换提现
DECLARE @LiveUsers_1 INT --次日留存
DECLARE @LiveUsers_3 INT --3日留存
DECLARE @LiveUsers_7 INT --7日留存
DECLARE @SystemStock BIGINT --系统存量
DECLARE @SystemSend BIGINT --系统发放
DECLARE @SystemDel BIGINT --系统回收
DECLARE @GameSend BIGINT --游戏发放
DECLARE @GameDel BIGINT --游戏回收
DECLARE @PayUsers_1 INT --第1天充值人数
DECLARE @PayMoney_1 DECIMAL(18, 2) --第1天充值金额
DECLARE @PayMoney_2 DECIMAL(18, 2) --第2天充值金额
DECLARE @PayMoney_3 DECIMAL(18, 2) --第3天充值金额
DECLARE @PayMoney_7 DECIMAL(18, 2) --第7天充值金额
DECLARE @PlatformName VARCHAR(32) --平台名称
DECLARE @Rate INT --比率
DECLARE @GoldSend BIGINT --币商充值
DECLARE @GoldSendUsers INT --币商充值用户数
DECLARE @GoldDel BIGINT --币商支出
DECLARE @GoldDelUsers INT --币商支出用户数
--表变量
DECLARE @tmptable TABLE(
LogType INT NOT NULL, --日志类型
Amount BIGINT NOT NULL --金额
)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
SET @BeginTime = @DateFlag
SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
SET @Rate = 1
SELECT
@AvgOnlineCount = AvgOnlineCount, @MaxOnlineCount = MaxOnlineCount,
@LoginCount = LoginCount, @ActiveCount = ActiveCount, @ReturnUserCount = ReturnUserCount,
@PayUserCount = PayUserCount, @AvgPayMoney = AvgPayMoney,
@RegCount = RegCount, @LiveUsers_1 = LiveUsers_1, @LiveUsers_3 = LiveUsers_3, @LiveUsers_7 = LiveUsers_7
FROM
[DailyStat]
WHERE
DateFlag = @DateFlag
--平台名称
SELECT @PlatformName = PlatformName FROM [PlatformConfig] WHERE ConfigID = 1
IF(@PlatformName IN ('Egypt'))
BEGIN
SET @Rate = 100
END
--=======================================1=用户数据==============================================
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'平均在线', @AvgOnlineCount, 1, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'最高在线', @MaxOnlineCount, 1, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'登录用户', @LoginCount, 1, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'游戏用户', @ActiveCount, 1, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'回归用户', @ReturnUserCount, 1, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'付费人数', @PayUserCount, 1, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'人均付费', @AvgPayMoney / @Rate, 1, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'付费率', CAST(@PayUserCount * 100.00 / ISNULL(@LoginCount, 1) AS DECIMAL(18, 2)), 1, 2, @CurrTime
--=======================================2=充值提现数据==============================================
--谷歌充值
SELECT @GooglePay = SUM(Price / @Rate) FROM [GoogleSuccessLog] WHERE Crdate BETWEEN @BeginTime AND @EndTime
IF(@GooglePay >= 0)
BEGIN
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
VALUES
(
@DateFlag, N'谷歌充值', @GooglePay, 2, 1, @CurrTime
)
END
--PayerMaxPay
SELECT @PayerMaxPay = SUM(Price / @Rate) FROM [PayerMaxPay] WHERE Crdate BETWEEN @BeginTime AND @EndTime
IF(@PayerMaxPay >= 0)
BEGIN
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
VALUES
(
@DateFlag, N'Payermax充值', @PayerMaxPay, 2, 1, @CurrTime
)
END
--手动充值
SELECT @ManualPay = SUM(Price / @Rate) FROM [ManualPay] WHERE Crdate BETWEEN @BeginTime AND @EndTime
IF(@ManualPay >= 0)
BEGIN
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
VALUES
(
@DateFlag, N'手动充值', @ManualPay, 2, 1, @CurrTime
)
END
--兑换提现
SELECT
@ExchangeWithdrawAmount = SUM(e.Amount)
FROM
[Exchange] e INNER JOIN [ExchangeHistory] h ON e.Id = h.ExchangeID
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Amount > 0
SET @ExchangeWithdrawAmount = ISNULL(@ExchangeWithdrawAmount, 0)
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
VALUES
(
@DateFlag, N'兑换提现', @ExchangeWithdrawAmount, 2, 2, @CurrTime
)
--币商充值
SELECT
@GoldSend = SUM(WantAmount), @GoldSendUsers = COUNT(DISTINCT AcceptUserID)
FROM
[TransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID IN (29803034)
IF(@GoldSend != 0)
BEGIN
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'币商充值', ABS(@GoldSend) / 10500, 2, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'币商充值人数', @GoldSendUsers, 2, 90, @CurrTime
END
--币商支出
SELECT
@GoldDel = SUM(WantAmount), @GoldDelUsers = COUNT(DISTINCT UserID)
FROM
[TransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND AcceptUserID IN (29803034)
IF(@GoldDel != 0)
BEGIN
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'币商支出', ABS(@GoldDel) / 11500, 2, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'币商支出人数', @GoldDelUsers, 2, 91, @CurrTime
END
--=======================================3=注册留存==============================================
SELECT
@PayUsers_1 = PayUsers_1, @PayMoney_1 = PayMoney_1, @PayMoney_2 = PayMoney_2,
@PayMoney_3 = PayMoney_3, @PayMoney_7 = PayMoney_7
FROM
[NewUserStat]
WHERE
DateFlag = @DateFlag AND Source = 'All Source'
--注册用户数
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'注册用户', @RegCount, 3, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'次日留存', @LiveUsers_1, 3, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'次日留存率', CAST(@LiveUsers_1 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2)), 3, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'3日留存', @LiveUsers_3, 3, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'3日留存率', CAST(@LiveUsers_3 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2)), 3, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'7日留存', @LiveUsers_7, 3, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'7日留存率', CAST(@LiveUsers_7 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2)), 3, 2, @CurrTime
/*
UNION ALL
SELECT @DateFlag, N'当日充值人数', @PayUsers_1, 3, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'当日充值', @PayMoney_1 / @Rate, 3, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'次日充值', @PayMoney_2 / @Rate, 3, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'3日充值', @PayMoney_3 / @Rate, 3, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'7日充值', @PayMoney_7 / @Rate, 3, 3, @CurrTime
*/
--=======================================4=金币收支==============================================
--系统存量
SELECT @SystemStock = SUM(TotalAmount + TotalBank) FROM [MoneyStatTotal] WHERE Crdate = @DateFlag + 1
SET @SystemStock = ISNULL(@SystemStock, 0)
--初始化表变量
INSERT INTO @tmptable(LogType, Amount)
SELECT
LogType, SUM(MoneySum)
FROM
[MoneyStat]
WHERE
DateFlag = @DateFlag AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
LogType
--系统发放、系统回收
SELECT
@SystemSend = SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END),
@SystemDel = SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END)
FROM
@tmptable
WHERE
LogType < 1000
SET @SystemSend = ISNULL(@SystemSend, 0)
SET @SystemDel = ISNULL(@SystemDel, 0)
--游戏发放、游戏回收
SELECT
@GameSend = SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END),
@GameDel = SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END)
FROM
@tmptable
WHERE
LogType >= 1000
SET @GameSend = ISNULL(@GameSend, 0)
SET @GameDel = ISNULL(@GameDel, 0)
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'金币存量', @SystemStock, 4, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'系统发放', @SystemSend, 4, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'系统回收', @SystemDel, 4, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'游戏发放', @GameSend, 4, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'游戏回收', @GameDel, 4, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'游戏净回收', @GameDel + @GameSend, 4, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'回收率', CAST((@GameDel + @GameSend) * 100.00 / ISNULL(@GameDel, 1) AS DECIMAL(18, 2)), 4, 3, @CurrTime
--=======================================初始化==============================================
INSERT INTO [DailyReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'总收入', 0, 2, 100, @CurrTime
UNION ALL
SELECT @DateFlag, N'总支出', 0, 2, 101, @CurrTime
UNION ALL
SELECT @DateFlag, N'投放成本', 0, 2, 102, @CurrTime
UNION ALL
SELECT @DateFlag, N'收入/投放', 0, 2, 103, @CurrTime
UNION ALL
SELECT @DateFlag, N'提现/充值', 0, 2, 104, @CurrTime
UNION ALL
SELECT @DateFlag, N'充提差', 0, 2, 105, @CurrTime
UNION ALL
SELECT @DateFlag, N'毛利', 0, 2, 106, @CurrTime
UNION ALL
SELECT @DateFlag, N'ArpuDau', 0, 1, 101, @CurrTime
UNION ALL
SELECT @DateFlag, N'Arppu', 0, 1, 102, @CurrTime
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_DailyStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_DailyStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 日常统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_DailyStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @AvgOnlineCount INT --平均在线
DECLARE @MaxOnlineCount INT --最高在线
DECLARE @RegCount INT --注册用户
DECLARE @LoginCount INT --登陆用户
DECLARE @ActiveCount INT--活跃用户(活跃用户是指参与过游戏的用户)
DECLARE @PayMoney DECIMAL(18, 2) --充值
DECLARE @CosumeAmount INT --消耗货币(消耗货币是指昨日的货币总额变化数量)
DECLARE @PayUserCount INT --付费人数
DECLARE @AvgPayMoney DECIMAL(18, 2) --人均付费
DECLARE @LiveUsers_1 INT --次日留存
DECLARE @LiveUsers_3 INT --3日留存
DECLARE @LiveUsers_7 INT --7日留存
DECLARE @ReturnUserCount INT --回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
DECLARE @YesterDayUserCount INT --昨天登录用户数
DECLARE @LoginUserCount INT --最近10天登陆的用户数
DECLARE @VideoPlayTimes INT --视频广告播放次数
DECLARE @VideoSendAmount BIGINT --视频广告播放赠送金币
DECLARE @tmpBet TABLE(
UserID INT NOT NULL --用户ID
)
--表变量
DECLARE @tmpUser TABLE(UserID INT NOT NULL)
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--获取昨天在线
SELECT
@AvgOnlineCount = AVG(OnlineUserCount), @MaxOnlineCount = MAX(OnlineUserCount)
FROM
[OnlineStat]
WHERE
DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND PartnerID = -1
--注册用户(当天的零点,就是前一天的结点)
SELECT TOP 1 @RegCount = UserCount FROM [RegStat] WHERE DateFlag >= @DateFlag ORDER BY DateFlag ASC
--登陆用户
SELECT
@LoginCount = COUNT(DISTINCT UserID)
FROM
[UserLoginLog_bak]
WHERE
Crdate >= @DateFlag - 1 AND Crdate < @DateFlag AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--下注用户
INSERT INTO @tmpBet(UserID)
SELECT UserID FROM [Bet] WHERE BetTime >= @DateFlag - 1 AND BetTime < @DateFlag
UNION ALL
SELECT UserID FROM [BetInfoHistory] WHERE BetTime >= @DateFlag - 1 AND BetTime < @DateFlag
--活跃用户(活跃用户是指参与过游戏的用户)
SELECT
@ActiveCount = COUNT(DISTINCT UserID)
FROM
@tmpBet
WHERE
UserID NOT IN (SELECT UserID FROM [MachineUser])
--充值、付费人数
SELECT
@PayMoney = ISNULL(SUM(RMBMoney), 0), @PayUserCount = COUNT(DISTINCT UserID)
FROM
[UserPayLog]
WHERE
DateFlag = @DateFlag - 1 AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--平均付费
SET @AvgPayMoney = @PayMoney / CASE WHEN @PayUserCount = 0 THEN 1 ELSE @PayUserCount END
--留存统计
SELECT
@LiveUsers_1 = LiveUsers_1, @LiveUsers_3 = LiveUsers_3, @LiveUsers_7 = LiveUsers_7
FROM
[LiveStat]
WHERE
DateFlag = @DateFlag - 1 AND PartnerID = 1
--昨天登陆的用户(排除注册用户)
INSERT INTO @tmpUser(UserID)
SELECT UserID FROM [AllUser] WHERE LoginTime >= @DateFlag - 1 AND RegTime < @DateFlag - 1 AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--昨天登陆的用户数
SET @YesterDayUserCount = @@ROWCOUNT
--最近10天登陆的用户数
SELECT
@LoginUserCount = COUNT(DISTINCT u.UserID)
FROM
[UserLoginLog_bak] b INNER JOIN @tmpUser u ON b.UserID = u.UserID
WHERE
b.Crdate >= @DateFlag - 11 AND b.Crdate < @DateFlag - 1
--回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
SELECT @ReturnUserCount = @YesterDayUserCount - @LoginUserCount
--视频广告
SELECT
@VideoPlayTimes = SUM(VideoPlayTimes), @VideoSendAmount = SUM(VideoSendAmount)
FROM
[UserDailyStat]
WHERE
DateFlag = @DateFlag - 1
SELECT
@AvgOnlineCount = ISNULL(@AvgOnlineCount, 0), @MaxOnlineCount = ISNULL(@MaxOnlineCount, 0),
@RegCount = ISNULL(@RegCount, 0), @LoginCount = ISNULL(@LoginCount, 0),
@ActiveCount = ISNULL(@ActiveCount, 0), @PayMoney = ISNULL(@PayMoney, 0),
@CosumeAmount = ISNULL(@CosumeAmount, 0), @PayUserCount = ISNULL(@PayUserCount, 0),
@AvgPayMoney = ISNULL(@AvgPayMoney, 0), @LiveUsers_1 = ISNULL(@LiveUsers_1, 0),
@LiveUsers_3 = ISNULL(@LiveUsers_3, 0), @LiveUsers_7 = ISNULL(@LiveUsers_7, 0),
@ReturnUserCount = ISNULL(@ReturnUserCount, 0), @VideoPlayTimes = ISNULL(@VideoPlayTimes, 0),
@VideoSendAmount = ISNULL(@VideoSendAmount, 0)
--记录
INSERT INTO [DailyStat]
(
DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag - 1, @AvgOnlineCount, @MaxOnlineCount, @RegCount, @LoginCount, @ActiveCount, @PayMoney,
@CosumeAmount, @PayUserCount, @AvgPayMoney, @LiveUsers_1, @LiveUsers_3, @LiveUsers_7, @ReturnUserCount,
@VideoPlayTimes, @VideoSendAmount
)
--更新次日留存
--UPDATE [DailyStat] SET TodayLiveCount = @TodayLiveCount WHERE DateFlag = @DateFlag - 2
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_GameDailyStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_GameDailyStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 游戏日常统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_GameDailyStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @tmpOnline TABLE(
GameID INT NOT NULL, --游戏ID
ServerName NVARCHAR(32) NOT NULL, --服务器名称
AvgOnlineCount INT NOT NULL, --平均在线
MaxOnlineCount INT NOT NULL --最高在线
)
--游戏日常统计
DECLARE @tmptable TABLE(
GameID INT NOT NULL, --游戏ID
ServerName NVARCHAR(32) NOT NULL, --服务器名称
AvgOnlineCount INT NOT NULL, --平均在线
MaxOnlineCount INT NOT NULL, --最高在线
ActiveCount INT NOT NULL, --活跃用户(指有消耗的用户数)
BetAmount BIGINT NOT NULL, --下注金额
ResultAmount BIGINT NOT NULL --结算金额
)
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--初始化表变量
INSERT INTO @tmptable
(
GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
)
SELECT
GameID, ServerName, 0, 0, SUM(BetAmount), SUM(ResultAmount), COUNT(DISTINCT UserID)
FROM
[DailyBetStat]
WHERE
DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag
GROUP BY
GameID, ServerName
--在线统计
INSERT INTO @tmpOnline
(
GameID, ServerName, AvgOnlineCount, MaxOnlineCount
)
SELECT
GameID, ServerName, AVG(OnlineUserCount), MAX(OnlineUserCount)
FROM
[OnlineStat]
WHERE
DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND GameID > 0
GROUP BY
GameID, ServerName
--获取在线统计
UPDATE
t
SET
t.AvgOnlineCount = o.AvgOnlineCount, t.MaxOnlineCount = o.MaxOnlineCount
FROM
@tmptable t INNER JOIN @tmpOnline o ON t.GameID = o.GameID AND t.ServerName = o.ServerName
--记录
INSERT INTO [GameDailyStat]
(
DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, ActiveCount, BetAmount, ResultAmount
)
SELECT
@DateFlag - 1, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, ActiveCount, BetAmount, ResultAmount
FROM
@tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_GameData_GetRecordList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_GameData_GetRecordList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-06-25
-- Mendor: wolf
-- Alter Date: 2016-11-03
-- Description: 查询记录
-- ==============================================
CREATE PROCEDURE [dbo].[Game_GameData_GetRecordList]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@RoomName VARCHAR(32), --房间名称
@RecordCount INT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RowCount INT --行数
--表变量
DECLARE @tmptable TABLE(RoomData VARCHAR(512) NOT NULL)
--查询记录
INSERT INTO @tmptable(RoomData)
SELECT TOP (@RecordCount)
RoomData
FROM
[GameData]
WHERE
UserID = @UserID AND GameID = @GameID AND RoomName = @RoomName
ORDER BY
Rid DESC
--行数
SET @RowCount = @@ROWCOUNT
--记录数不够
IF(@RowCount < @RecordCount)
BEGIN
--查询记录
INSERT INTO @tmptable(RoomData)
SELECT TOP (@RecordCount - @RowCount)
RoomData
FROM
[GameDataHistory]
WHERE
UserID = @UserID AND GameID = @GameID AND RoomName = @RoomName
ORDER BY
Rid DESC
END
SELECT RoomData FROM @tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_GameData_WriteRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_GameData_WriteRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-06-25
-- Mendor: wolf
-- Alter Date: 2016-11-03
-- Description: 游戏数据写记录
-- ==============================================
CREATE PROCEDURE [dbo].[Game_GameData_WriteRecord]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@RoomName VARCHAR(32), --房间名称
@RoomData VARCHAR(512) --房间数据
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
RETURN
--记录数据
INSERT INTO [GameData]
(
UserID, GameID, RoomName, RoomData, Crdate
)
VALUES
(
@UserID, @GameID, @RoomName, @RoomData, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_GameReport_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_GameReport_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 游戏报表统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_GameReport_Stat]
@CurrTime DATETIME
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
--表变量
DECLARE @tmptable TABLE(
LogType INT NOT NULL, --日志类型
GameID INT NOT NULL, --游戏ID
ChineseName NVARCHAR(32) NOT NULL, --游戏名称
Amount BIGINT NOT NULL --金额
)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
--初始化表变量
INSERT INTO @tmptable(LogType, GameID, ChineseName, Amount)
SELECT
LogType, 0, '', SUM(MoneySum + TaxSum)
FROM
[MoneyStat]
WHERE
DateFlag = @DateFlag AND UserID NOT IN (SELECT UserID FROM [MachineUser]) AND LogType >= 1000
GROUP BY
LogType
--获取游戏信息
UPDATE
t
SET
t.GameID = m.GameID, t.ChineseName = m.ChineseName
FROM
@tmptable t INNER JOIN [MoneyLogType] m ON t.LogType = m.LogType
--游戏发行
INSERT INTO [GameReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT
@DateFlag, ChineseName + N'发行', SUM(Amount), GameID, 1, @CurrTime
FROM
@tmptable
WHERE
Amount > 0
GROUP BY
ChineseName, GameID
--游戏消耗
INSERT INTO [GameReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT
@DateFlag, ChineseName + N'消耗', SUM(Amount), GameID, 2, @CurrTime
FROM
@tmptable
WHERE
Amount < 0
GROUP BY
ChineseName, GameID
--游戏净消耗
INSERT INTO [GameReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT
@DateFlag, ChineseName + N'净消耗', SUM(Amount), GameID, 3, @CurrTime
FROM
@tmptable
GROUP BY
ChineseName, GameID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Issue_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Issue_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 发行统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Issue_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @LoginUserCount INT --登录用户数
DECLARE @PayMoney DECIMAL(18, 2) --充值金额
DECLARE @PayUserCount INT --充值人数
DECLARE @GameUserCount_1 INT --1局以上玩牌人数
DECLARE @GameUserCount_3 INT --3局以上玩牌人数
DECLARE @GameUserCount_7 INT --7局以上玩牌人数
DECLARE @SubsidyUserCount INT --破产人数
DECLARE @RegUserCount INT --注册用户数
DECLARE @GuideStempUserCount INT --新手引导玩家数
DECLARE @LiveRegUserCount INT --留存注册用户数
DECLARE @LiveLoginUserCount INT --留存登录用户数
DECLARE @TodaySeconds INT --今天在线时长
-- 登录用户表变量
DECLARE @tmpLoginUser TABLE(
UserID INT NOT NULL, --用户ID
RegTime DATETIME NOT NULL, --注册时间
PayMoney DECIMAL(18, 2) NOT NULL, --充值金额
GameCount INT NOT NULL, --游戏局数
IsGuideStep TINYINT NOT NULL, --是否新手引导
IsSubsidy TINYINT NOT NULL, --是否破产
TodaySeconds INT NOT NULL --今天在线时长
)
--表变量
DECLARE @tmptable TABLE(
Rid INT IDENTITY NOT NULL, --标识
ItemType TINYINT NOT NULL, --项类型(1=总盘 2=新玩家 3=老玩家)
ItemName NVARCHAR(32) NOT NULL, --项名称
ItemValue DECIMAL(18, 2) NOT NULL --项值
)
SET @DateFlag = CONVERT(CHAR(10), GETDATE() - 1, 120)
SET @LoginUserCount = 0
SET @PayMoney = 0
SET @PayUserCount = 0
SET @GameUserCount_1 = 0
SET @GameUserCount_3 = 0
SET @GameUserCount_7 = 0
SET @SubsidyUserCount = 0
SET @RegUserCount = 0
SET @GuideStempUserCount = 0
SET @LiveRegUserCount = 0
SET @LiveLoginUserCount = 0
SET @TodaySeconds = 0
--初始化表变量
INSERT INTO @tmpLoginUser
(
UserID, RegTime, PayMoney, GameCount, IsGuideStep, IsSubsidy, TodaySeconds
)
SELECT
UserID, RegTime, 0, 0, 0, 0, 0
FROM
[AllUser]
WHERE
LoginTime >= @DateFlag
--获取充值金额
UPDATE
t
SET
t.PayMoney = p.RMBMoney
FROM
@tmpLoginUser t INNER JOIN [UserPayLog] p ON t.UserID = p.UserID AND p.DateFlag = @DateFlag
--游戏局数
UPDATE
t
SET
t.GameCount = b.TotalCount
FROM
@tmpLoginUser t INNER JOIN [DailyBetStat] b ON t.UserID = b.UserID
WHERE
b.DateFlag = @DateFlag AND b.GameID IN (37)
--新手引导
UPDATE
t
SET
t.IsGuideStep = 1
FROM
@tmpLoginUser t INNER JOIN [UserTask] ut ON t.UserID = ut.UserID AND ut.TaskID = 20014 AND ut.Scheduled > 0
WHERE
t.RegTime >= @DateFlag
--破产补助
UPDATE
t
SET
t.IsSubsidy = 1
FROM
@tmpLoginUser t INNER JOIN [UserSubsidy] us ON t.UserID = us.UserID AND us.Crdate >= @DateFlag AND us.GiftTimes > 0
--今天在线时长
UPDATE
t
SET
t.TodaySeconds = o.TodaySeconds
FROM
@tmpLoginUser t INNER JOIN [t_onlinetime] o ON t.UserID = o.UserID
--------------------------------------大盘-------------------------------------------------
--统计
SELECT
@LoginUserCount = COUNT(UserID), @PayMoney = ISNULL(SUM(PayMoney), 0),
@PayUserCount = ISNULL(SUM(CASE WHEN PayMoney > 0 THEN 1 ELSE 0 END), 0),
@GameUserCount_1 = ISNULL(SUM(CASE WHEN GameCount >= 1 THEN 1 ELSE 0 END), 0),
@GameUserCount_3 = ISNULL(SUM(CASE WHEN GameCount >= 3 THEN 1 ELSE 0 END), 0),
@GameUserCount_7 = ISNULL(SUM(CASE WHEN GameCount >= 7 THEN 1 ELSE 0 END), 0),
@SubsidyUserCount = ISNULL(SUM(IsSubsidy), 0)
FROM
@tmpLoginUser
--记录
INSERT INTO @tmptable
(
ItemType, ItemName, ItemValue
)
SELECT 1, N'DAU', @LoginUserCount
UNION ALL
SELECT 1, N'充值金额', @PayMoney
UNION ALL
SELECT 1, N'充值人数', @PayUserCount
UNION ALL
SELECT 1, N'付费率', CAST(@PayUserCount * 100.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 1, N'ARPU', CAST(@PayMoney * 1.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 1, N'ARPPU', CAST(@PayMoney * 1.00 / CASE WHEN @PayUserCount = 0 THEN 1 ELSE ISNULL(@PayUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 1, N'三局玩牌率', CAST(@GameUserCount_3 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 1, N'七局玩牌率', CAST(@GameUserCount_7 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 1, N'破产率', CAST(@SubsidyUserCount * 100.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 1, N'日活次留率', 0
--清空数据
SET @LoginUserCount = 0
SET @PayMoney = 0
SET @PayUserCount = 0
SET @GameUserCount_1 = 0
SET @GameUserCount_3 = 0
SET @GameUserCount_7 = 0
SET @SubsidyUserCount = 0
SET @TodaySeconds = 0
--------------------------------------新玩家-------------------------------------------------
--统计
SELECT
@RegUserCount = COUNT(UserID), @PayMoney = ISNULL(SUM(PayMoney), 0),
@PayUserCount = ISNULL(SUM(CASE WHEN PayMoney > 0 THEN 1 ELSE 0 END), 0),
@GuideStempUserCount = ISNULL(SUM(IsGuideStep), 0), @SubsidyUserCount = ISNULL(SUM(IsSubsidy), 0),
@GameUserCount_1 = ISNULL(SUM(CASE WHEN GameCount >= 1 THEN 1 ELSE 0 END), 0),
@TodaySeconds = ISNULL(SUM(TodaySeconds), 0)
FROM
@tmpLoginUser
WHERE
RegTime >= @DateFlag
--记录
INSERT INTO @tmptable
(
ItemType, ItemName, ItemValue
)
SELECT 2, N'新增注册', @RegUserCount
UNION ALL
SELECT 2, N'充值金额', @PayMoney
UNION ALL
SELECT 2, N'充值人数', @PayUserCount
UNION ALL
SELECT 2, N'付费率', CAST(@PayUserCount * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 2, N'新手引导率', CAST(@GuideStempUserCount * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 2, N'开局率', CAST(@GameUserCount_1 * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 2, N'破产率', CAST(@SubsidyUserCount * 100.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 2, N'ARPU', CAST(@PayMoney * 1.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 2, N'ARPPU', CAST(@PayMoney * 1.00 / CASE WHEN @PayUserCount = 0 THEN 1 ELSE ISNULL(@PayUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 2, N'次留率', 0
UNION ALL
SELECT 2, N'人均时长', CAST(@TodaySeconds * 1.00 / CASE WHEN @RegUserCount = 0 THEN 1 ELSE ISNULL(@RegUserCount, 1) END AS DECIMAL(18, 2))
--清空数据
SET @LoginUserCount = 0
SET @RegUserCount = 0
SET @PayMoney = 0
SET @PayUserCount = 0
SET @GuideStempUserCount = 0
SET @SubsidyUserCount = 0
SET @GameUserCount_1 = 0
SET @GameUserCount_3 = 0
SET @GameUserCount_7 = 0
SET @TodaySeconds = 0
--------------------------------------老玩家-------------------------------------------------
--统计
SELECT
@LoginUserCount = COUNT(UserID), @PayMoney = SUM(PayMoney),
@PayUserCount = ISNULL(SUM(CASE WHEN PayMoney > 0 THEN 1 ELSE 0 END), 0),
@GameUserCount_1 = ISNULL(SUM(CASE WHEN GameCount >= 1 THEN 1 ELSE 0 END), 0),
@GameUserCount_3 = ISNULL(SUM(CASE WHEN GameCount >= 3 THEN 1 ELSE 0 END), 0),
@GameUserCount_7 = ISNULL(SUM(CASE WHEN GameCount >= 7 THEN 1 ELSE 0 END), 0),
@SubsidyUserCount = ISNULL(SUM(IsSubsidy), 0)
FROM
@tmpLoginUser
WHERE
RegTime < @DateFlag
--记录
INSERT INTO @tmptable
(
ItemType, ItemName, ItemValue
)
SELECT 3, N'DAU', @LoginUserCount
UNION ALL
SELECT 3, N'充值金额', @PayMoney
UNION ALL
SELECT 3, N'充值人数', @PayUserCount
UNION ALL
SELECT 3, N'付费率', CAST(@PayUserCount * 100.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 3, N'ARPU', CAST(@PayMoney * 1.00 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE ISNULL(@LoginUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 3, N'ARPPU', CAST(@PayMoney * 1.00 / CASE WHEN @PayUserCount = 0 THEN 1 ELSE ISNULL(@PayUserCount, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 3, N'三局玩牌率', CAST(@GameUserCount_3 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
UNION ALL
SELECT 3, N'七局玩牌率', CAST(@GameUserCount_7 * 100.00 / CASE WHEN @GameUserCount_1 = 0 THEN 1 ELSE ISNULL(@GameUserCount_1, 1) END AS DECIMAL(18, 2))
--清空数据
SET @LoginUserCount = 0
SET @RegUserCount = 0
SET @PayMoney = 0
SET @PayUserCount = 0
SET @GuideStempUserCount = 0
SET @SubsidyUserCount = 0
SET @GameUserCount_1 = 0
SET @GameUserCount_3 = 0
SET @GameUserCount_7 = 0
SET @TodaySeconds = 0
--------------------------------------注册次留-------------------------------------------------
--统计
SELECT
@LiveRegUserCount = COUNT(UserID),
@LiveLoginUserCount = ISNULL(SUM(CASE WHEN LoginTime BETWEEN @DateFlag AND @DateFlag + 1 THEN 1 ELSE 0 END), 0)
FROM
[AllUser]
WHERE
RegTime BETWEEN @DateFlag - 1 AND @DateFlag
--补齐前天次留
UPDATE
[IssueStat]
SET
ItemValue = CAST(@LiveLoginUserCount * 100.00 / CASE WHEN @LiveRegUserCount = 0 THEN 1 ELSE ISNULL(@LiveRegUserCount, 1) END AS DECIMAL(18, 2))
WHERE
DateFlag = @DateFlag - 1 AND ItemName = N'次留率'
SET @LiveLoginUserCount = 0
SET @LoginUserCount = 0
--------------------------------------日活次留-------------------------------------------------
--统计第2天登录
SELECT
@LiveLoginUserCount = COUNT(u.UserID)
FROM
[UserDailyStat] u INNER JOIN @tmpLoginUser t ON u.UserID = t.UserID
WHERE
u.DateFlag = @DateFlag - 1
--前天日活
SELECT @LoginUserCount = ItemValue FROM [IssueStat] WHERE DateFlag = @DateFlag - 1 AND ItemType = 1 AND ItemName = N'DAU'
--补齐前天日活次留
UPDATE
[IssueStat]
SET
ItemValue = CAST(@LiveLoginUserCount * 100 / CASE WHEN @LoginUserCount = 0 THEN 1 ELSE @LoginUserCount END AS DECIMAL(18, 2))
WHERE
DateFlag = @DateFlag - 1 AND ItemName = N'日活次留率'
--------------------------------------永久保存统计数据-------------------------------------------------
INSERT INTO [IssueStat]
(
DateFlag, LabelID, ItemType, ItemName, ItemValue
)
SELECT
@DateFlag, '', ItemType, ItemName, ItemValue
FROM
@tmptable
ORDER BY
Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPot_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPot_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 获取游戏奖池信息
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPot_GetInfo]
@GameID INT, --用户ID
@Amount BIGINT OUTPUT --奖池金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @Amount = 0
--获取信息
SELECT @Amount = Amount FROM [JackPot] WHERE GameID = @GameID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPot_Incr] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPot_Incr]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 放入奖池
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPot_Incr]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Amount BIGINT, --操作金额(必须大于0)
@Balance BIGINT OUTPUT --剩余金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
SET @PreAmount = 0
SET @Balance = 0
IF(@Amount IS NULL OR @Amount <= 0)
RETURN
--添加金额
UPDATE
[JackPot]
SET
Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
WHERE
GameID = @GameID
--还没有数据
IF(@@ROWCOUNT = 0)
BEGIN
SET @Balance = @Amount
INSERT INTO [JackPot](GameID, Amount) VALUES(@GameID, @Amount)
END
--加记录
INSERT INTO [JackPotRecord]
(
GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
)
VALUES
(
@GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPot_Modify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPot_Modify]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 奖池修改
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPot_Modify]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Amount BIGINT --操作金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
SET @PreAmount = 0
IF(@Amount IS NULL)
RETURN
--添加金额
UPDATE [JackPot] SET Amount = @Amount, @PreAmount = Amount WHERE GameID = @GameID
--还没有数据
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [JackPot](GameID, Amount) VALUES(@GameID, @Amount)
END
--加记录
INSERT INTO [JackPotRecord]
(
GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
)
VALUES
(
@GameID, @UserID, @PreAmount, @Amount - @PreAmount, @Amount, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPot_Sub] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPot_Sub]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 扣减游戏奖池(用于派奖)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPot_Sub]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Amount BIGINT, --操作金额(必须大于0)
@Balance BIGINT OUTPUT --当前
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
DECLARE @Msg VARCHAR(1024) --系统消息
SET @Balance = 0
IF(@Amount IS NULL OR @Amount <= 0)
RETURN
--扣减
UPDATE
[JackPot]
SET
Amount = Amount - @Amount, @PreAmount = Amount, @Balance = Amount - @Amount
WHERE
GameID = @GameID AND Amount >= @Amount
--扣减失败
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = 'JackPot_Sub fail UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
',@Amount=' + LTRIM(STR(@Amount))
RETURN
END
--记录
INSERT INTO [JackPotRecord]
(
GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
)
VALUES
(
@GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPotChip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPotChip_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 获取游戏奖池信息
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPotChip_GetInfo]
@GameID INT, --用户ID
@Amount BIGINT OUTPUT --奖池金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @Amount = 0
--获取信息
SELECT @Amount = Amount FROM [JackPotChip] WHERE GameID = @GameID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPotChip_Incr] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPotChip_Incr]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 放入奖池
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPotChip_Incr]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Amount INT, --操作金额(必须大于0)
@Balance BIGINT OUTPUT --剩余金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
SET @PreAmount = 0
SET @Balance = 0
IF(@Amount IS NULL OR @Amount <= 0)
RETURN
--添加金额
UPDATE
[JackPotChip]
SET
Amount = Amount + @Amount, @PreAmount = Amount, @Balance = Amount + @Amount
WHERE
GameID = @GameID
--还没有数据
IF(@@ROWCOUNT = 0)
BEGIN
SET @Balance = @Amount
INSERT INTO [JackPotChip](GameID, Amount) VALUES(@GameID, @Amount)
END
--加记录
INSERT INTO [JackPotChipRecord]
(
GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
)
VALUES
(
@GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPotChip_Modify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPotChip_Modify]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 奖池修改
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPotChip_Modify]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Amount INT --操作金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
SET @PreAmount = 0
IF(@Amount IS NULL)
RETURN
--添加金额
UPDATE [JackPotChip] SET Amount = @Amount, @PreAmount = Amount WHERE GameID = @GameID
--还没有数据
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [JackPotChip](GameID, Amount) VALUES(@GameID, @Amount)
END
--加记录
INSERT INTO [JackPotChipRecord]
(
GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
)
VALUES
(
@GameID, @UserID, @PreAmount, @Amount - @PreAmount, @Amount, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_JackPotChip_Sub] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_JackPotChip_Sub]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 扣减游戏奖池(用于派奖)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_JackPotChip_Sub]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Amount INT, --操作金额(必须大于0)
@Balance BIGINT OUTPUT --当前
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
DECLARE @Msg VARCHAR(1024) --系统消息
SET @Balance = 0
IF(@Amount IS NULL OR @Amount <= 0)
RETURN
--扣减
UPDATE
[JackPotChip]
SET
Amount = Amount - @Amount, @PreAmount = Amount, @Balance = Amount - @Amount
WHERE
GameID = @GameID AND Amount >= @Amount
--扣减失败
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = 'JackPotChip_Sub fail UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
',@Amount=' + LTRIM(STR(@Amount))
RETURN
END
--记录
INSERT INTO [JackPotChipRecord]
(
GameID, FromUserID, PreAmount, WantAmount, StillAmount, Crdate
)
VALUES
(
@GameID, @UserID, @PreAmount, @Amount, @Balance, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_LabelLiveStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_LabelLiveStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 标签留存统计(每天凌晨0:00执行,供作业调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_LabelLiveStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @StatFlag SMALLDATETIME --统计日期标识
DECLARE @LabelID VARCHAR(32) --标签ID
DECLARE @RegCount INT --注册人数
DECLARE @LiveUsers_1 INT --次日留存
DECLARE @LiveUsers_3 INT --3日留存
DECLARE @LiveUsers_5 INT --5日留存
DECLARE @LiveUsers_7 INT --7日留存
DECLARE @LiveUsers_15 INT --15日留存
DECLARE @LiveUsers_30 INT --30日留存
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @Days INT --天数
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
LabelID VARCHAR(32) NOT NULL --标签ID
)
SET @DateFlag = CONVERT(CHAR(10), GETDATE() - 1, 120)
--初始化变量
INSERT INTO @tmptable
(
UserID, LabelID
)
SELECT
UserID, LabelID
FROM
[LabelPool]
WHERE
RegTime >= @DateFlag AND RegTime < @DateFlag + 1 AND LabelID != ''
IF(@@ROWCOUNT > 0)
BEGIN
--初始化各渠道
INSERT INTO [LabelLiveStat]
(
DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
@DateFlag, LabelID, COUNT(DISTINCT UserID), 0, 0,
0, 0, 0, 0
FROM
@tmptable
GROUP BY
LabelID
END
SET @Rid = 0
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @StatFlag = NULL
SET @LabelID = NULL
SET @LiveUsers_1 = NULL
SET @LiveUsers_3 = NULL
SET @LiveUsers_5 = NULL
SET @LiveUsers_7 = NULL
SET @LiveUsers_15 = NULL
SET @LiveUsers_30 = NULL
SET @RegCount = NULL
SELECT TOP 1
@Rid = Rid, @StatFlag = DateFlag, @LabelID = LabelID, @RegCount = RegCount
FROM
[LabelLiveStat]
WHERE
DateFlag >= @DateFlag - 30 AND Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL)
BREAK
--计算天数
SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
--次日
IF(@Days = 2)
BEGIN
--次日留存
SELECT
@LiveUsers_1 = COUNT(l.UserID)
FROM
[LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 2
WHERE
l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 2 AND l.LabelID = @LabelID
END
--3日留存
ELSE IF(@Days = 3)
BEGIN
--3日留存
SELECT
@LiveUsers_3 = COUNT(l.UserID)
FROM
[LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 3
WHERE
l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 3 AND l.LabelID = @LabelID
END
--5日留存
ELSE IF(@Days = 5)
BEGIN
--5日留存
SELECT
@LiveUsers_5 = COUNT(l.UserID)
FROM
[LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 5
WHERE
l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 5 AND l.LabelID = @LabelID
END
--7日留存
ELSE IF(@Days = 7)
BEGIN
--7日留存
SELECT
@LiveUsers_7 = COUNT(l.UserID)
FROM
[LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 7
WHERE
l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 7 AND l.LabelID = @LabelID
END
--15日留存
ELSE IF(@Days = 15)
BEGIN
--15日留存
SELECT
@LiveUsers_15 = COUNT(l.UserID)
FROM
[LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 15
WHERE
l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 15 AND l.LabelID = @LabelID
END
--30日留存
ELSE IF(@Days = 30)
BEGIN
--30日留存
SELECT
@LiveUsers_30 = COUNT(l.UserID)
FROM
[LabelPool] l INNER JOIN [UserDailyStat] u ON l.UserID = u.UserID AND u.DateFlag = @StatFlag + 30
WHERE
l.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND l.Expire >= @StatFlag + 30 AND l.LabelID = @LabelID
END
SET @LiveUsers_1 = ISNULL(@LiveUsers_1, 0)
SET @LiveUsers_3 = ISNULL(@LiveUsers_3, 0)
SET @LiveUsers_5 = ISNULL(@LiveUsers_5, 0)
SET @LiveUsers_7 = ISNULL(@LiveUsers_7, 0)
SET @LiveUsers_15 = ISNULL(@LiveUsers_15, 0)
SET @LiveUsers_30 = ISNULL(@LiveUsers_30, 0)
/*
PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@LabelID=' + @LabelID +
',@LiveUsers_1=' + LTRIM(STR(@LiveUsers_1)) + ',@LiveUsers_3=' + LTRIM(STR(@LiveUsers_3)) + ',@LiveUsers_5=' + LTRIM(STR(@LiveUsers_5)) +
',@LiveUsers_7=' + LTRIM(STR(@LiveUsers_7)) + ',@LiveUsers_15=' + LTRIM(STR(@LiveUsers_15)) + ',@LiveUsers_30=' + LTRIM(STR(@LiveUsers_30)) +
',@Days=' + LTRIM(STR(@Days))
*/
--更新统计
UPDATE
[LabelLiveStat]
SET
LiveUsers_1 = CASE WHEN @LiveUsers_1 > 0 THEN @LiveUsers_1 ELSE LiveUsers_1 END,
LiveUsers_3 = CASE WHEN @LiveUsers_3 > 0 THEN @LiveUsers_3 ELSE LiveUsers_3 END,
LiveUsers_5 = CASE WHEN @LiveUsers_5 > 0 THEN @LiveUsers_5 ELSE LiveUsers_5 END,
LiveUsers_7 = CASE WHEN @LiveUsers_7 > 0 THEN @LiveUsers_7 ELSE LiveUsers_7 END,
LiveUsers_15 = CASE WHEN @LiveUsers_15 > 0 THEN @LiveUsers_15 ELSE LiveUsers_15 END,
LiveUsers_30 = CASE WHEN @LiveUsers_30 > 0 THEN @LiveUsers_30 ELSE LiveUsers_30 END
WHERE
Rid = @Rid
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Level_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Level_GetUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 用户等级信息
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Level_GetUserInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IsWhite TINYINT --是否白名单(0=普通用户 1=白名单用户 2=黑名单用户)
DECLARE @IsFacebook TINYINT --是否fb账号
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @Lv TINYINT --等级
DECLARE @Exp INT --经验值
DECLARE @LoginAward TINYINT --登录奖励(0=无效 1=可领取 2=已领取)
DECLARE @RetCode TINYINT
DECLARE @IsAdd TINYINT --是否允许加经验(1=允许)
SET @IsWhite = 0
SET @IsFacebook = 0
SET @Lv = 1
SET @Exp = 0
SET @LoginAward = 0
SET @RetCode = 0
SET @IsAdd = 1
--判断是否白名单
SELECT @IsWhite = WhiteType FROM [ChipWhiteList] WHERE UserID = @UserID
--用户信息
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
--非游客用户
IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.')
BEGIN
SET @IsFacebook = 1
SET @LoginAward = 1
--非埃及平台
IF NOT EXISTS(SELECT ConfigID FROM [PlatformConfig] WHERE PlatformName IN ('Egypt', 'ME'))
BEGIN
SET @IsAdd = 0
SELECT @Lv = Lv, @Exp = Exp FROM [SysLevel] WHERE Lv = 2
END
END
--等级奖励
SELECT @LoginAward = LoginAward FROM [UserLevel] WHERE UserID = @UserID
--如果不存在,初始化
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserLevel](UserID, Lv, Exp, LoginAward) VALUES(@UserID, @Lv, @Exp, @LoginAward)
END
/*
--登录奖励未领取
IF(@LoginAward = 1)
BEGIN
--修改状态
UPDATE [UserLevel] SET LoginAward = 2 WHERE UserID = @UserID AND LoginAward = 1
--修改成功
IF(@@ROWCOUNT > 0)
BEGIN
--加筹码
EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = N'游戏大厅', @GameID = 0, @WantedAmount = 3000000,
@LogType = 54, @Remark = N'登录奖励', @IPAddress = '127.0.0.1', @RetCode = @RetCode OUTPUT
END
END
*/
SELECT
Lv, Exp, @IsWhite AS IsWhite,
CASE
WHEN @LoginAward = 1 THEN 3 --去通知
ELSE LoginAward
END AS LoginAward, @IsFacebook AS IsFacebook, @IsAdd AS IsAdd
FROM
[UserLevel]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Level_LoginAward] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Level_LoginAward]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 元宝大厅用户登录奖励
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Level_LoginAward]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Amount INT --金额
SET @RetCode = 0
SET @Amount = 0
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
UPDATE [UserLevel] SET LoginAward = 2 WHERE UserID = @UserID AND LoginAward = 1
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Level_SysExpList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Level_SysExpList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 游戏经验数值
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Level_SysExpList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
GameID, WinExp, LoseExp
FROM
[SysLevelExp]
ORDER BY
GameID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Level_SysList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Level_SysList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 等级系统数值
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Level_SysList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Lv, Exp, Memo, GiftPack, Privilege
FROM
[SysLevel]
ORDER BY
Lv ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Level_UpdateUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Level_UpdateUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 修改用户等级信息
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Level_UpdateUserInfo]
@UserID INT, --用户ID
@Lv TINYINT, --等级
@Exp INT, --经验
@LoginAward TINYINT --登录奖励(0=无效 1=可领取 2=已领取)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
RETURN
UPDATE
[UserLevel]
SET
Lv = @Lv, Exp = @Exp,
LoginAward = CASE WHEN LoginAward != 2 THEN @LoginAward ELSE LoginAward END
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserLevel](UserID, Lv, Exp, LoginAward) VALUES(@UserID, @Lv, @Exp, 0)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_LiveStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_LiveStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 留存统计(每天凌晨0:00执行,供作业调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_LiveStat_Stat]
@CurrTime DATETIME --系统当前时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @StatFlag SMALLDATETIME --统计日期标识
DECLARE @PartnerID INT --渠道ID
DECLARE @RegCount INT --注册人数
DECLARE @LiveUsers_1 INT --次日留存
DECLARE @LiveUsers_3 INT --3日留存
DECLARE @LiveUsers_5 INT --5日留存
DECLARE @LiveUsers_7 INT --7日留存
DECLARE @LiveUsers_15 INT --15日留存
DECLARE @LiveUsers_30 INT --30日留存
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @Days INT --天数
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
PartnerID INT NOT NULL --渠道ID
)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
--初始化变量
INSERT INTO @tmptable
(
UserID, PartnerID
)
SELECT
UserID, RegPartnerID
FROM
[AllUser]
WHERE
RegTime >= @DateFlag AND RegTime < @DateFlag + 1
IF(@@ROWCOUNT > 0)
BEGIN
--初始化各渠道
INSERT INTO [LiveStat]
(
DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
@DateFlag, PartnerID, COUNT(DISTINCT UserID), 0, 0,
0, 0, 0, 0
FROM
@tmptable
GROUP BY
PartnerID
--初始化所有
INSERT INTO [LiveStat]
(
DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
@DateFlag, 1, COUNT(DISTINCT UserID), 0, 0,
0, 0, 0, 0
FROM
@tmptable
END
SET @Rid = 0
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @StatFlag = NULL
SET @PartnerID = NULL
SET @LiveUsers_1 = NULL
SET @LiveUsers_3 = NULL
SET @LiveUsers_5 = NULL
SET @LiveUsers_7 = NULL
SET @LiveUsers_15 = NULL
SET @LiveUsers_30 = NULL
SET @RegCount = NULL
SELECT TOP 1
@Rid = Rid, @StatFlag = DateFlag, @PartnerID = PartnerID, @RegCount = RegCount
FROM
[LiveStat]
WHERE
DateFlag >= @DateFlag - 30 AND Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL)
BREAK
--计算天数
SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
--所有渠道
IF(@PartnerID = 1)
BEGIN
--次日
IF(@Days = 2)
BEGIN
--次日留存
SELECT
@LiveUsers_1 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2
--更新日报统计
--次日留存
UPDATE [DailyReport] SET ItemValue = @LiveUsers_1 WHERE DateFlag = @StatFlag AND ItemName = N'次日留存'
--次日留存率
UPDATE
[DailyReport]
SET
ItemValue = CAST(@LiveUsers_1 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2))
WHERE
DateFlag = @StatFlag AND ItemName = N'次日留存率'
END
--3日留存
ELSE IF(@Days = 3)
BEGIN
--3日留存
SELECT
@LiveUsers_3 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 2 AND @StatFlag + 3
--更新日报统计
--3日留存
UPDATE [DailyReport] SET ItemValue = @LiveUsers_3 WHERE DateFlag = @StatFlag AND ItemName = N'3日留存'
--3日留存率
UPDATE
[DailyReport]
SET
ItemValue = CAST(@LiveUsers_3 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2))
WHERE
DateFlag = @StatFlag AND ItemName = N'3日留存率'
END
--5日留存
ELSE IF(@Days = 5)
BEGIN
--5日留存
SELECT
@LiveUsers_5 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 4 AND @StatFlag + 5
END
--7日留存
ELSE IF(@Days = 7)
BEGIN
--7日留存
SELECT
@LiveUsers_7 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 6 AND @StatFlag + 7
--更新日报统计
--7日留存
UPDATE [DailyReport] SET ItemValue = @LiveUsers_7 WHERE DateFlag = @StatFlag AND ItemName = N'7日留存'
--7日留存率
UPDATE
[DailyReport]
SET
ItemValue = CAST(@LiveUsers_7 * 100.00 / ISNULL(@RegCount, 1) AS DECIMAL(18, 2))
WHERE
DateFlag = @StatFlag AND ItemName = N'7日留存率'
END
--15日留存
ELSE IF(@Days = 15)
BEGIN
--15日留存
SELECT
@LiveUsers_15 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 14 AND @StatFlag + 15
END
--30日留存
ELSE IF(@Days = 30)
BEGIN
--30日留存
SELECT
@LiveUsers_30 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 29 AND @StatFlag + 30
END
END
--各渠道
ELSE
BEGIN
--次日
IF(@Days = 2)
BEGIN
--次日留存
SELECT
@LiveUsers_1 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2 AND RegPartnerID = @PartnerID
END
--3日留存
ELSE IF(@Days = 3)
BEGIN
--3日留存
SELECT
@LiveUsers_3 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 2 AND @StatFlag + 3 AND RegPartnerID = @PartnerID
END
--5日留存
ELSE IF(@Days = 5)
BEGIN
--5日留存
SELECT
@LiveUsers_5 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 4 AND @StatFlag + 5 AND RegPartnerID = @PartnerID
END
--7日留存
ELSE IF(@Days = 7)
BEGIN
--7日留存
SELECT
@LiveUsers_7 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 6 AND @StatFlag + 7 AND RegPartnerID = @PartnerID
END
--15日留存
ELSE IF(@Days = 15)
BEGIN
--15日留存
SELECT
@LiveUsers_15 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 14 AND @StatFlag + 15 AND RegPartnerID = @PartnerID
END
--30日留存
ELSE IF(@Days = 30)
BEGIN
--30日留存
SELECT
@LiveUsers_30 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 29 AND @StatFlag + 30 AND RegPartnerID = @PartnerID
END
END
SET @LiveUsers_1 = ISNULL(@LiveUsers_1, 0)
SET @LiveUsers_3 = ISNULL(@LiveUsers_3, 0)
SET @LiveUsers_5 = ISNULL(@LiveUsers_5, 0)
SET @LiveUsers_7 = ISNULL(@LiveUsers_7, 0)
SET @LiveUsers_15 = ISNULL(@LiveUsers_15, 0)
SET @LiveUsers_30 = ISNULL(@LiveUsers_30, 0)
/*
PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@PartnerID=' + LTRIM(STR(@PartnerID)) +
',@LiveUsers_1=' + LTRIM(STR(@LiveUsers_1)) + ',@LiveUsers_3=' + LTRIM(STR(@LiveUsers_3)) + ',@LiveUsers_5=' + LTRIM(STR(@LiveUsers_5)) +
',@LiveUsers_7=' + LTRIM(STR(@LiveUsers_7)) + ',@LiveUsers_15=' + LTRIM(STR(@LiveUsers_15)) + ',@LiveUsers_30=' + LTRIM(STR(@LiveUsers_30)) +
',@Days=' + LTRIM(STR(@Days))
*/
--更新统计
UPDATE
[LiveStat]
SET
LiveUsers_1 = CASE WHEN @LiveUsers_1 > 0 THEN @LiveUsers_1 ELSE LiveUsers_1 END,
LiveUsers_3 = CASE WHEN @LiveUsers_3 > 0 THEN @LiveUsers_3 ELSE LiveUsers_3 END,
LiveUsers_5 = CASE WHEN @LiveUsers_5 > 0 THEN @LiveUsers_5 ELSE LiveUsers_5 END,
LiveUsers_7 = CASE WHEN @LiveUsers_7 > 0 THEN @LiveUsers_7 ELSE LiveUsers_7 END,
LiveUsers_15 = CASE WHEN @LiveUsers_15 > 0 THEN @LiveUsers_15 ELSE LiveUsers_15 END,
LiveUsers_30 = CASE WHEN @LiveUsers_30 > 0 THEN @LiveUsers_30 ELSE LiveUsers_30 END
WHERE
Rid = @Rid
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Log_Add] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Log_Add]
-- @OpUserID = 10001,
-- @OpUserName = '',
-- @IPAddress = '',
-- @Msg = ''
-- =============================================
-- Author: wolf
-- Create Date: 2015-04-21
-- Mendor: wolf
-- Alter Date: 2016-11-11
-- Description: 日志记录
-- =============================================
CREATE PROCEDURE [dbo].[Game_Log_Add]
@OpUserID INT, --操作用户ID
@OpUserName VARCHAR(32), --操作用户名
@IPAddress VARCHAR(15), --IP地址
@Msg NVARCHAR(4000), --消息
@Type TINYINT = 1 --1=后台操作 2=系统日志
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--2=系统日志
IF(@Type = 2)
BEGIN
INSERT INTO [SysLog]
(
OpUserID, OpUserName, IPAddress, Msg, Crdate
)
VALUES
(
@OpUserID, @OpUserName, @IPAddress, @Msg, GETDATE()
)
END
--1=后台操作日志(默认)
ELSE
BEGIN
--后台操作日志
INSERT INTO [AdminLog]
(
AdminUserID, AdminUserName, IPAddress, Msg, Crdate
)
VALUES
(
@OpUserID, @OpUserName, @IPAddress, @Msg, GETDATE()
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_MidwayStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_MidwayStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 游戏中途退出
-- ==============================================
CREATE PROCEDURE [dbo].[Game_MidwayStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @tmpUser TABLE(
UserID INT NOT NULL
)
SET @DateFlag = CONVERT(CHAR(10), GETDATE() -1, 120)
--游戏中途退出
INSERT INTO [GameMidwayStat]
(
DateFlag, GameID, TypeID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
)
SELECT
CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID, 0, m.SourceName, COUNT(DISTINCT UserID), COUNT(UserID),
COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN UserID ELSE 0 END) - 1,
SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
FROM
[MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
WHERE
m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
CONVERT(CHAR(10), m.Crdate, 120), m.GameID, m.SourceName
--初始化
INSERT INTO @tmpUser(UserID)
SELECT
UserID
FROM
[LabelPool]
WHERE
TypeID = 17 AND LabelID != '' AND Expire >= GETDATE()
--游戏中途退出
INSERT INTO [GameMidwayStat]
(
DateFlag, GameID, TypeID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
)
SELECT
CONVERT(CHAR(10), m.Crdate, 120) AS DateFlag, m.GameID, 17, m.SourceName, COUNT(DISTINCT m.UserID), COUNT(m.UserID),
COUNT(DISTINCT CASE WHEN IPAddress = '127.0.0.1' THEN m.UserID ELSE 0 END) - 1,
SUM(CASE WHEN IPAddress = '127.0.0.1' THEN 1 ELSE 0 END)
FROM
[MoneyLog_bak] m INNER JOIN [MoneyLogType] l ON m.LogType = l.LogType AND l.LogTypeName IN (N'结算', N'游戏结算')
INNER JOIN @tmpUser u ON m.UserID = u.UserID
WHERE
m.Crdate BETWEEN @DateFlag AND @DateFlag + 1
GROUP BY
CONVERT(CHAR(10), m.Crdate, 120), m.GameID, m.SourceName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Money_GiveMoney] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Game_Money_GiveMoney]
-- @UserID = 10001,
-- @SourceName = '',
-- @WantedAmount = 100,
-- @LogType = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-09-04
-- Description: 加金币接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Money_GiveMoney]
@UserID INT, --用户ID
@WantedAmount BIGINT, --金币数
@GameID INT, --游戏ID
@LogType INT, --日志类型
@SourceName NVARCHAR(32), --源名称
@Remark NVARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述: 1=操作成功 11=传入参数错误
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @CurrentAmount BIGINT --当前金币数
DECLARE @LogID INT --日志ID
DECLARE @Balance BIGINT --剩余
SET @RetCode = 0
SET @CurrentAmount = 0
SET @Balance = 0
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--判断领取金币数是否异常
IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid Amount'
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, 0, 0,
0, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
RETURN
END
-------------------先检查输入参数------------------------
IF(@UserID IS NULL OR @UserID <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid User'
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, 0, 0,
0, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
RETURN
END
--不用提高事务隔离级别,Update 原子性操作
--加金币
UPDATE
[Money]
SET
Amount = Amount + @WantedAmount, @CurrentAmount = Amount,
@Balance = Amount + @WantedAmount, RefreshTime = GETDATE()
WHERE
UserID = @UserID
--还没有数据
IF(@@RowCount = 0)
BEGIN
INSERT INTO [Money]
(
UserID, Amount, Bank, RegisterTime, RefreshTime
)
VALUES
(
@UserID, @WantedAmount, 0, GETDATE(), GETDATE()
)
END
--备注
SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'UnKnown')
--写日志
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, @WantedAmount,
@Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
--日志ID
SET @LogID = SCOPE_IDENTITY()
--统计
EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
--机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
--操作成功
SET @RetCode = 1
RETURN @LogID
END
--用戶日常统计
--更新
UPDATE [UserDailyStat] SET StillAmount = @Balance WHERE DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, 0, 0, @Balance, '2021-01-01', '2021-01-01',
0, 0, 0, 0, 0
)
END
--操作成功
SET @RetCode = 1
RETURN @LogID
END
GO
/****** Object: StoredProcedure [dbo].[Game_Money_ReduceMoney] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Game_Money_ReduceMoney]
-- @UserID = 10010,
-- @SourceName = '',
-- @WantedAmount = 100,
-- @LogType = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 扣除金币接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Money_ReduceMoney]
@UserID INT, --用户ID
@WantedAmount BIGINT, --操作金币(必须>0)
@GameID INT, --游戏ID
@LogType INT, --日志类型
@SourceName NVARCHAR(64), --源名称
@Remark NVARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述:1=操作成功 11=金币不足 12=参数异常 21=金币锁
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @CurrentAmount BIGINT --当前金币数
DECLARE @ServerName NVARCHAR(32) --服务器名称
DECLARE @LogID INT --日志ID
DECLARE @Balance BIGINT --剩余
SET @RetCode = 0
SET @CurrentAmount = 0
SET @Balance = 0
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--判断领取金币数是否异常
IF(@WantedAmount IS NULL OR @WantedAmount <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid Amount'
RETURN
END
-------------------先检查输入参数------------------------
IF(@UserID IS NULL OR @UserID <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ',Invalid User'
RETURN
END
--检查用户锁
SELECT @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 21
SET @Remark = @Remark + ',Hold Money Mutex, ServerName = ' + @ServerName
RETURN
END
--不用提高事务隔离级别, Update 原子性
--扣金币
UPDATE
[Money]
SET
Amount = Amount - @WantedAmount, RefreshTime = GETDATE(),
@CurrentAmount = Amount, @Balance = Amount - @WantedAmount
WHERE
UserID = @UserID AND Amount >= @WantedAmount
--判断是否成功
IF(@@ROWCOUNT <= 0)
BEGIN
SET @RetCode = 11
SET @Remark = @Remark + ', Reduce Fail'
RETURN
END
--备注
SET @Remark = @Remark + ' ' + ISNULL((SELECT ChineseName + ',' + LogTypeName FROM [MoneyLogType] WHERE LogType = @LogType), 'Unknown')
--写日志
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, @GameID, 'CASH', @UserID, @CurrentAmount, -@WantedAmount,
@Balance, 0, @IPAddress, @Remark, GETDATE(), @LogType
)
--日志ID
SET @LogID = SCOPE_IDENTITY()
SET @WantedAmount = -@WantedAmount
--统计
EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantedAmount, @TaxSum = 0, @LogType = @LogType
--机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
--操作成功
SET @RetCode = 1
RETURN @LogID
END
--用戶日常统计
--更新
UPDATE [UserDailyStat] SET StillAmount = @Balance WHERE DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, 0, 0, @Balance, '2021-01-01', '2021-01-01',
0, 0, 0, 0, 0
)
END
--操作成功
SET @RetCode = 1
RETURN @LogID
END
GO
/****** Object: StoredProcedure [dbo].[Game_Money_WriteMoney] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Money_WriteMoney]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 用户写分
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Money_WriteMoney]
@UserID INT, --用户ID
@SourceName NVARCHAR(64), --源名称
@GameID INT, --游戏ID
@Amount BIGINT, --金额
@Tax BIGINT, --台费
@Status TINYINT, --状态(0=无效 1=下注 2=结算 3=派奖 11=下注(扣到零为止) 12=结算(扣减到零))
@IPAddress VARCHAR(16), --IP地址
@Type INT, --下注或结算信息(保留)
@Balance BIGINT OUTPUT, --写分后金额
@RetCode TINYINT OUTPUT --操作结果 1=操作成功 2=操作成功(扣减到零) 11=操作失败 12=参数错误
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
DECLARE @chvRemark NVARCHAR(128) --备注
DECLARE @CurrTime DATETIME --时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @WinAmount BIGINT --赢金币
DECLARE @LoseAmount BIGINT --输金币
DECLARE @PlaySeconds INT --游戏时长(秒)
DECLARE @RefreshTime DATETIME --刷新时间
DECLARE @IsRobot TINYINT --是否机器人
SET @PreAmount = 0
SET @Balance = 0
SET @RetCode = 1 --假设成功
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @WinAmount = 0
SET @LoseAmount = 0
SET @RefreshTime = 0
SET @PlaySeconds = 0
SET @IsRobot = 0
--判断参数
IF(@UserID IS NULL OR @Amount IS NULL)
BEGIN
SET @RetCode = 12
RETURN
END
/*
IF(@GameID = 52 AND @Type = 5201 AND @Amount < -90000000)
BEGIN
SET @RetCode = 11
RETURN
END
*/
IF(@UserID <= 0)
BEGIN
SET @IsRobot = 1
END
--是否机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
SET @IsRobot = 1
END
--提高事务隔离级别
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
--开启事务
BEGIN TRAN
--加金币
IF(@Amount >= 0)
BEGIN
UPDATE
[Money]
SET
Amount = Amount + @Amount, RefreshTime = @CurrTime,
@PreAmount = Amount, @Balance = Amount + @Amount
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--增加一个现金帐号
INSERT INTO [Money]
(
UserID, Amount, Bank, RegisterTime, RefreshTime
)
VALUES
(
@UserID, @Amount, 0, @CurrTime, @CurrTime
)
SET @Balance = @Amount
END
END
--扣减金币
ELSE IF(@Amount < 0)
BEGIN
UPDATE
[Money]
SET
Amount = Amount + @Amount, RefreshTime = @CurrTime,
@PreAmount = Amount, @Balance = Amount + @Amount
WHERE
UserID = @UserID AND Amount >= ABS(@Amount)
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
END
END
--提交事务
COMMIT TRAN
--恢复事务隔离级别
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--操作成功
IF(@RetCode != 1)
BEGIN
SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type))) + ',Operate Fail'
IF(@IsRobot = 1)
BEGIN
--记录日志
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
RETURN
END
--记录日志
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
RETURN
END
SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type)))
--机器人
IF(@IsRobot = 1)
BEGIN
--添加日志
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
RETURN
END
--正常玩家
ELSE
BEGIN
--游戏税收统计
IF(@Tax > 0)
BEGIN
UPDATE [GameTax] SET Tax = Tax + @Tax WHERE DateFlag = @DateFlag AND ServerName = @SourceName
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [GameTax] (DateFlag, ServerName, Tax) VALUES(@DateFlag, @SourceName, @Tax)
END
--台费触发代理收益
EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @Tax, @IPAddress = @IPAddress, @TriggerType = 2
END
END
--添加日志
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @Amount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
--流水触发代理收益
IF(@Amount != 0)
BEGIN
EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @Amount, @IPAddress = @IPAddress, @TriggerType = 1
END
--用戶日常统计
--赢金币
IF(@Amount > 0)
BEGIN
SET @WinAmount = @Amount
END
--输金币
ELSE IF(@Amount < 0)
BEGIN
SET @LoseAmount = @Amount
END
--获取今天最后游戏时间
SELECT @RefreshTime = RefreshTime FROM [UserPlayTime] WHERE UserID = @UserID
--计算游戏时长
IF(@RefreshTime >= @DateFlag)
BEGIN
SET @PlaySeconds = DATEDIFF(SECOND, @RefreshTime, @CurrTime)
--超过5分钟
SET @PlaySeconds = CASE WHEN @PlaySeconds >= 300 THEN 0 ELSE @PlaySeconds END
END
-- 下面更新统计
IF(@Amount != 0 OR @Tax != 0)
BEGIN
--统计
IF(@Type % 100 != 99)
BEGIN
--游戏记录
UPDATE
[DailyBetStat]
SET
MoneySum = MoneySum + @Amount, TaxAmount = TaxAmount + @Tax, PlaySeconds = PlaySeconds + @PlaySeconds
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID AND ServerName = @SourceName
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [DailyBetStat]
(
DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
)
VALUES
(
@DateFlag, @UserID, @GameID, @SourceName, 0, 0, 0,
@Amount, @Tax, 1, 0, @PlaySeconds
)
END
--统计
EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @Amount, @TaxSum = @Tax, @LogType = @Type
END
END
--更新
UPDATE
[UserDailyStat]
SET
WinAmount = WinAmount + @WinAmount, LoseAmount = LoseAmount + @LoseAmount, StillAmount = @Balance,
GameStart = CASE WHEN GameStart = '2021-01-01' THEN @CurrTime ELSE GameStart END, GameEnd = @CurrTime,
PlaySeconds = PlaySeconds + @PlaySeconds
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, @WinAmount, @LoseAmount, @Balance, @CurrTime, @CurrTime,
@PlaySeconds, 0, 0, 0, 0
)
END
--游戏
IF(@GameID > 0)
BEGIN
--刷新时间
UPDATE [UserPlayTime] SET RefreshTime = @CurrTime WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserPlayTime](UserID, RefreshTime) VALUES(@UserID, @CurrTime)
END
END
--游戏大厅离线
IF(@Type = 99)
BEGIN
INSERT INTO [UserTrack](UserID, Level_1, Level_2, Level_3, Crdate) VALUES(@UserID, N'大厅', N'离线', '', @CurrTime)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Money_WriteMoney_GetModifyAmount] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Money_WriteMoney_GetModifyAmount]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 用户写分
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Money_WriteMoney_GetModifyAmount]
@UserID INT, --用户ID
@SourceName NVARCHAR(64), --源名称
@GameID INT, --游戏ID
@Amount BIGINT, --金额
@Tax BIGINT, --台费
@Status TINYINT, --状态(0=无效 1=下注 2=结算 3=派奖 11=下注(扣到零为止) 12=结算(扣减到零))
@IPAddress VARCHAR(16), --IP地址
@Type INT, --下注或结算信息(保留)
@Balance BIGINT OUTPUT, --写分后金额
@RetCode TINYINT OUTPUT, --操作结果 1=操作成功 2=操作成功(扣减到零) 11=操作失败 12=参数错误
@ModifyAmount BIGINT OUTPUT --实际修改的
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PreAmount BIGINT --操作前金额
DECLARE @chvRemark NVARCHAR(128) --备注
DECLARE @CurrTime DATETIME --时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @WinAmount BIGINT --赢金币
DECLARE @LoseAmount BIGINT --输金币
DECLARE @PlaySeconds INT --游戏时长(秒)
DECLARE @RefreshTime DATETIME --刷新时间
DECLARE @IsRobot TINYINT --是否机器人
SET @PreAmount = 0
SET @Balance = 0
SET @RetCode = 1 --假设成功
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @WinAmount = 0
SET @LoseAmount = 0
SET @RefreshTime = 0
SET @PlaySeconds = 0
SET @IsRobot = 0
SET @ModifyAmount = 0
--判断参数
IF(@UserID IS NULL OR @Amount IS NULL)
BEGIN
SET @RetCode = 12
RETURN
END
IF(@UserID <= 0)
BEGIN
SET @IsRobot = 1
END
--是否机器人
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
SET @IsRobot = 1
END
--提高事务隔离级别
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
--开启事务
BEGIN TRAN
--加金币
IF(@Amount >= 0)
BEGIN
UPDATE
[Money]
SET
Amount = Amount + @Amount, RefreshTime = @CurrTime,
@PreAmount = Amount, @Balance = Amount + @Amount,
@ModifyAmount = @Amount
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--增加一个现金帐号
INSERT INTO [Money]
(
UserID, Amount, Bank, RegisterTime, RefreshTime
)
VALUES
(
@UserID, @Amount, 0, @CurrTime, @CurrTime
)
SET @Balance = @Amount
SET @ModifyAmount = @Amount
END
END
--扣减金币
ELSE IF(@Amount < 0)
BEGIN
UPDATE
[Money]
SET
Amount = CASE WHEN Amount + @Amount > 0 THEN Amount + @Amount ELSE 0 END,
RefreshTime = @CurrTime, @PreAmount = Amount,
@Balance = CASE WHEN Amount + @Amount > 0 THEN Amount + @Amount ELSE 0 END,
@ModifyAmount = CASE WHEN Amount + @Amount > 0 THEN @Amount ELSE -Amount END
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
END
END
--提交事务
COMMIT TRAN
--恢复事务隔离级别
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--操作成功
IF(@RetCode != 1)
BEGIN
SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type))) + ',Operate Fail'
IF(@IsRobot = 1)
BEGIN
--记录日志
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
RETURN
END
--记录日志
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
RETURN
END
SET @chvRemark = ISNULL((SELECT ChineseName + ' ' + LogTypeName + ',logType=' + LTRIM(STR(LogType)) FROM [MoneyLogType] WHERE LogType = @Type), 'Unknown,logType=' + LTRIM(STR(@Type)))
--机器人
IF(@IsRobot = 1)
BEGIN
--添加日志
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
RETURN
END
--正常玩家
ELSE
BEGIN
--游戏税收统计
IF(@Tax > 0)
BEGIN
UPDATE [GameTax] SET Tax = Tax + @Tax WHERE DateFlag = @DateFlag AND ServerName = @SourceName
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [GameTax] (DateFlag, ServerName, Tax) VALUES(@DateFlag, @SourceName, @Tax)
END
--台费触发代理收益
EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @Tax, @IPAddress = @IPAddress, @TriggerType = 2
END
END
--添加日志
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
values
(
@SourceName, @GameID, 'CASH', @UserID, @PreAmount, @ModifyAmount,
@Balance, @Tax, @IPAddress, @chvRemark, @CurrTime, @Type
)
--流水触发代理收益
IF(@ModifyAmount != 0)
BEGIN
EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = @GameID, @Tax = @ModifyAmount, @IPAddress = @IPAddress, @TriggerType = 1
END
--用戶日常统计
--赢金币
IF(@ModifyAmount > 0)
BEGIN
SET @WinAmount = @ModifyAmount
END
--输金币
ELSE IF(@ModifyAmount < 0)
BEGIN
SET @LoseAmount = @ModifyAmount
END
--获取今天最后游戏时间
SELECT @RefreshTime = RefreshTime FROM [UserPlayTime] WHERE UserID = @UserID
--计算游戏时长
IF(@RefreshTime >= @DateFlag)
BEGIN
SET @PlaySeconds = DATEDIFF(SECOND, @RefreshTime, @CurrTime)
--超过5分钟
SET @PlaySeconds = CASE WHEN @PlaySeconds >= 300 THEN 0 ELSE @PlaySeconds END
END
-- 下面更新统计
IF(@Amount != 0 OR @Tax != 0)
BEGIN
--统计
IF(@Type % 100 != 99)
BEGIN
--游戏记录
UPDATE
[DailyBetStat]
SET
MoneySum = MoneySum + @ModifyAmount, TaxAmount = TaxAmount + @Tax, PlaySeconds = PlaySeconds + @PlaySeconds
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID AND ServerName = @SourceName
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [DailyBetStat]
(
DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
)
VALUES
(
@DateFlag, @UserID, @GameID, @SourceName, 0, 0, 0,
@ModifyAmount, @Tax, 1, 0, @PlaySeconds
)
END
--统计
EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @ModifyAmount, @TaxSum = @Tax, @LogType = @Type
END
END
--更新
UPDATE
[UserDailyStat]
SET
WinAmount = WinAmount + @WinAmount, LoseAmount = LoseAmount + @LoseAmount, StillAmount = @Balance,
GameStart = CASE WHEN GameStart = '2021-01-01' THEN @CurrTime ELSE GameStart END, GameEnd = @CurrTime,
PlaySeconds = PlaySeconds + @PlaySeconds
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, @WinAmount, @LoseAmount, @Balance, @CurrTime, @CurrTime,
@PlaySeconds, 0, 0, 0, 0
)
END
--游戏
IF(@GameID > 0)
BEGIN
--刷新时间
UPDATE [UserPlayTime] SET RefreshTime = @CurrTime WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserPlayTime](UserID, RefreshTime) VALUES(@UserID, @CurrTime)
END
END
--游戏大厅离线
IF(@Type = 99)
BEGIN
INSERT INTO [UserTrack](UserID, Level_1, Level_2, Level_3, Crdate) VALUES(@UserID, N'大厅', N'离线', '', @CurrTime)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_MoneyFlow_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_MoneyFlow_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 游戏金币流量统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_MoneyFlow_Stat]
@MoneyLogID INT --金币日志ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统时间
DECLARE @DateFlag SMALLDATETIME --日期标识
SET @CurrTime = GETDATE()
IF(DATEPART(MINUTE, @CurrTime) < 10)
BEGIN
SET @DateFlag = CONVERT(CHAR(14), @CurrTime, 120) + '00'
END
ELSE
BEGIN
SET @DateFlag = CONVERT(CHAR(14), @CurrTime, 120) + '30'
END
--最近30分钟内
SET @DateFlag = DATEADD(MINUTE, -30, @DateFlag)
--统计
INSERT INTO [MoneyFlow]
(
DateFlag, GameID, Amount, Tax
)
SELECT
@DateFlag, GameID, SUM(ModifyAmount), SUM(TaxAmount)
FROM
[MoneyLog]
WHERE
LogID <= @MoneyLogID AND GameID > 0 AND ModifyAmount != 0
GROUP BY
GameID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_MoneyStat_Total] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_MoneyStat_Total]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2016-07-28
-- Description: 每隔30分钟统计金币总量
-- ==============================================
CREATE PROCEDURE [dbo].[Game_MoneyStat_Total]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @TotalAmount BIGINT --总存量
DECLARE @TotalBank BIGINT --保险柜存量
--现金总量、保险柜存量
SELECT
@TotalAmount = SUM(Amount), @TotalBank = SUM(Bank)
FROM
[Money]
WHERE
UserID NOT IN (SELECT UserID FROM [MachineUser])
SET @TotalAmount = ISNULL(@TotalAmount, 0)
SET @TotalBank = ISNULL(@TotalBank, 0)
--记录
INSERT INTO [MoneyStatTotal]
(
Crdate, TotalAmount, TotalBank
)
VALUES
(
CONVERT(CHAR(16), GETDATE(), 120), @TotalAmount, @TotalBank
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_MoneyStat_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_MoneyStat_Update]
-- @MoneySum = 1,
-- @TaxSum = 1,
-- @LogType = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-12
-- Mendor: wolf
-- Alter Date: 2014-09-02
-- Description: 游戏金币统计(暂时只统计普通玩家)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_MoneyStat_Update]
@UserID INT, --用户ID
@MoneySum BIGINT, --金币数
@TaxSum BIGINT, --税收
@LogType INT --日志类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--更新统计信息
UPDATE
[MoneyStat]
SET
MoneySum = MoneySum + @MoneySum, TaxSum = TaxSum + @TaxSum
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND LogType = @LogType
--还没有统计信息
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [MoneyStat]
(
DateFlag, UserID, LogType, MoneySum, TaxSum
)
VALUES
(
@DateFlag, @UserID, @LogType, @MoneySum, @TaxSum
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_NewUserStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_NewUserStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新用户统计(每天统计)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_NewUserStat_Stat]
@CurrTime DATETIME --系统当前时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @StatFlag SMALLDATETIME --统计日期标识
DECLARE @RegCount INT --注册人数
DECLARE @Source NVARCHAR(256) --UTM源
DECLARE @LiveUsers_2 INT --次日留存
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @Days INT --天数
DECLARE @PayMoney DECIMAL(18, 2) --充值金额
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
Source NVARCHAR(256) NOT NULL, --UTM源
IsPay INT NOT NULL, --是否充值
PayMoney DECIMAL(18, 2) NOT NULL --充值金额
)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
--初始化变量
INSERT INTO @tmptable
(
UserID, Source, IsPay, PayMoney
)
SELECT
u.UserID, CASE WHEN s.Source IS NULL OR s.Source = '' THEN 'unknown' ELSE s.Source END,
CASE WHEN l.RMBMoney > 0 THEN 1 ELSE 0 END, ISNULL(l.RMBMoney, 0)
FROM
[AllUser] u LEFT JOIN [UTM] s ON u.UserID = s.UserID
LEFT JOIN [UserPayLog] l ON u.UserID = l.UserID AND l.DateFlag = @DateFlag
WHERE
u.RegTime >= @DateFlag AND u.RegTime < @DateFlag + 1
IF(@@ROWCOUNT > 0)
BEGIN
--初始化各渠道
INSERT INTO [NewUserStat]
(
DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
)
SELECT
@DateFlag, Source, COUNT(DISTINCT UserID), 0, SUM(IsPay),
SUM(PayMoney), 0, 0, 0, 0, 0
FROM
@tmptable
GROUP BY
Source
--初始化所有
INSERT INTO [NewUserStat]
(
DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
)
SELECT
@DateFlag, N'All Source', COUNT(DISTINCT UserID), 0, SUM(IsPay),
SUM(PayMoney), 0, 0, 0, 0, 0
FROM
@tmptable
END
SET @Rid = 0
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @Source = NULL
SET @LiveUsers_2 = NULL
SET @PayMoney = NULL
SET @StatFlag = NULL
SELECT TOP 1
@Rid = Rid, @StatFlag = DateFlag, @Source = Source
FROM
[NewUserStat]
WHERE
DateFlag >= @DateFlag - 30 AND Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL)
BREAK
--计算天数
SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
--所有渠道
IF(@Source = 'All Source')
BEGIN
--次日
IF(@Days = 2)
BEGIN
--次日留存
SELECT
@LiveUsers_2 = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2
END
--充值金额
SELECT
@PayMoney = SUM(p.RMBMoney)
FROM
[AllUser] u INNER JOIN [UserPayLog] p ON u.UserID = p.UserID AND p.DateFlag <= @DateFlag
WHERE
u.RegTime BETWEEN @StatFlag AND @StatFlag + 1
END
--各渠道
ELSE
BEGIN
--次日
IF(@Days = 2)
BEGIN
--次日留存
SELECT
@LiveUsers_2 = COUNT(u.UserID)
FROM
[AllUser] u INNER JOIN [UTM] s ON u.UserID = s.UserID
WHERE
u.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND u.LoginTime BETWEEN @StatFlag + 1 AND @StatFlag + 2 AND s.Source = @Source
END
--充值金额
SELECT
@PayMoney = SUM(p.RMBMoney)
FROM
[AllUser] u INNER JOIN [UserPayLog] p ON u.UserID = p.UserID AND p.DateFlag <= @DateFlag
INNER JOIN [UTM] s ON u.UserID = s.UserID
WHERE
u.RegTime BETWEEN @StatFlag AND @StatFlag + 1 AND s.Source = @Source
END
SET @LiveUsers_2 = ISNULL(@LiveUsers_2, 0)
SET @PayMoney = ISNULL(@PayMoney, 0)
/*
PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@Source=' + @Source +
',@Days=' + LTRIM(STR(@Days)) + ',@LiveUsers_2=' + LTRIM(STR(@LiveUsers_2)) + ',@PayMoney=' + CAST(@PayMoney AS VARCHAR(16))
*/
--更新统计
UPDATE
[NewUserStat]
SET
LiveUsers_2 = CASE WHEN @LiveUsers_2 > 0 THEN @LiveUsers_2 ELSE LiveUsers_2 END,
PayMoney_2 = CASE WHEN @Days = 2 THEN @PayMoney ELSE PayMoney_2 END,
PayMoney_3 = CASE WHEN @Days = 3 THEN @PayMoney ELSE PayMoney_3 END,
PayMoney_7 = CASE WHEN @Days = 7 THEN @PayMoney ELSE PayMoney_7 END,
PayMoney_14 = CASE WHEN @Days = 14 THEN @PayMoney ELSE PayMoney_14 END,
PayMoney_30 = CASE WHEN @Days = 30 THEN @PayMoney ELSE PayMoney_30 END
WHERE
Rid = @Rid
END
END
GO
/****** Object: StoredProcedure [dbo].[Game_OnlineStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_OnlineStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 在线人数统计(每小时执行,供作业调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_OnlineStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @GameID INT --游戏ID
DECLARE @OnlineUserCount INT --在线用户数
--日志
DECLARE @tmpLog TABLE(
UserID INT NOT NULL, --用户ID
GameID INT NOT NULL, --游戏ID
ServerName NVARCHAR(32) NOT NULL, --服务器名称
PartnerID INT NOT NULL --渠道ID
)
--表变量
DECLARE @tmptable TABLE(
Rid INT IDENTITY, --标识
GameID INT NOT NULL, --游戏ID
OnlineUserCount INT NOT NULL --在线用户数
)
DECLARE @Hour INT --小时
DECLARE @Hour_0 INT -- 0点
DECLARE @Hour_1 INT -- 1点
DECLARE @Hour_2 INT -- 2点
DECLARE @Hour_3 INT -- 3点
DECLARE @Hour_4 INT -- 4点
DECLARE @Hour_5 INT -- 5点
DECLARE @Hour_6 INT -- 6点
DECLARE @Hour_7 INT -- 7点
DECLARE @Hour_8 INT -- 8点
DECLARE @Hour_9 INT -- 9点
DECLARE @Hour_10 INT -- 10点
DECLARE @Hour_11 INT -- 11点
DECLARE @Hour_12 INT -- 12点
DECLARE @Hour_13 INT -- 13点
DECLARE @Hour_14 INT -- 14点
DECLARE @Hour_15 INT -- 15点
DECLARE @Hour_16 INT -- 16点
DECLARE @Hour_17 INT -- 17点
DECLARE @Hour_18 INT -- 18点
DECLARE @Hour_19 INT -- 19点
DECLARE @Hour_20 INT -- 20点
DECLARE @Hour_21 INT -- 21点
DECLARE @Hour_22 INT -- 22点
DECLARE @Hour_23 INT -- 23点
SET @CurrTime = CONVERT(CHAR(14), DATEADD(HOUR, -1, GETDATE()), 120) + '00'
SET @Hour = DATEPART(HOUR, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--初始化
INSERT INTO @tmpLog
(
UserID, GameID, ServerName, PartnerID
)
SELECT DISTINCT
UserID, GameID, ServerName, 0
FROM
[t_onlinelog]
WHERE
Crdate >= @CurrTime
--获取渠道ID
UPDATE l SET l.PartnerID = u.PartnerID FROM @tmpLog l INNER JOIN [AllUser] u ON l.UserID = u.UserID
--统计整个在线用户
INSERT INTO [OnlineStat]
(
DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
)
SELECT
@CurrTime, -1, COUNT(DISTINCT UserID), -1, ''
FROM
@tmpLog
--添加到统计表
INSERT INTO [OnlineStat]
(
DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
)
SELECT
@CurrTime, PartnerID, COUNT(UserID), GameID, ServerName
FROM
@tmpLog
GROUP BY
PartnerID, GameID, ServerName
--游戏在线用户
INSERT INTO @tmptable
(
GameID, OnlineUserCount
)
SELECT
GameID, COUNT(DISTINCT UserID)
FROM
@tmpLog
WHERE
GameID > 0
GROUP BY
GameID
SET @Rid = 0
--遍历
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @GameID = NULL
SET @OnlineUserCount = NULL
SELECT TOP 1
@Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
FROM
@tmptable
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
BREAK
--分时段
SELECT
@Hour_0 = CASE WHEN @Hour = 0 THEN @OnlineUserCount ELSE 0 END, @Hour_1 = CASE WHEN @Hour = 1 THEN @OnlineUserCount ELSE 0 END,
@Hour_2 = CASE WHEN @Hour = 2 THEN @OnlineUserCount ELSE 0 END, @Hour_3 = CASE WHEN @Hour = 3 THEN @OnlineUserCount ELSE 0 END,
@Hour_4 = CASE WHEN @Hour = 4 THEN @OnlineUserCount ELSE 0 END, @Hour_5 = CASE WHEN @Hour = 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_6 = CASE WHEN @Hour = 6 THEN @OnlineUserCount ELSE 0 END, @Hour_7 = CASE WHEN @Hour = 7 THEN @OnlineUserCount ELSE 0 END,
@Hour_8 = CASE WHEN @Hour = 8 THEN @OnlineUserCount ELSE 0 END, @Hour_9 = CASE WHEN @Hour = 9 THEN @OnlineUserCount ELSE 0 END,
@Hour_10 = CASE WHEN @Hour = 10 THEN @OnlineUserCount ELSE 0 END, @Hour_11 = CASE WHEN @Hour = 11 THEN @OnlineUserCount ELSE 0 END,
@Hour_12 = CASE WHEN @Hour = 12 THEN @OnlineUserCount ELSE 0 END, @Hour_13 = CASE WHEN @Hour = 13 THEN @OnlineUserCount ELSE 0 END,
@Hour_14 = CASE WHEN @Hour = 14 THEN @OnlineUserCount ELSE 0 END, @Hour_15 = CASE WHEN @Hour = 15 THEN @OnlineUserCount ELSE 0 END,
@Hour_16 = CASE WHEN @Hour = 16 THEN @OnlineUserCount ELSE 0 END, @Hour_17 = CASE WHEN @Hour = 17 THEN @OnlineUserCount ELSE 0 END,
@Hour_18 = CASE WHEN @Hour = 18 THEN @OnlineUserCount ELSE 0 END, @Hour_19 = CASE WHEN @Hour = 19 THEN @OnlineUserCount ELSE 0 END,
@Hour_20 = CASE WHEN @Hour = 20 THEN @OnlineUserCount ELSE 0 END, @Hour_21 = CASE WHEN @Hour = 21 THEN @OnlineUserCount ELSE 0 END,
@Hour_22 = CASE WHEN @Hour = 22 THEN @OnlineUserCount ELSE 0 END, @Hour_23 = CASE WHEN @Hour = 23 THEN @OnlineUserCount ELSE 0 END
--统计
UPDATE
[OnlineStatHour]
SET
Hour_0 = Hour_0 + @Hour_0, Hour_1 = Hour_1 + @Hour_1, Hour_2 = Hour_2 + @Hour_2, Hour_3 = Hour_3 + @Hour_3,
Hour_4 = Hour_4 + @Hour_4, Hour_5 = Hour_5 + @Hour_5, Hour_6 = Hour_6 + @Hour_6, Hour_7 = Hour_7 + @Hour_7,
Hour_8 = Hour_8 + @Hour_8, Hour_9 = Hour_9 + @Hour_9, Hour_10 = Hour_10 + @Hour_10, Hour_11 = Hour_11 + @Hour_11,
Hour_12 = Hour_12 + @Hour_12, Hour_13 = Hour_13 + @Hour_13, Hour_14 = Hour_14 + @Hour_14, Hour_15 = Hour_15 + @Hour_15,
Hour_16 = Hour_16 + @Hour_16, Hour_17 = Hour_17 + @Hour_17, Hour_18 = Hour_18 + @Hour_18, Hour_19 = Hour_19 + @Hour_19,
Hour_20 = Hour_20 + @Hour_20, Hour_21 = Hour_21 + @Hour_21, Hour_22 = Hour_22 + @Hour_22, Hour_23 = Hour_23 + @Hour_23
WHERE
DateFlag = @DateFlag AND GameID = @GameID
--今天还没有
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [OnlineStatHour]
(
DateFlag, GameID,
Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
VALUES
(
@DateFlag, @GameID,
@Hour_0, @Hour_1, @Hour_2, @Hour_3, @Hour_4, @Hour_5, @Hour_6, @Hour_7, @Hour_8,
@Hour_9, @Hour_10, @Hour_11, @Hour_12, @Hour_13, @Hour_14, @Hour_15, @Hour_16,
@Hour_17, @Hour_18, @Hour_19, @Hour_20, @Hour_21, @Hour_22, @Hour_23
)
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_OnlineStatChip_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_OnlineStatChip_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 在线人数统计(每小时执行,供作业调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_OnlineStatChip_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @GameID INT --游戏ID
DECLARE @OnlineUserCount INT --在线用户数
--日志
DECLARE @tmpLog TABLE(
UserID INT NOT NULL, --用户ID
GameID INT NOT NULL, --游戏ID
ServerName NVARCHAR(32) NOT NULL, --服务器名称
PartnerID INT NOT NULL --渠道ID
)
--表变量
DECLARE @tmptable TABLE(
Rid INT IDENTITY, --标识
GameID INT NOT NULL, --游戏ID
OnlineUserCount INT NOT NULL --在线用户数
)
DECLARE @Hour INT --小时
DECLARE @Hour_0 INT -- 0点
DECLARE @Hour_1 INT -- 1点
DECLARE @Hour_2 INT -- 2点
DECLARE @Hour_3 INT -- 3点
DECLARE @Hour_4 INT -- 4点
DECLARE @Hour_5 INT -- 5点
DECLARE @Hour_6 INT -- 6点
DECLARE @Hour_7 INT -- 7点
DECLARE @Hour_8 INT -- 8点
DECLARE @Hour_9 INT -- 9点
DECLARE @Hour_10 INT -- 10点
DECLARE @Hour_11 INT -- 11点
DECLARE @Hour_12 INT -- 12点
DECLARE @Hour_13 INT -- 13点
DECLARE @Hour_14 INT -- 14点
DECLARE @Hour_15 INT -- 15点
DECLARE @Hour_16 INT -- 16点
DECLARE @Hour_17 INT -- 17点
DECLARE @Hour_18 INT -- 18点
DECLARE @Hour_19 INT -- 19点
DECLARE @Hour_20 INT -- 20点
DECLARE @Hour_21 INT -- 21点
DECLARE @Hour_22 INT -- 22点
DECLARE @Hour_23 INT -- 23点
SET @CurrTime = CONVERT(CHAR(14), DATEADD(HOUR, -1, GETDATE()), 120) + '00'
SET @Hour = DATEPART(HOUR, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--初始化
INSERT INTO @tmpLog
(
UserID, GameID, ServerName, PartnerID
)
SELECT DISTINCT
UserID, GameID, ServerName, 0
FROM
[t_onlinelog]
WHERE
Crdate >= @CurrTime AND IsChip = 1
--获取渠道ID
UPDATE l SET l.PartnerID = u.PartnerID FROM @tmpLog l INNER JOIN [AllUser] u ON l.UserID = u.UserID
--统计整个在线用户
INSERT INTO [OnlineStatChip]
(
DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
)
SELECT
@CurrTime, -1, COUNT(DISTINCT UserID), -1, ''
FROM
@tmpLog
--添加到统计表
INSERT INTO [OnlineStatChip]
(
DateFlag, PartnerID, OnlineUserCount, GameID, ServerName
)
SELECT
@CurrTime, PartnerID, COUNT(UserID), GameID, ServerName
FROM
@tmpLog
GROUP BY
PartnerID, GameID, ServerName
--游戏在线用户
INSERT INTO @tmptable
(
GameID, OnlineUserCount
)
SELECT
GameID, COUNT(DISTINCT UserID)
FROM
@tmpLog
WHERE
GameID > 0
GROUP BY
GameID
SET @Rid = 0
--遍历
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @GameID = NULL
SET @OnlineUserCount = NULL
SELECT TOP 1
@Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
FROM
@tmptable
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
BREAK
--分时段
SELECT
@Hour_0 = CASE WHEN @Hour = 0 THEN @OnlineUserCount ELSE 0 END, @Hour_1 = CASE WHEN @Hour = 1 THEN @OnlineUserCount ELSE 0 END,
@Hour_2 = CASE WHEN @Hour = 2 THEN @OnlineUserCount ELSE 0 END, @Hour_3 = CASE WHEN @Hour = 3 THEN @OnlineUserCount ELSE 0 END,
@Hour_4 = CASE WHEN @Hour = 4 THEN @OnlineUserCount ELSE 0 END, @Hour_5 = CASE WHEN @Hour = 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_6 = CASE WHEN @Hour = 6 THEN @OnlineUserCount ELSE 0 END, @Hour_7 = CASE WHEN @Hour = 7 THEN @OnlineUserCount ELSE 0 END,
@Hour_8 = CASE WHEN @Hour = 8 THEN @OnlineUserCount ELSE 0 END, @Hour_9 = CASE WHEN @Hour = 9 THEN @OnlineUserCount ELSE 0 END,
@Hour_10 = CASE WHEN @Hour = 10 THEN @OnlineUserCount ELSE 0 END, @Hour_11 = CASE WHEN @Hour = 11 THEN @OnlineUserCount ELSE 0 END,
@Hour_12 = CASE WHEN @Hour = 12 THEN @OnlineUserCount ELSE 0 END, @Hour_13 = CASE WHEN @Hour = 13 THEN @OnlineUserCount ELSE 0 END,
@Hour_14 = CASE WHEN @Hour = 14 THEN @OnlineUserCount ELSE 0 END, @Hour_15 = CASE WHEN @Hour = 15 THEN @OnlineUserCount ELSE 0 END,
@Hour_16 = CASE WHEN @Hour = 16 THEN @OnlineUserCount ELSE 0 END, @Hour_17 = CASE WHEN @Hour = 17 THEN @OnlineUserCount ELSE 0 END,
@Hour_18 = CASE WHEN @Hour = 18 THEN @OnlineUserCount ELSE 0 END, @Hour_19 = CASE WHEN @Hour = 19 THEN @OnlineUserCount ELSE 0 END,
@Hour_20 = CASE WHEN @Hour = 20 THEN @OnlineUserCount ELSE 0 END, @Hour_21 = CASE WHEN @Hour = 21 THEN @OnlineUserCount ELSE 0 END,
@Hour_22 = CASE WHEN @Hour = 22 THEN @OnlineUserCount ELSE 0 END, @Hour_23 = CASE WHEN @Hour = 23 THEN @OnlineUserCount ELSE 0 END
--统计
UPDATE
[OnlineStatHourChip]
SET
Hour_0 = Hour_0 + @Hour_0, Hour_1 = Hour_1 + @Hour_1, Hour_2 = Hour_2 + @Hour_2, Hour_3 = Hour_3 + @Hour_3,
Hour_4 = Hour_4 + @Hour_4, Hour_5 = Hour_5 + @Hour_5, Hour_6 = Hour_6 + @Hour_6, Hour_7 = Hour_7 + @Hour_7,
Hour_8 = Hour_8 + @Hour_8, Hour_9 = Hour_9 + @Hour_9, Hour_10 = Hour_10 + @Hour_10, Hour_11 = Hour_11 + @Hour_11,
Hour_12 = Hour_12 + @Hour_12, Hour_13 = Hour_13 + @Hour_13, Hour_14 = Hour_14 + @Hour_14, Hour_15 = Hour_15 + @Hour_15,
Hour_16 = Hour_16 + @Hour_16, Hour_17 = Hour_17 + @Hour_17, Hour_18 = Hour_18 + @Hour_18, Hour_19 = Hour_19 + @Hour_19,
Hour_20 = Hour_20 + @Hour_20, Hour_21 = Hour_21 + @Hour_21, Hour_22 = Hour_22 + @Hour_22, Hour_23 = Hour_23 + @Hour_23
WHERE
DateFlag = @DateFlag AND GameID = @GameID
--今天还没有
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [OnlineStatHourChip]
(
DateFlag, GameID,
Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
VALUES
(
@DateFlag, @GameID,
@Hour_0, @Hour_1, @Hour_2, @Hour_3, @Hour_4, @Hour_5, @Hour_6, @Hour_7, @Hour_8,
@Hour_9, @Hour_10, @Hour_11, @Hour_12, @Hour_13, @Hour_14, @Hour_15, @Hour_16,
@Hour_17, @Hour_18, @Hour_19, @Hour_20, @Hour_21, @Hour_22, @Hour_23
)
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_OnlineUser_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_OnlineUser_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 同时在线人数统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_OnlineUser_Stat]
@CurrTime DATETIME --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @GameID INT --游戏ID
DECLARE @OnlineUserCount INT --在线用户数
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Hour INT --小时
DECLARE @Min INT --分钟
DECLARE @Hour_0000 INT -- 00:00
DECLARE @Hour_0030 INT -- 00:30
DECLARE @Hour_0100 INT -- 01:00
DECLARE @Hour_0130 INT -- 01:30
DECLARE @Hour_0200 INT -- 02:00
DECLARE @Hour_0230 INT -- 02:30
DECLARE @Hour_0300 INT -- 03:00
DECLARE @Hour_0330 INT -- 03:30
DECLARE @Hour_0400 INT -- 04:00
DECLARE @Hour_0430 INT -- 04:30
DECLARE @Hour_0500 INT -- 05:00
DECLARE @Hour_0530 INT -- 05:30
DECLARE @Hour_0600 INT -- 06:00
DECLARE @Hour_0630 INT -- 06:30
DECLARE @Hour_0700 INT -- 07:00
DECLARE @Hour_0730 INT -- 07:30
DECLARE @Hour_0800 INT -- 08:00
DECLARE @Hour_0830 INT -- 08:30
DECLARE @Hour_0900 INT -- 09:00
DECLARE @Hour_0930 INT -- 09:30
DECLARE @Hour_1000 INT -- 10:00
DECLARE @Hour_1030 INT -- 10:30
DECLARE @Hour_1100 INT -- 11:00
DECLARE @Hour_1130 INT -- 11:30
DECLARE @Hour_1200 INT -- 12:00
DECLARE @Hour_1230 INT -- 12:30
DECLARE @Hour_1300 INT -- 13:00
DECLARE @Hour_1330 INT -- 13:30
DECLARE @Hour_1400 INT -- 14:00
DECLARE @Hour_1430 INT -- 14:30
DECLARE @Hour_1500 INT -- 15:00
DECLARE @Hour_1530 INT -- 15:30
DECLARE @Hour_1600 INT -- 16:00
DECLARE @Hour_1630 INT -- 16:30
DECLARE @Hour_1700 INT -- 17:00
DECLARE @Hour_1730 INT -- 17:30
DECLARE @Hour_1800 INT -- 18:00
DECLARE @Hour_1830 INT -- 18:30
DECLARE @Hour_1900 INT -- 19:00
DECLARE @Hour_1930 INT -- 19:30
DECLARE @Hour_2000 INT -- 20:00
DECLARE @Hour_2030 INT -- 20:30
DECLARE @Hour_2100 INT -- 21:00
DECLARE @Hour_2130 INT -- 21:30
DECLARE @Hour_2200 INT -- 22:00
DECLARE @Hour_2230 INT -- 22:30
DECLARE @Hour_2300 INT -- 23:00
DECLARE @Hour_2330 INT -- 23:30
DECLARE @tmptable TABLE(
Rid INT IDENTITY, --自增
GameID INT NOT NULL, --游戏ID
OnlineUserCount INT NOT NULL --在线人数
)
SET @Hour = DATEPART(HOUR, @CurrTime)
SET @Min = DATEPART(MINUTE, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--初始化
INSERT INTO @tmptable
(
GameID, OnlineUserCount
)
SELECT
GameID, COUNT(UserID)
FROM
[t_onlineuser]
GROUP BY
GameID
SET @Rid = 0
--遍历
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @GameID = NULL
SET @OnlineUserCount = NULL
SELECT TOP 1
@Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
FROM
@tmptable
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
BREAK
--分时段
SELECT
@Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0030 = CASE WHEN @Hour = 0 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0130 = CASE WHEN @Hour = 1 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0230 = CASE WHEN @Hour = 2 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0330 = CASE WHEN @Hour = 3 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0430 = CASE WHEN @Hour = 4 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0530 = CASE WHEN @Hour = 5 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0630 = CASE WHEN @Hour = 6 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0730 = CASE WHEN @Hour = 7 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0830 = CASE WHEN @Hour = 8 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0930 = CASE WHEN @Hour = 9 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1030 = CASE WHEN @Hour = 10 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1130 = CASE WHEN @Hour = 11 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1230 = CASE WHEN @Hour = 12 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1330 = CASE WHEN @Hour = 13 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1430 = CASE WHEN @Hour = 14 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1530 = CASE WHEN @Hour = 15 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1630 = CASE WHEN @Hour = 16 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1730 = CASE WHEN @Hour = 17 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1830 = CASE WHEN @Hour = 18 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1930 = CASE WHEN @Hour = 19 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2030 = CASE WHEN @Hour = 20 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2130 = CASE WHEN @Hour = 21 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2230 = CASE WHEN @Hour = 22 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2330 = CASE WHEN @Hour = 23 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END
--统计
UPDATE
[OnlineStatMin]
SET
Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
WHERE
DateFlag = @DateFlag AND GameID = @GameID
--今天还没有
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [OnlineStatMin]
(
DateFlag, GameID,
Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
)
VALUES
(
@DateFlag, @GameID,
@Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
@Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
@Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
@Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
@Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
@Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
@Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
@Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
)
END
END
END
GO
/****** Object: StoredProcedure [dbo].[Game_OnlineUserChip_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_OnlineUserChip_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 同时在线人数统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_OnlineUserChip_Stat]
@CurrTime DATETIME --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @GameID INT --游戏ID
DECLARE @OnlineUserCount INT --在线用户数
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Hour INT --小时
DECLARE @Min INT --分钟
DECLARE @Hour_0000 INT -- 00:00
DECLARE @Hour_0030 INT -- 00:30
DECLARE @Hour_0100 INT -- 01:00
DECLARE @Hour_0130 INT -- 01:30
DECLARE @Hour_0200 INT -- 02:00
DECLARE @Hour_0230 INT -- 02:30
DECLARE @Hour_0300 INT -- 03:00
DECLARE @Hour_0330 INT -- 03:30
DECLARE @Hour_0400 INT -- 04:00
DECLARE @Hour_0430 INT -- 04:30
DECLARE @Hour_0500 INT -- 05:00
DECLARE @Hour_0530 INT -- 05:30
DECLARE @Hour_0600 INT -- 06:00
DECLARE @Hour_0630 INT -- 06:30
DECLARE @Hour_0700 INT -- 07:00
DECLARE @Hour_0730 INT -- 07:30
DECLARE @Hour_0800 INT -- 08:00
DECLARE @Hour_0830 INT -- 08:30
DECLARE @Hour_0900 INT -- 09:00
DECLARE @Hour_0930 INT -- 09:30
DECLARE @Hour_1000 INT -- 10:00
DECLARE @Hour_1030 INT -- 10:30
DECLARE @Hour_1100 INT -- 11:00
DECLARE @Hour_1130 INT -- 11:30
DECLARE @Hour_1200 INT -- 12:00
DECLARE @Hour_1230 INT -- 12:30
DECLARE @Hour_1300 INT -- 13:00
DECLARE @Hour_1330 INT -- 13:30
DECLARE @Hour_1400 INT -- 14:00
DECLARE @Hour_1430 INT -- 14:30
DECLARE @Hour_1500 INT -- 15:00
DECLARE @Hour_1530 INT -- 15:30
DECLARE @Hour_1600 INT -- 16:00
DECLARE @Hour_1630 INT -- 16:30
DECLARE @Hour_1700 INT -- 17:00
DECLARE @Hour_1730 INT -- 17:30
DECLARE @Hour_1800 INT -- 18:00
DECLARE @Hour_1830 INT -- 18:30
DECLARE @Hour_1900 INT -- 19:00
DECLARE @Hour_1930 INT -- 19:30
DECLARE @Hour_2000 INT -- 20:00
DECLARE @Hour_2030 INT -- 20:30
DECLARE @Hour_2100 INT -- 21:00
DECLARE @Hour_2130 INT -- 21:30
DECLARE @Hour_2200 INT -- 22:00
DECLARE @Hour_2230 INT -- 22:30
DECLARE @Hour_2300 INT -- 23:00
DECLARE @Hour_2330 INT -- 23:30
DECLARE @tmptable TABLE(
Rid INT IDENTITY, --自增
GameID INT NOT NULL, --游戏ID
OnlineUserCount INT NOT NULL --在线人数
)
SET @Hour = DATEPART(HOUR, @CurrTime)
SET @Min = DATEPART(MINUTE, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--初始化
INSERT INTO @tmptable
(
GameID, OnlineUserCount
)
SELECT
GameID, COUNT(UserID)
FROM
[t_onlineuser]
WHERE
IsChip = 1
GROUP BY
GameID
SET @Rid = 0
--遍历
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @GameID = NULL
SET @OnlineUserCount = NULL
SELECT TOP 1
@Rid = Rid, @GameID = GameID, @OnlineUserCount = OnlineUserCount
FROM
@tmptable
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL OR @GameID IS NULL OR @OnlineUserCount IS NULL)
BREAK
--分时段
SELECT
@Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0030 = CASE WHEN @Hour = 0 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0130 = CASE WHEN @Hour = 1 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0230 = CASE WHEN @Hour = 2 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0330 = CASE WHEN @Hour = 3 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0430 = CASE WHEN @Hour = 4 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0530 = CASE WHEN @Hour = 5 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0630 = CASE WHEN @Hour = 6 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0730 = CASE WHEN @Hour = 7 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0830 = CASE WHEN @Hour = 8 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_0930 = CASE WHEN @Hour = 9 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1030 = CASE WHEN @Hour = 10 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1130 = CASE WHEN @Hour = 11 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1230 = CASE WHEN @Hour = 12 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1330 = CASE WHEN @Hour = 13 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1430 = CASE WHEN @Hour = 14 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1530 = CASE WHEN @Hour = 15 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1630 = CASE WHEN @Hour = 16 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1730 = CASE WHEN @Hour = 17 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1830 = CASE WHEN @Hour = 18 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_1930 = CASE WHEN @Hour = 19 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2030 = CASE WHEN @Hour = 20 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2130 = CASE WHEN @Hour = 21 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2230 = CASE WHEN @Hour = 22 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END,
@Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 5 THEN @OnlineUserCount ELSE 0 END,
@Hour_2330 = CASE WHEN @Hour = 23 AND @Min BETWEEN 30 AND 35 THEN @OnlineUserCount ELSE 0 END
--统计
UPDATE
[OnlineStatMinChip]
SET
Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
WHERE
DateFlag = @DateFlag AND GameID = @GameID
--今天还没有
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [OnlineStatMinChip]
(
DateFlag, GameID,
Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
)
VALUES
(
@DateFlag, @GameID,
@Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
@Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
@Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
@Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
@Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
@Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
@Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
@Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
)
END
END
END
GO
/****** Object: StoredProcedure [dbo].[Game_Pay_Trigger] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Pay_Trigger]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 充值触发事件
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Pay_Trigger]
@UserID INT, --用户ID
@ProductID VARCHAR(32), --产品ID
@Price DECIMAL(18, 2), --价格
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @PayMoney DECIMAL(18, 2) --充值总额
DECLARE @CurrTime DATETIME --系统当前时间
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--充值额度
UPDATE [AllUser] SET PayMoney = PayMoney + @Price, @PayMoney = PayMoney WHERE UserID = @UserID
--测试账号
IF(@UserID IN (29465429, 20943465, 39344488, 15346563, 43953178, 93958855, 26301071, 57401563, 73203631, 45810851, 83181000, 87291356, 90234321, 6953582, 72466568, 3960708, 27512942, 26379928))
RETURN
--首充
IF(@PayMoney = 0)
BEGIN
--充值(首充))触发代理收益
EXEC [Game_UserAgent_Trigger] @UserID = @UserID, @GameID = 0, @Tax = @Price, @IPAddress = @IPAddress, @TriggerType = 3
END
--统计当天充值额度
UPDATE [UserPayLog] SET RMBMoney = RMBMoney + @Price WHERE DateFlag = @DateFlag AND UserID = @UserID
--今天还没有统计
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserPayLog](UserID, RMBMoney, DateFlag) VALUES(@UserID, @Price, @DateFlag)
END
--触发代理收益
EXEC [WS_UserTeacher_AddProfit] @StudentID = @UserID, @Price = @Price
--用戶日常统计
--更新
UPDATE [UserDailyStat] SET PayMoney = PayMoney + @Price WHERE DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, 0, 0, 0, '2021-01-01', '2021-01-01',
0, @Price, 0, 0, 0
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_PayStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_PayStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-11-17
-- Mendor: wolf
-- Alter Date: 2016-11-28
-- Description: 充值统计(每10分钟执行,供作业调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_PayStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @BeginTime DATETIME --开始时间
DECLARE @EndTime DATETIME --截止时间
--创建临时表
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
Price DECIMAL(18, 2) NOT NULL --交易金额
)
SET @CurrTime = GETDATE()
--零点零分,特殊处理
IF(DATEPART(HOUR, @CurrTime) = 0 AND DATEPART(MINUTE, @CurrTime) <= 5)
BEGIN
SET @BeginTime = CONVERT(CHAR(10), @CurrTime - 1, 120)
SET @EndTime = CONVERT(CHAR(10), @CurrTime, 120)
END
--正常处理
ELSE
BEGIN
SET @BeginTime = CONVERT(CHAR(10), @CurrTime, 120)
SET @EndTime = @CurrTime
END
INSERT INTO @tmptable(
Price, UserID
)
SELECT
Price, UserID
FROM
[VerifySuccessLog]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime AND IsSandBox = 0
UNION ALL
SELECT
Price, UserID
FROM
[GoogleSuccessLog]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
UNION ALL
SELECT
Price, UserID
FROM
[CroPay]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
UNION ALL
SELECT
Price, UserID
FROM
[DingpeiPay]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
UNION ALL
SELECT
Price, UserID
FROM
[CrushPay]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
UNION ALL
SELECT
Price, UserID
FROM
[PayerMaxPay]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
UNION ALL
SELECT
Price, UserID
FROM
[OPay]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
UNION ALL
SELECT
Price, UserID
FROM
[huaweiPay]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
UNION ALL
SELECT
Price, UserID
FROM
[ManualPay]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
--添加到统计表
INSERT INTO [PayStat]
(
DateFlag, RMBMoney, UserCount
)
SELECT
@CurrTime, ISNULL(SUM(Price), 0), COUNT(DISTINCT UserID)
FROM
@tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Rand_GetRnd] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @Rnd INT
-- EXEC [Game_Rand_GetRnd]
-- @Min = 1,
-- @Max = 10000,
-- @Rnd = @Rnd OUTPUT
-- SELECT @Rnd AS Rnd
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-30
-- Mendor: wolf
-- Alter Date: 2013-07-30
-- Description: 获取随机数
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Rand_GetRnd]
@Min INT, --最小值
@Max INT, --最大值
@Rnd INT OUTPUT --随机数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @Rnd = (@Min + (@Max - @Min + 1) * Rand(CHECKSUM(NEWID())))
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Rank_Award] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Rank_Award]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 排行榜奖励
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Rank_Award]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Rank INT --排名
DECLARE @OneRank INT --当前排名
DECLARE @UserID INT --用户ID
DECLARE @Content NVARCHAR(256) --内容
DECLARE @Tools VARCHAR(256) --道具
DECLARE @Crdate DATETIME --时间
DECLARE @SysMsgID INT
IF( DATEPART(WEEKDAY, GETDATE()) - 1 != 1 OR DATEPART(HOUR, GETDATE()) != 0 OR DATEPART(MINUTE, GETDATE()) >= 2)
RETURN
SET @Rank = 0
WHILE(1=1)
BEGIN
SET @OneRank = @Rank
SET @Rank = NULL
SET @UserID = NULL
SELECT TOP 1 @Rank = Rank, @UserID = UserID FROM [WinRank] WHERE Rank > @OneRank ORDER BY Rank ASC
IF(@Rank IS NULL)
BREAK
SELECT @Tools = Tools FROM [RankAward] WHERE RankType = 1 AND Rank = @Rank
IF(@@ROWCOUNT = 0)
CONTINUE
SET @Content = N'亲爱的用户,您上周总盈利金币数额进入排行榜第' + LTRIM(STR(@Rank)) + '名,获得了以下奖励,请注意查收附件。'
SET @Crdate = GETDATE()
--发送邮件
EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = N'排行榜奖励', @Content = @Content, @Status = 0,
@SourceName = '盈利榜', @Crdate = @Crdate, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
END
END
GO
/****** Object: StoredProcedure [dbo].[Game_Rank_Sort] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Rank_Sort]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 排行榜
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Rank_Sort]
@CurrTime DATETIME --系统当前时间(方便调试用)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @TimeStamp INT --时间戳
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @WeekFlag SMALLDATETIME --周开始
DECLARE @MonthFlag SMALLDATETIME --月开始
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @UserID INT --用户ID
DECLARE @RankType INT --榜单类型
DECLARE @RankTypeName NVARCHAR(32) --榜单类型名称
DECLARE @Rank INT --排名
DECLARE @Content NVARCHAR(256) --内容
DECLARE @Tools VARCHAR(256) --道具
DECLARE @Crdate DATETIME --时间
DECLARE @SysMsgID INT
DECLARE @Rnd INT
DECLARE @RobotID INT --机器人ID
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
Amount BIGINT NOT NULL --赢得金币数
)
DECLARE @tmpHistory TABLE(
Rid INT IDENTITY NOT NULL, --标识
RankType INT NOT NULL, --榜单类型
Rank INT NOT NULL, --排名
UserID INT NOT NULL, --用户ID
Amount BIGINT NOT NULL, --赢得金币数
Crdate DATETIME NOT NULL, --时间
IsGift TINYINT NOT NULL --是否领取
)
SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
IF(DATEPART(MINUTE, @CurrTime) < 3)
BEGIN
SET @CurrTime = DATEADD(MINUTE, -3, @CurrTime)
END
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @MonthFlag = CONVERT(CHAR(8), @CurrTime, 120) + '01'
--本周日
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@CurrTime + @@DATEFIRST - 1) + 7, @CurrTime))
--本周日还没到,取上周日日期
IF(@WeekFlag > @DateFlag)
BEGIN
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@CurrTime + @@DATEFIRST - 1) - 0, @CurrTime))
END
--先去发放奖励
--EXEC [Game_Rank_Award]
--凌晨(00:10)处理
IF(DATEPART(HOUR, @CurrTime) = 0 AND DATEPART(MINUTE, @CurrTime) BETWEEN 5 AND 15)
BEGIN
--历史记录
--1=财富榜 2=每日赢金榜 8=魅力日榜 11=语聊房赠送礼物日榜 14=语聊房接收礼物日榜
--17=语聊房房间消耗钻石日榜 20=好友房赢局数日榜
INSERT INTO @tmpHistory
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT
RankType, Rank, UserID, Amount, Crdate, IsGift
FROM
[AllRank]
WHERE
RankType IN (1, 2, 8, 11, 14, 17, 20)
--清理上周榜 TODO 测试通过后删除
DELETE FROM [AllRank] WHERE RankType = 7
--6=语聊房本周榜 7=语聊房上周榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT
7, Rank, UserID, Amount, Crdate, IsGift
FROM
[AllRank]
WHERE
RankType = 6
--周榜
IF(@DateFlag = @WeekFlag)
BEGIN
--清理上周榜
-- DELETE FROM [AllRank] WHERE RankType = 7
-- --6=语聊房本周榜 7=语聊房上周榜
-- INSERT INTO [AllRank]
-- (
-- RankType, Rank, UserID, Amount, Crdate, IsGift
-- )
-- SELECT
-- 7, Rank, UserID, Amount, Crdate, IsGift
-- FROM
-- [AllRank]
-- WHERE
-- RankType = 6
--历史记录
--3=每周赢金榜 7=语聊房上周榜 9=魅力周榜 12=语聊房赠送礼物周榜
--15=语聊房接收礼物周榜 18=语聊房房间消耗钻石周榜 21=好友房赢局数周榜
INSERT INTO @tmpHistory
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT
RankType, Rank, UserID, Amount, Crdate, IsGift
FROM
[AllRank]
WHERE
RankType IN (3, 7, 9, 12, 15, 18, 21)
END
--月榜
IF(@DateFlag = @MonthFlag)
BEGIN
--历史记录
--4=每月赢金榜 10=魅力月榜 13=语聊房赠送礼物月榜 16=语聊房接收礼物月榜
--19=语聊房房间消耗钻石月榜
INSERT INTO @tmpHistory
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT
RankType, Rank, UserID, Amount, Crdate, IsGift
FROM
[AllRank]
WHERE
RankType IN (4, 10, 13, 16, 19)
END
--记录到排行榜历史
INSERT INTO [RankHistory]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT
RankType, Rank, UserID, Amount, Crdate, IsGift
FROM
@tmpHistory
SET @Rid = 0
--发放奖励
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @RankType = NULL
SET @Rank = NULL
SET @UserID = NULL
SET @RankTypeName = NULL
SELECT TOP 1
@Rid = Rid, @RankType = RankType, @Rank = Rank, @UserID = UserID
FROM
@tmpHistory
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL)
BREAK
SELECT
@RankTypeName = RankTypeName, @Tools = Tools
FROM
[RankAward]
WHERE
RankType = @RankType AND Rank = @Rank
IF(@@ROWCOUNT = 0)
CONTINUE
--SET @Content = N'亲爱的用户,您进入' + @RankTypeName + '排行榜第' + LTRIM(STR(@Rank)) + '名,获得了以下奖励,请注意查收附件。'
SET @Content = N'عزيزي المستخدم،لقد حصلت على المرتبة##0في تصنيف##1، وقد حصلت على الجوائز التالية، يرجى التحقق من المرفقات.'
SET @Content = REPLACE(@Content, '##0', @RankTypeName)
SET @Content = REPLACE(@Content, '##1', LTRIM(STR(@Rank)))
--发送邮件
EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = N'مكافآت المتصدرين', @Content = @Content, @Status = 0,
@SourceName = @RankTypeName, @Crdate = @TimeStamp, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
END
RETURN
END
--先清理数据(以下榜单先不删除:7=语聊房上周榜)
DELETE FROM [AllRank] WHERE RankType != 7
--1=财富榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
1, ROW_NUMBER() OVER(ORDER BY Amount DESC) AS Rank, UserID, Amount, @CurrTime, 1
FROM
[Money]
--2=每日赚金榜
INSERT INTO @tmptable(UserID, Amount)
SELECT TOP 50
UserID, SUM(WinAmount)
FROM
[DailyBetStat]
WHERE
DateFlag >= @DateFlag AND WinAmount > 0
GROUP BY
UserID
ORDER BY
SUM(WinAmount) DESC
--不满50名,补充机器人
IF(@@ROWCOUNT < 50)
BEGIN
--随机1名机器人
SELECT TOP 1 @RobotID = UserID FROM [MachineUser] ORDER BY NEWID()
EXEC [Game_Rand_GetRnd] @Min = 5000, @Max = 20000, @Rnd = @Rnd OUTPUT
UPDATE @tmptable SET Amount = Amount + @Rnd WHERE UserID = @RobotID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO @tmptable(UserID, Amount) VALUES(@RobotID, @Rnd)
END
--统计每日流水
UPDATE
[DailyBetStat]
SET
WinAmount = WinAmount + @Rnd
WHERE
DateFlag = @DateFlag AND UserID = @RobotID AND GameID = 37 AND ServerName = 'baloot1'
--当天无流水
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [DailyBetStat]
(
DateFlag, UserID, GameID, ServerName, BetAmount, ResultAmount, WinAmount,
MoneySum, TaxAmount, TotalCount, WinCount, PlaySeconds
)
VALUES
(
@DateFlag, @RobotID, 37, 'baloot1', 0, 0, @Rnd,
0, 0, 0, 0, 0
)
END
END
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
2, ROW_NUMBER() OVER(ORDER BY Amount DESC) AS Rank, UserID, Amount, @DateFlag, 1
FROM
@tmptable
--3=每周赚金榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
3, ROW_NUMBER() OVER(ORDER BY SUM(WinAmount) DESC) AS Rank, UserID, SUM(WinAmount), @WeekFlag, 1
FROM
[DailyBetStat]
WHERE
DateFlag >= @WeekFlag AND WinAmount > 0
GROUP BY
UserID
--4=每月赚金榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
4, ROW_NUMBER() OVER(ORDER BY SUM(WinAmount) DESC) AS Rank, UserID, SUM(WinAmount), @MonthFlag, 1
FROM
[DailyBetStat]
WHERE
DateFlag >= @MonthFlag AND WinAmount > 0
GROUP BY
UserID
--5=徽章榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
5, ROW_NUMBER() OVER(ORDER BY SUM(Points) DESC) AS Rank, UserID, SUM(Points), @CurrTime, 1
FROM
[UserBadge]
WHERE
Points > 0
GROUP BY
UserID
--6=语聊房本周榜
DELETE FROM [AllRank] WHERE RankType = 6
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
6, ROW_NUMBER() OVER(ORDER BY SUM(Exps) DESC) AS Rank, RoomID, SUM(Exps), @DateFlag, 1
FROM
[AudioRoomExpLog]
WHERE
DateFlag >= @DateFlag AND Exps > 0
GROUP BY
RoomID
--8=魅力日榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
8, ROW_NUMBER() OVER(ORDER BY SUM(Charm) DESC) AS Rank, UserID, SUM(Charm), @DateFlag, 1
FROM
[UserCharmHistory]
WHERE
DateFlag >= @DateFlag AND Charm > 0
GROUP BY
UserID
--9=魅力周榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
9, ROW_NUMBER() OVER(ORDER BY SUM(Charm) DESC) AS Rank, UserID, SUM(Charm), @WeekFlag, 1
FROM
[UserCharmHistory]
WHERE
DateFlag >= @WeekFlag AND Charm > 0
GROUP BY
UserID
--10=魅力月榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
10, ROW_NUMBER() OVER(ORDER BY SUM(Charm) DESC) AS Rank, UserID, SUM(Charm), @MonthFlag, 1
FROM
[UserCharmHistory]
WHERE
DateFlag >= @MonthFlag AND Charm > 0
GROUP BY
UserID
--11=语聊房赠送礼物日榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
11, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Sender, SUM(DiamondAmount), @DateFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @DateFlag
GROUP BY
Sender
--12=语聊房赠送礼物周榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
12, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Sender, SUM(DiamondAmount), @WeekFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @WeekFlag
GROUP BY
Sender
--13=语聊房赠送礼物月榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
13, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Sender, SUM(DiamondAmount), @MonthFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @MonthFlag
GROUP BY
Sender
--14=语聊房接收礼物日榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
14, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Receiver, SUM(DiamondAmount), @DateFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @DateFlag
GROUP BY
Receiver
--15=语聊房接收礼物周榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
15, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Receiver, SUM(DiamondAmount), @WeekFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @WeekFlag
GROUP BY
Receiver
--16=语聊房接收礼物月榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
16, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, Receiver, SUM(DiamondAmount), @MonthFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @MonthFlag
GROUP BY
Receiver
--17=语聊房房间消耗钻石日榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
17, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, RoomID, SUM(DiamondAmount), @DateFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @DateFlag
GROUP BY
RoomID
--18=语聊房房间消耗钻石周榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
18, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, RoomID, SUM(DiamondAmount), @WeekFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @WeekFlag
GROUP BY
RoomID
--19=语聊房房间消耗钻石月榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
19, ROW_NUMBER() OVER(ORDER BY SUM(DiamondAmount) DESC) AS Rank, RoomID, SUM(DiamondAmount), @MonthFlag, 1
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @MonthFlag
GROUP BY
RoomID
--20=好友房赢局数日榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
20, ROW_NUMBER() OVER(ORDER BY SUM(WinCount) DESC) AS Rank, UserID, SUM(WinCount), @DateFlag, 1
FROM
[DailyBetStat]
WHERE
DateFlag >= @DateFlag AND WinCount > 0 AND ServerName = 'PrivateRoom'
GROUP BY
UserID
ORDER BY
SUM(WinCount) DESC
--21=好友房赢局数周榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
21, ROW_NUMBER() OVER(ORDER BY SUM(WinCount) DESC) AS Rank, UserID, SUM(WinCount), @WeekFlag, 1
FROM
[DailyBetStat]
WHERE
DateFlag >= @WeekFlag AND WinCount > 0 AND ServerName = 'PrivateRoom'
GROUP BY
UserID
ORDER BY
SUM(WinCount) DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_RegStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_RegStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2017-01-04
-- Mendor: wolf
-- Alter Date: 2017-01-04
-- Description: 注册统计(每10分钟执行,供作业调用)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_RegStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @BeginTime DATETIME --开始时间
DECLARE @EndTime DATETIME --截止时间
DECLARE @TotalCount INT --注册总人数
SET @CurrTime = GETDATE()
--零点零分,特殊处理
IF(DATEPART(HOUR, @CurrTime) = 0 AND DATEPART(MINUTE, @CurrTime) <= 5)
BEGIN
SET @BeginTime = CONVERT(CHAR(10), @CurrTime - 1, 120)
SET @EndTime = CONVERT(CHAR(10), @CurrTime, 120)
END
--正常处理
ELSE
BEGIN
SET @BeginTime = CONVERT(CHAR(10), @CurrTime, 120)
SET @EndTime = @CurrTime
END
--注册总人数
SELECT
@TotalCount = COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime < @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--添加到统计表
INSERT INTO [RegStat]
(
DateFlag, UserCount, TotalCount
)
SELECT
CONVERT(CHAR(16), @CurrTime, 120), COUNT(UserID), @TotalCount
FROM
[AllUser]
WHERE
RegTime >= @BeginTime AND RegTime < @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_RetentionStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_RetentionStat_Stat]
-- =============================================
-- Author: wolf
-- Create Date: 2016-10-21
-- Mendor: wolf
-- Alter Date: 2016-10-21
-- Description: 留存统计
-- =============================================
CREATE PROCEDURE [dbo].[Game_RetentionStat_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @StatFlag SMALLDATETIME --统计日期标识
DECLARE @Item VARCHAR(256) --事项
DECLARE @LiveUsers_1 INT --次日留存
DECLARE @LiveUsers_3 INT --3日留存
DECLARE @LiveUsers_5 INT --5日留存
DECLARE @LiveUsers_7 INT --7日留存
DECLARE @LiveUsers_15 INT --15日留存
DECLARE @LiveUsers_30 INT --30日留存
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @Days INT --天数
--表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
PayItem VARCHAR(32) NOT NULL, --是否付费
UTMItem VARCHAR(32) NOT NULL --流量渠道
)
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SET @DateFlag = @DateFlag - 1
--初始化表变量
INSERT INTO @tmptable
(
UserID, PayItem, UTMItem
)
SELECT
UserID, CASE WHEN PayMoney > 0 THEN '付费用户' ELSE '' END, ''
FROM
[UserDailyStat]
WHERE
DateFlag = @DateFlag
--获取流量渠道
UPDATE
t
SET
t.UTMItem =
CASE
WHEN u.Source = N'apps.facebook.com' THEN 'Facebook 用户'
WHEN u.Source = N'google-play' THEN 'google-play 用户'
WHEN u.Source = N'GoogleAd' THEN 'GoogleAd 用户'
ELSE ''
END
FROM
@tmptable t INNER JOIN [UTM] u ON t.UserID = u.UserID
--生成全体用户留存数据
INSERT INTO [RetentionStat]
(
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
@DateFlag, '全体用户', COUNT(UserID), 0, 0, 0, 0, 0, 0
FROM
@tmptable
--生成付费用户留存数据
INSERT INTO [RetentionStat]
(
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
@DateFlag, PayItem, COUNT(UserID), 0, 0, 0, 0, 0, 0
FROM
@tmptable
WHERE
PayItem = '付费用户'
GROUP BY
PayItem
--生成登录用户留存数据
INSERT INTO [RetentionStat]
(
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
@DateFlag, UTMItem, COUNT(UserID), 0, 0, 0, 0, 0, 0
FROM
@tmptable
WHERE
UTMItem IN ('Facebook 用户', 'google-play 用户', 'GoogleAd 用户')
GROUP BY
UTMItem
SET @Rid = 0
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @StatFlag = NULL
SET @Item = NULL
SET @LiveUsers_1 = NULL
SET @LiveUsers_3 = NULL
SET @LiveUsers_5 = NULL
SET @LiveUsers_7 = NULL
SET @LiveUsers_15 = NULL
SET @LiveUsers_30 = NULL
SELECT TOP 1
@Rid = Rid, @StatFlag = DateFlag, @Item = Item
FROM
[RetentionStat]
WHERE
DateFlag >= @DateFlag - 30 AND Rid > @OneRid
ORDER BY
Rid ASC
IF(@Rid IS NULL)
BREAK
--计算天数
SET @Days = DATEDIFF(DAY, @StatFlag, @DateFlag) + 1
--全体用户
IF(@Item = '全体用户')
BEGIN
--次日
IF(@Days = 2)
BEGIN
--次日留存
SELECT
@LiveUsers_1 = COUNT(u.UserID)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--3日留存
ELSE IF(@Days = 3)
BEGIN
--3日留存
SELECT
@LiveUsers_3 = COUNT(u.UserID)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--5日留存
ELSE IF(@Days = 5)
BEGIN
--5日留存
SELECT
@LiveUsers_5 = COUNT(u.UserID)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--7日留存
ELSE IF(@Days = 7)
BEGIN
--7日留存
SELECT
@LiveUsers_7 = COUNT(u.UserID)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--15日留存
ELSE IF(@Days = 15)
BEGIN
--15日留存
SELECT
@LiveUsers_15 = COUNT(u.UserID)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--30日留存
ELSE IF(@Days = 30)
BEGIN
--30日留存
SELECT
@LiveUsers_30 = COUNT(u.UserID)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
END
--其他事项
ELSE
BEGIN
--次日
IF(@Days = 2)
BEGIN
--次日留存
SELECT
@LiveUsers_1 = SUM(
CASE
WHEN t.PayItem = @Item THEN 1
WHEN t.UTMItem = @Item THEN 1
ELSE 0
END
)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--3日留存
ELSE IF(@Days = 3)
BEGIN
--3日留存
SELECT
@LiveUsers_3 = SUM(
CASE
WHEN t.PayItem = @Item THEN 1
WHEN t.UTMItem = @Item THEN 1
ELSE 0
END
)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--5日留存
ELSE IF(@Days = 5)
BEGIN
--5日留存
SELECT
@LiveUsers_5 = SUM(
CASE
WHEN t.PayItem = @Item THEN 1
WHEN t.UTMItem = @Item THEN 1
ELSE 0
END
)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--7日留存
ELSE IF(@Days = 7)
BEGIN
--7日留存
SELECT
@LiveUsers_7 = SUM(
CASE
WHEN t.PayItem = @Item THEN 1
WHEN t.UTMItem = @Item THEN 1
ELSE 0
END
)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--15日留存
ELSE IF(@Days = 15)
BEGIN
--15日留存
SELECT
@LiveUsers_15 = SUM(
CASE
WHEN t.PayItem = @Item THEN 1
WHEN t.UTMItem = @Item THEN 1
ELSE 0
END
)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
--30日留存
ELSE IF(@Days = 30)
BEGIN
--30日留存
SELECT
@LiveUsers_30 = SUM(
CASE
WHEN t.PayItem = @Item THEN 1
WHEN t.UTMItem = @Item THEN 1
ELSE 0
END
)
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag = @StatFlag
END
END
SET @LiveUsers_1 = ISNULL(@LiveUsers_1, 0)
SET @LiveUsers_3 = ISNULL(@LiveUsers_3, 0)
SET @LiveUsers_5 = ISNULL(@LiveUsers_5, 0)
SET @LiveUsers_7 = ISNULL(@LiveUsers_7, 0)
SET @LiveUsers_15 = ISNULL(@LiveUsers_15, 0)
SET @LiveUsers_30 = ISNULL(@LiveUsers_30, 0)
/*
PRINT '@Rid=' + LTRIM(STR(@Rid)) + ',@DateFlag=' + CONVERT(VARCHAR(16), @StatFlag, 120) + ',@Item=' + @Item + ',@Days=' + LTRIM(STR(@Days)) +
',@LiveUsers_1=' + LTRIM(STR(@LiveUsers_1)) + ',@LiveUsers_3=' + LTRIM(STR(@LiveUsers_3)) + ',@LiveUsers_5=' + LTRIM(STR(@LiveUsers_5)) +
',@LiveUsers_7=' + LTRIM(STR(@LiveUsers_7)) + ',@LiveUsers_15=' + LTRIM(STR(@LiveUsers_15)) + ',@LiveUsers_30=' + LTRIM(STR(@LiveUsers_30))
*/
--更新统计
UPDATE
[RetentionStat]
SET
LiveUsers_1 = CASE WHEN @LiveUsers_1 > 0 THEN @LiveUsers_1 ELSE LiveUsers_1 END,
LiveUsers_3 = CASE WHEN @LiveUsers_3 > 0 THEN @LiveUsers_3 ELSE LiveUsers_3 END,
LiveUsers_5 = CASE WHEN @LiveUsers_5 > 0 THEN @LiveUsers_5 ELSE LiveUsers_5 END,
LiveUsers_7 = CASE WHEN @LiveUsers_7 > 0 THEN @LiveUsers_7 ELSE LiveUsers_7 END,
LiveUsers_15 = CASE WHEN @LiveUsers_15 > 0 THEN @LiveUsers_15 ELSE LiveUsers_15 END,
LiveUsers_30 = CASE WHEN @LiveUsers_30 > 0 THEN @LiveUsers_30 ELSE LiveUsers_30 END
WHERE
Rid = @Rid
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Score_Cal] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Score_Cal]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 游戏积分计算
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Score_Cal]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@ServerName NVARCHAR(32), --服务器名称
@BetAmount BIGINT --下注金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Score BIGINT --积分
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--房间名称
IF(@GameID IN (86, 70, 11, 12, 13))
BEGIN
SELECT
@Score = Score
FROM
[ScoreRankConfig]
WHERE
GameID = @GameID AND RoomName = @ServerName
END
--投注额
ELSE
BEGIN
--获取下注额区间
SELECT TOP 1
@Score = Score
FROM
[ScoreRankConfig]
WHERE
GameID = @GameID AND RoomName >= ABS(@BetAmount)
ORDER BY
RoomName ASC
END
--无效积分
IF(@Score IS NULL OR @Score <= 0)
RETURN
--更新用户积分
UPDATE
[UserScore]
SET
Score = Score + @Score
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserScore]
(
DateFlag, UserID, GameID, Score
)
VALUES
(
@DateFlag, @UserID, @GameID, @Score
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_SettleVideo_Trigger] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_SettleVideo_Trigger]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2015-08-10
-- Description: 游戏返还视频触发
-- ==============================================
CREATE PROCEDURE [dbo].[Game_SettleVideo_Trigger]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@PreAmount BIGINT, --操作前金额
@Balance BIGINT, --余额
@Type INT --下注或结算信息(保留)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @SettleID INT --结算ID
DECLARE @MaxTimes TINYINT --最大返还次数
DECLARE @MaxAmount BIGINT --最大返还金币
DECLARE @SettleRate SMALLINT --返还比率
DECLARE @CarryAmount BIGINT --携带金币
DECLARE @ResultAmount BIGINT --输赢金币
DECLARE @Crdate DATETIME --时间
--查询最近1次
SELECT TOP 1
@SettleID = SettleID, @CarryAmount = CarryAmount, @Crdate = Crdate
FROM
[UserGameSettleVideo]
WHERE
Crdate IN ('2021-01-01', '2021-01-02') AND UserID = @UserID AND GameID = @GameID
ORDER BY
SettleID DESC
--第1次记录下注, 1101=remi 特殊处理,没有结算
IF(@SettleID IS NULL AND @Type % 100 = 1)
BEGIN
INSERT INTO [UserGameSettleVideo]
(
UserID, GameID, CarryAmount, StillAmount, ResultAmount, MaxTimes, SettleTimes, MaxAmount, SettleAmount, Crdate
)
VALUES
(
@UserID, @GameID, @PreAmount, 0, 0, 0, 0, 0, 0, CASE WHEN @Type IN (1101) THEN '2021-01-02' ELSE '2021-01-01' END
)
RETURN
END
--没有数据
IF(@SettleID IS NULL)
RETURN
--游戏结算(龙虎特殊处理)、球球、多米诺
IF((@Type % 100 = 2 AND @Type NOT IN (8802, 7002, 8602)) OR @Type IN (8803, 8813, 8823, 7000, 8600))
BEGIN
--更新
UPDATE [UserGameSettleVideo] SET Crdate = '2021-01-02' WHERE SettleID = @SettleID
RETURN
END
--退出游戏
IF(@Type % 100 = 99)
BEGIN
--输赢金币
SET @ResultAmount = @CarryAmount - @Balance
--还没有结算,就退出房间视为无效
IF(@Crdate != '2021-01-02')
BEGIN
UPDATE
[UserGameSettleVideo]
SET
StillAmount = @Balance, ResultAmount = -@ResultAmount, Crdate = GETDATE()
WHERE
SettleID = @SettleID
--删除
DELETE FROM [UserGameSettleVideo] WHERE SettleID = @SettleID
RETURN
END
SET @MaxTimes = 0
SET @MaxAmount = 0
--输,才有返还信息
IF(@ResultAmount > 0)
BEGIN
--获取返还信息
SELECT TOP 1
@MaxTimes = MaxTimes, @MaxAmount = @ResultAmount * (MaxRate / 100.00)
FROM
[GameSettleVideo]
WHERE
GameID IN (0, @GameID) AND LoseAmount >= @ResultAmount
ORDER BY
GameID DESC, LoseAmount ASC
--更新
UPDATE
[UserGameSettleVideo]
SET
StillAmount = @Balance, ResultAmount = -@ResultAmount,
MaxTimes = @MaxTimes, MaxAmount = @MaxAmount, Crdate = GETDATE()
WHERE
SettleID = @SettleID
END
--赢,需要清理
ELSE
BEGIN
--删除
DELETE FROM [UserGameSettleVideo] WHERE SettleID = @SettleID
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Slot_Trigger] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Slot_Trigger]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: Slot游戏统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Slot_Trigger]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@BetAmount BIGINT, --投注额
@ResultAmount BIGINT, --返还额
@WinAmount BIGINT, --输赢额
@Tax BIGINT, --台费
@InvestAmount BIGINT --下注额 取余操作 3=游戏免费 4=广告免费
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @DateFlag = CONVERT(CHAR(11), GETDATE(), 120) + LTRIM(STR(DATEPART(HOUR, GETDATE()))) + ':00'
--非免费类型
IF(@InvestAmount = 0)
BEGIN
--获取下注额区间
SELECT TOP 1
@InvestAmount = InvestAmount
FROM
[SlotStatConfig]
WHERE
GameID = @GameID AND InvestAmount >= ABS(@BetAmount)
ORDER BY
InvestAmount ASC
--没有配置数据
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'Slot Stat 缺少系统配置, @UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
',@BetAmount=' + CAST(@BetAmount AS VARCHAR(32)) + ',@ResultAmount=' + CAST(@ResultAmount AS VARCHAR(32)) +
',@WinAmount=' + CAST(@WinAmount AS VARCHAR(32)) + ',@Tax=' + CAST(@Tax AS VARCHAR(32))
--添加日志
EXEC [Game_Log_Add] @OpUserID = '-1', @OpUserName = 'System', @Msg = @Msg, @IPAddress = '127.0.0.1'
RETURN
END
END
--更新数据
UPDATE
[SlotStat]
SET
BetAmount = BetAmount + @BetAmount, BetTimes = BetTimes + 1, ResultAmount = ResultAmount + @ResultAmount,
WinAmount = WinAmount + @WinAmount, WinTimes = WinTimes + CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END,
Tax = Tax + @Tax,
MaxResultAmount = CASE
WHEN @ResultAmount > MaxResultAmount THEN @ResultAmount
ELSE MaxResultAmount
END
WHERE
DateFlag = @DateFlag AND GameID = @GameID AND InvestAmount = @InvestAmount
--添加数据
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [SlotStat]
(
DateFlag, GameID, InvestAmount, BetAmount, BetTimes,
ResultAmount, WinTimes, WinAmount, Tax, MaxResultAmount
)
VALUES
(
@DateFlag, @GameID, @InvestAmount, @BetAmount, 1,
@ResultAmount, CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END, @WinAmount, @Tax, @ResultAmount
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_SlotChip_Trigger] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_SlotChip_Trigger]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: Slot游戏统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_SlotChip_Trigger]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@BetAmount BIGINT, --投注额
@ResultAmount BIGINT, --返还额
@WinAmount BIGINT, --输赢额
@Tax BIGINT, --台费
@InvestAmount BIGINT --下注额 取余操作 3=游戏免费 4=广告免费
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @DateFlag = CONVERT(CHAR(11), GETDATE(), 120) + LTRIM(STR(DATEPART(HOUR, GETDATE()))) + ':00'
--非免费类型
IF(@InvestAmount = 0)
BEGIN
--获取下注额区间
SELECT TOP 1
@InvestAmount = InvestAmount
FROM
[SlotStatConfig]
WHERE
GameID = @GameID AND InvestAmount >= ABS(@BetAmount)
ORDER BY
InvestAmount ASC
--没有配置数据
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'Slot Chip Stat 缺少系统配置, @UserID=' + LTRIM(STR(@UserID)) + ',@GameID=' + LTRIM(STR(@GameID)) +
',@BetAmount=' + CAST(@BetAmount AS VARCHAR(32)) + ',@ResultAmount=' + CAST(@ResultAmount AS VARCHAR(32)) +
',@WinAmount=' + CAST(@WinAmount AS VARCHAR(32)) + ',@Tax=' + CAST(@Tax AS VARCHAR(32))
--添加日志
EXEC [Game_Log_Add] @OpUserID = '-1', @OpUserName = 'system', @Msg = @Msg, @IPAddress = '127.0.0.1'
RETURN
END
END
--更新数据
UPDATE
[SlotChipStat]
SET
BetAmount = BetAmount + @BetAmount, BetTimes = BetTimes + 1, ResultAmount = ResultAmount + @ResultAmount,
WinAmount = WinAmount + @WinAmount, WinTimes = WinTimes + CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END,
Tax = Tax + @Tax,
MaxResultAmount = CASE
WHEN @ResultAmount > MaxResultAmount THEN @ResultAmount
ELSE MaxResultAmount
END
WHERE
DateFlag = @DateFlag AND GameID = @GameID AND InvestAmount = @InvestAmount
--添加数据
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [SlotChipStat]
(
DateFlag, GameID, InvestAmount, BetAmount, BetTimes,
ResultAmount, WinTimes, WinAmount, Tax, MaxResultAmount
)
VALUES
(
@DateFlag, @GameID, @InvestAmount, @BetAmount, 1,
@ResultAmount, CASE WHEN @WinAmount > 0 THEN 1 ELSE 0 END, @WinAmount, @Tax, @ResultAmount
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_SNGMatchReport_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_SNGMatchReport_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 挑战赛统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_SNGMatchReport_Stat]
@CurrTime DATETIME --系统当前时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @BeginTime DATETIME --开始时间
DECLARE @EndTime DATETIME --截止时间
DECLARE @Times INT --报名次数
DECLARE @Users INT --报名人数(去重)
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @Amount BIGINT --金额
DECLARE @TotalAmount BIGINT --总金额
DECLARE @SignTotalAmount BIGINT --报名费总额
DECLARE @AwardTotalAmount BIGINT --奖金总额
DECLARE @ReturnTotalAmount BIGINT --退还总额
DECLARE @Count INT --计算器
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
Amount BIGINT NOT NULL, --金币
LogType INT NOT NULL --日志类型
)
DECLARE @tmpSignUp TABLE(
Rid INT IDENTITY, --标识
Amount BIGINT NOT NULL, --金币
TotalAmount BIGINT NOT NULL, --总金额
Users INT NOT NULL, --用户数
Times INT NOT NULL --次数
)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
SET @BeginTime = @DateFlag
SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
--65=挑战赛报名 66=挑战赛退赛 67=挑战赛奖金
INSERT INTO @tmptable
(
UserID, Amount, LogType
)
SELECT
UserID, ModifyAmount, LogType
FROM
[MoneyLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND LogType IN (65, 66, 67)
IF(@@ROWCOUNT = 0)
RETURN
--65=挑战赛报名 66=挑战赛退赛 67=挑战赛奖金
SELECT
@SignTotalAmount = SUM(CASE WHEN LogType = 65 THEN Amount ELSE 0 END),
@ReturnTotalAmount = SUM(CASE WHEN LogType = 66 THEN Amount ELSE 0 END),
@AwardTotalAmount = SUM(CASE WHEN LogType = 67 THEN Amount ELSE 0 END)
FROM
@tmptable
--登录用户数及去重
SELECT
@Times = COUNT(UserID), @Users = COUNT(DISTINCT UserID)
FROM
@tmptable
INSERT INTO [SNGMatchReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'报名次数', @Times, 1, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'报名人数(去重)', @Users, 1, 2, @CurrTime
SET @SignTotalAmount = ISNULL(@SignTotalAmount, 0)
SET @AwardTotalAmount = ISNULL(@AwardTotalAmount, 0)
SET @ReturnTotalAmount = ISNULL(@ReturnTotalAmount, 0)
INSERT INTO [SNGMatchReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, N'挑战赛报名', @SignTotalAmount, 2, 1, @CurrTime
UNION ALL
SELECT @DateFlag, N'挑战赛退赛', @ReturnTotalAmount, 2, 2, @CurrTime
UNION ALL
SELECT @DateFlag, N'挑战赛有效报名', @SignTotalAmount + @ReturnTotalAmount, 2, 3, @CurrTime
UNION ALL
SELECT @DateFlag, N'挑战赛奖金', @AwardTotalAmount, 2, 4, @CurrTime
UNION ALL
SELECT @DateFlag, N'挑战赛收益', @SignTotalAmount + @ReturnTotalAmount + @AwardTotalAmount, 2, 5, @CurrTime
--统计各项
INSERT INTO @tmpSignUp(Amount, TotalAmount, Times, Users)
SELECT
Amount, SUM(Amount), COUNT(UserID), COUNT(DISTINCT UserID)
FROM
@tmptable
WHERE
LogType = 65
GROUP BY
Amount
ORDER BY
SUM(Amount) ASC
SET @Rid = 0
SET @Count = 11
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @Amount = NULL
SET @TotalAmount = NULL
SET @Times = NULL
SET @Users = NULL
SELECT TOP 1
@Rid = Rid, @Amount = Amount, @TotalAmount = TotalAmount, @Times = Times, @Users = Users
FROM
@tmpSignUp
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@@ROWCOUNT = 0)
BREAK
INSERT INTO [SNGMatchReport]
(
DateFlag, ItemName, ItemValue, ItemType, ItemTag, Crdate
)
SELECT @DateFlag, CAST(ABS(@Amount) AS VARCHAR(32)) + N'累计报名费', @TotalAmount, @Count, 1, @CurrTime
UNION ALL
SELECT @DateFlag, CAST(ABS(@Amount) AS VARCHAR(32)) + N'报名次数', @Times, @Count, 2, @CurrTime
UNION ALL
SELECT @DateFlag, CAST(ABS(@Amount) AS VARCHAR(32)) + N'报名人数(去重)', @Users, @Count, 3, @CurrTime
SET @Count = @Count + 1
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_TimePeriod_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_TimePeriod_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 时段统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_TimePeriod_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--移动数据
INSERT INTO [t_onlinetimeHistory]
(
UserID, TodaySeconds, LoginTime
)
SELECT
UserID, TodaySeconds, LoginTime
FROM
[t_onlinetime]
WHERE
LoginTime BETWEEN @DateFlag - 1 AND @DateFlag
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_Translate_Get] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_Translate_Get]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 获取译文
-- ==============================================
CREATE PROCEDURE [dbo].[Game_Translate_Get]
@Source NVARCHAR(4000), --原文
@Target NVARCHAR(4000) OUTPUT --译文
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @Target = ''
--获取译文
SELECT @Target = Target FROM [TranslateText] WHERE Source = @Source
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'获取翻译失败,原文=' + @Source
--添加日志
EXEC [Game_Log_Add] @OpUserID = '-1', @OpUserName = 'system', @Msg = @Msg, @IPAddress = '127.0.0.1'
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_UserAgent_IncrCommission] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_UserAgent_IncrCommission]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 代理--增加佣金接口
-- ==============================================
CREATE PROCEDURE [dbo].[Game_UserAgent_IncrCommission]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@FromUserID INT, --源用户ID
@Tax BIGINT, --台费
@Commission BIGINT, --佣金
@Direct TINYINT, --属级
@Memo NVARCHAR(128), --备注
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @LogType INT --日志类型
DECLARE @RetCode TINYINT --操作结果
DECLARE @Balance BIGINT --余额
DECLARE @Remark VARCHAR(128)
DECLARE @PreCommission BIGINT --佣金
DECLARE @Members INT --有效会员
DECLARE @Profit BIGINT
SET @Balance = 0
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
IF(@Tax IS NULL OR @Tax < 0 OR @Commission IS NULL OR @Commission <= 0 OR @UserID <= 0)
RETURN
--增加佣金
UPDATE
[UserAgent]
SET
Commission = Commission + @Commission, @Balance = Commission + @Commission
WHERE
UserID = @UserID
--佣金日志
INSERT INTO [CommissionLog]
(
UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
)
VALUES
(
@UserID, @GameID, @FromUserID, @Tax, @Commission,
@Balance, @Direct, @Memo, @CurrTime
)
--更新佣金统计
UPDATE
[CommissionStat]
SET
Commission = Commission + @Commission
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND FromUserID = @FromUserID AND GameID = @GameID AND Direct = @Direct
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [CommissionStat]
(
DateFlag, UserID, GameID, FromUserID, Commission, Direct
)
VALUES
(
@DateFlag, @UserID, @GameID, @FromUserID, @Commission, @Direct
)
END
--贡献收益
UPDATE
[AgentMember]
SET
Commission = Commission + @Commission, @PreCommission = Commission
WHERE
UserID = @FromUserID
--有效会员触发
IF(@PreCommission = 0 AND @Commission > 0)
BEGIN
--有效会员数
SELECT @Members = COUNT(UserID) FROM [AgentMember] WHERE HigherUserID = @UserID AND Commission > 0
--奖励
SELECT @Profit = Profit FROM [AgentBindAward] WHERE Members = @Members
--有收益
IF(@Profit > 0)
BEGIN
--增加佣金
UPDATE
[UserAgent]
SET
Commission = Commission + @Profit, @Balance = Commission + @Profit
WHERE
UserID = @UserID
--佣金日志
INSERT INTO [CommissionLog]
(
UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
)
VALUES
(
@UserID, @GameID, @UserID, 0, @Profit,
@Balance, 5, N'有效会员数' + LTRIM(STR(@Members)) + '位奖励', @CurrTime
)
--更新佣金统计
UPDATE
[CommissionStat]
SET
Commission = Commission + @Profit
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND FromUserID = @UserID AND GameID = @GameID AND Direct = 5
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [CommissionStat]
(
DateFlag, UserID, GameID, FromUserID, Commission, Direct
)
VALUES
(
@DateFlag, @UserID, @GameID, @UserID, @Profit, 5
)
END
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_UserAgent_Trigger] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_UserAgent_Trigger]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 代理触发(收益)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_UserAgent_Trigger]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Tax BIGINT, --台费
@TriggerType INT, --触发类型(1=流水 2=台费 3=充值(首充))
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Commission BIGINT --操作金额
DECLARE @IsOpen TINYINT --是否开启
DECLARE @HigherUserID INT --上级用户ID
DECLARE @Enabled TINYINT --是否启用
DECLARE @BetOneDirect SMALLINT --流水1级代理返佣(以万为基数)
DECLARE @BetTwoDirect SMALLINT --流水2级代理返佣(以万为基数)
DECLARE @TaxOneDirect SMALLINT --服务费1级代理返佣(以万为基数)
DECLARE @TaxTwoDirect SMALLINT --服务费2级代理返佣(以万为基数)
DECLARE @PayOneDirect SMALLINT --充值1级代理返佣(以万为基数)
DECLARE @PayTwoDirect SMALLINT --充值2级代理返佣(以万为基数)
DECLARE @OneDirect SMALLINT --1级代理返佣(以万为基数)
DECLARE @TwoDirect SMALLINT --2级代理返佣(以万为基数)
DECLARE @SuperUserID INT --上级代理用户ID
DECLARE @Memo NVARCHAR(128) --备注
SET @OneDirect = 0
SET @TwoDirect = 0
--代理配置
SELECT
@IsOpen = IsOpen,
@BetOneDirect = BetOneDirect, @BetTwoDirect = BetTwoDirect,
@TaxOneDirect = TaxOneDirect, @TaxTwoDirect = TaxTwoDirect,
@PayOneDirect = PayOneDirect, @PayTwoDirect = PayTwoDirect
FROM
[AgentConfig]
WHERE
ConfigID = 1
IF(@IsOpen IS NULL OR @IsOpen != 1)
RETURN
--1=流水
IF(@TriggerType = 1)
BEGIN
SET @OneDirect = @BetOneDirect
SET @TwoDirect = @BetTwoDirect
--取正值
IF(@Tax < 0)
BEGIN
SET @Tax = -@Tax
END
END
--2=台费
ELSE IF(@TriggerType = 2)
BEGIN
SET @OneDirect = @TaxOneDirect
SET @TwoDirect = @TaxTwoDirect
END
--3=充值(首充)
ELSE IF(@TriggerType = 3)
BEGIN
SET @OneDirect = @PayOneDirect
SET @TwoDirect = @PayTwoDirect
END
--没有开启
IF(@OneDirect IS NULL OR @OneDirect <= 0)
RETURN
--会员上级代理
SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
RETURN
--获取上级代理等级
SELECT @Enabled = Enabled FROM [UserAgent] WHERE UserID = @HigherUserID
--------------------父级代理-------------------------------------------------
--1级代理
IF(@Enabled = 1)
BEGIN
--是否启用
IF(@OneDirect NOT BETWEEN 1 AND 10000)
RETURN
--计算收益
SET @Commission = @Tax * (@OneDirect / 10000.00)
IF(@Commission IS NULL OR @Commission <= 0)
RETURN
SET @Memo = N'Tier 1 Commission(' + CAST(CAST(@OneDirect / 100.00 AS DECIMAL(10, 2)) AS VARCHAR(8)) + '%),Direct deduction'
--增加佣金
EXEC [Game_UserAgent_IncrCommission] @UserID = @HigherUserID, @GameID = @GameID, @FromUserID = @UserID, @Tax = @Tax,
@Commission = @Commission, @Direct = 1, @Memo = @Memo, @IPAddress = @IPAddress
--继续获取上一级
SELECT @SuperUserID = HigherUserID FROM [AgentMember] WHERE UserID = @HigherUserID
IF(@@ROWCOUNT = 0)
RETURN
--获取上级代理等级
SELECT @Enabled = Enabled FROM [UserAgent] WHERE UserID = @SuperUserID
END
--------------------爷级代理-------------------------------------------------
--2级代理
IF(@Enabled = 1)
BEGIN
--是否启用
IF(@TwoDirect NOT BETWEEN 1 AND 10000)
RETURN
--非直属提成金额
SET @Commission = @Tax * (@TwoDirect / 10000.00)
IF(@Commission IS NULL OR @Commission <= 0)
RETURN
SET @Memo = N'Tier 2 Commission(' + CAST(CAST(@TwoDirect / 100.00 AS DECIMAL(10, 2)) AS VARCHAR(8)) + '%),Non direct deduction'
--增加佣金
EXEC [Game_UserAgent_IncrCommission] @UserID = @SuperUserID, @GameID = @GameID, @FromUserID = @UserID, @Tax = @Tax,
@Commission = @Commission, @Direct = 2, @Memo = @Memo, @IPAddress = @IPAddress
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_UserBehavior_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_UserBehavior_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 用户行为统计分析
-- ==============================================
CREATE PROCEDURE [dbo].[Game_UserBehavior_Stat]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @SourceName NVARCHAR(32)
DECLARE @Remark NVARCHAR(128) --备注
DECLARE @Crdate DATETIME --时间
DECLARE @CurrAmount BIGINT --操作前金额
DECLARE @ModifyAmount BIGINT --操作金额
DECLARE @StillAmount BIGINT --余额
DECLARE @Status TINYINT --状态(0=begin 1=end)
DECLARE @GameCount INT --局数
DECLARE @Rid INT
DECLARE @LogID INT
DECLARE @OneLogID INT
DECLARE @tmptable TABLE(
LogID INT NOT NULL, --标识
SourceName NVARCHAR(32) NOT NULL,
CurrAmount BIGINT NOT NULL,
ModifyAmount BIGINT NOT NULL,
Remark NVARCHAR(128) NOT NULL,
Crdate DATETIME NOT NULL,
StillAmount BIGINT NOT NULL
)
SET @LogID = 0
INSERT INTO @tmptable
(
LogID, SourceName, CurrAmount, ModifyAmount, Remark, Crdate, StillAmount
)
SELECT
LogID, SourceName, CurrentAmount, ModifyAmount, Remark, Crdate, StillAmount
FROM
[ChipLog_bak]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime AND UserID = @UserID
ORDER BY
LogID ASC
--遍历元宝区域
WHILE(1=1)
BEGIN
SET @OneLogID = @LogID
SET @LogID = NULL
SET @SourceName = NULL
SET @Remark = NULL
SET @CurrAmount = NULL
SET @ModifyAmount = NULL
SET @Crdate = NULL
SET @StillAmount = NULL
SET @Status = NULL
SET @Rid = NULL
SELECT TOP 1
@LogID = LogID, @SourceName = SourceName, @CurrAmount = CurrAmount, @ModifyAmount = ModifyAmount,
@Remark = Remark, @Crdate = Crdate, @StillAmount = StillAmount
FROM
@tmptable
WHERE
LogID > @OneLogID
ORDER BY
LogID ASC
IF(@@ROWCOUNT = 0)
BREAK
--充值
IF(CHARINDEX(N'商城购买', @Remark, 0) > 0)
BEGIN
--PRINT '元宝商城购买,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '')
INSERT INTO [UserBehavior]
(
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
)
VALUES
(
@UserID, N'元宝商城', @Crdate, @ModifyAmount, @Crdate, 0, @StillAmount, 0, 0, 4
)
END
--赠送
ELSE IF(CHARINDEX(N'Safe transfer', @Remark, 0) > 0)
BEGIN
--PRINT '玩家赠送,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '')
INSERT INTO [UserBehavior]
(
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
)
VALUES
(
@UserID, N'元宝赠送', @Crdate, @ModifyAmount, @Crdate, 0, @StillAmount, 0, 0, 4
)
END
--游戏下注
ELSE IF(CHARINDEX(N'结算', @Remark, 0) > 0)
BEGIN
--获取最近1条
SELECT TOP 1
@Rid = Rid, @Status = Status, @GameCount = GameCount
FROM
[UserBehavior]
WHERE
UserID = @UserID AND Status IN (3, 4)
ORDER BY
Rid DESC
IF(@Status = 3)
BEGIN
--PRINT '元宝游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 局数=' + LTRIM(STR(ISNULL(@GameCount, 0) + 1))
--局数+1
UPDATE [UserBehavior] SET GameCount = GameCount + 1, EndTime = @Crdate WHERE Rid = @Rid
CONTINUE
END
--PRINT '元宝游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 生成新记录, 局数=1'
INSERT INTO [UserBehavior]
(
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
)
VALUES
(
@UserID, @SourceName + N' 元宝场', @Crdate, @CurrAmount, @Crdate, 0, @CurrAmount, 0, 1, 3
)
END
--退出房间
ELSE IF(CHARINDEX(N'退出房间', @Remark, 0) > 0)
BEGIN
--获取最近1条
SELECT TOP 1
@Rid = Rid, @Status = Status
FROM
[UserBehavior]
WHERE
UserID = @UserID AND Status IN (3, 4)
ORDER BY
Rid DESC
IF(@Status = 4)
BEGIN
--PRINT '元宝结算(异常),SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
CONTINUE
END
--PRINT '元宝结算,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
UPDATE
[UserBehavior]
SET
EndTime = @Crdate, StaySeconds = DATEDIFF(SECOND, ActTime, @Crdate), StillAmount= @StillAmount,
WinAmount = @StillAmount - Amount, Status = 4
WHERE
Rid = @Rid
END
END
DELETE FROM @tmptable
SET @LogID = 0
INSERT INTO @tmptable
(
LogID, SourceName, CurrAmount, ModifyAmount, Remark, Crdate, StillAmount
)
SELECT
LogID, SourceName, CurrentAmount, ModifyAmount, Remark, Crdate, StillAmount
FROM
[MoneyLog_bak]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime AND UserID = @UserID
ORDER BY
LogID ASC
--遍历休闲区域
WHILE(1=1)
BEGIN
SET @OneLogID = @LogID
SET @LogID = NULL
SET @SourceName = NULL
SET @Remark = NULL
SET @CurrAmount = NULL
SET @ModifyAmount = NULL
SET @Rid = NULL
SET @Crdate = NULL
SET @StillAmount = NULL
SET @Status = NULL
SELECT TOP 1
@LogID = LogID, @SourceName = SourceName, @CurrAmount = CurrAmount, @ModifyAmount = ModifyAmount,
@Remark = Remark, @Crdate = Crdate, @StillAmount = StillAmount
FROM
@tmptable
WHERE
LogID > @OneLogID
ORDER BY
LogID ASC
IF(@@ROWCOUNT = 0)
BREAK
--充值
IF(CHARINDEX(N'商城购买', @Remark, 0) > 0)
BEGIN
--PRINT '休闲商城购买,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '')
INSERT INTO [UserBehavior]
(
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
)
VALUES
(
@UserID, N'休闲商城', @Crdate, @ModifyAmount, @Crdate, 0, @StillAmount, 0, 0, 2
)
END
--游戏下注
ELSE IF(CHARINDEX(N'结算', @Remark, 0) > 0)
BEGIN
--获取最近1条
SELECT TOP 1
@Rid = Rid, @Status = Status, @GameCount = GameCount
FROM
[UserBehavior]
WHERE
UserID = @UserID AND Status IN (1, 2)
ORDER BY
Rid DESC
IF(@Status = 1)
BEGIN
--PRINT '休闲游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 局数=' + LTRIM(STR(ISNULL(@GameCount, 0) + 1))
--局数+1
UPDATE [UserBehavior] SET GameCount = GameCount + 1, EndTime = @Crdate WHERE Rid = @Rid
CONTINUE
END
--PRINT '休闲游戏下注,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0))) + ', 生成新记录, 局数=1'
INSERT INTO [UserBehavior]
(
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
)
VALUES
(
@UserID, @SourceName + N' 休闲场', @Crdate, @CurrAmount, @Crdate, 0, @CurrAmount, 0, 1, 1
)
END
--退出房间
ELSE IF(CHARINDEX(N'退出房间', @Remark, 0) > 0)
BEGIN
--获取最近1条
SELECT TOP 1
@Rid = Rid, @Status = Status
FROM
[UserBehavior]
WHERE
UserID = @UserID AND Status IN (1, 2)
ORDER BY
Rid DESC
IF(@Status = 2)
BEGIN
--PRINT '休闲结算(异常),SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
CONTINUE
END
--PRINT '休闲结算,SourceName=' + ISNULL(@SourceName, '') + ', Remark=' + ISNULL(@Remark, '') + ', Status=' + LTRIM(STR(ISNULL(@Status, 0)))
UPDATE
[UserBehavior]
SET
EndTime = @Crdate, StaySeconds = DATEDIFF(SECOND, ActTime, @Crdate), StillAmount= @StillAmount,
WinAmount = @StillAmount - Amount, Status = 2
WHERE
Rid = @Rid
END
END
END
GO
/****** Object: StoredProcedure [dbo].[Game_UserDot_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserDot_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 打点统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_UserDot_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期
Event VARCHAR(32) NOT NULL, --事件
LabelID VARCHAR(32) NOT NULL, --标签ID
UserID VARCHAR(16) NOT NULL, --用户ID
Action TINYINT NOT NULL, --动作(1=点击 2=完成 3=领取)
Times INT NOT NULL --次数
)
--表变量
DECLARE @tmpStat TABLE(
Event VARCHAR(32) NOT NULL, --事件
LabelID VARCHAR(32) NOT NULL, --标签ID
Days INT NOT NULL, --天数(0=当天 7=过去7天 30=过去30天)
ClickTimes INT NOT NULL, --点击次数
ClickUserCount INT NOT NULL, --点击人数
CompleteUserCount INT NOT NULL --完成人数
)
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime - 1, 120)
--拉出最近30天数据(任务排除)
INSERT INTO @tmptable
(
DateFlag, Event, LabelID, UserID, Action, Times
)
SELECT
d.DateFlag, d.Event, '', d.UserID, d.Action, d.Times
FROM
[UserDotHistory] d
WHERE
d.DateFlag BETWEEN @DateFlag - 30 AND @DateFlag AND d.Scene != '任务'
--统计当天数据
INSERT INTO @tmpStat
(
Event, LabelID, Days,
ClickTimes, ClickUserCount, CompleteUserCount
)
SELECT
Event, LabelID, 0,
ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
FROM
@tmptable
WHERE
DateFlag = @DateFlag
GROUP BY
Event, LabelID
--统计7天数据
INSERT INTO @tmpStat
(
Event, LabelID, Days,
ClickTimes, ClickUserCount, CompleteUserCount
)
SELECT
Event, LabelID, 7,
ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
FROM
@tmptable
WHERE
DateFlag >= @DateFlag - 7
GROUP BY
Event, LabelID
--统计30天数据
INSERT INTO @tmpStat
(
Event, LabelID, Days,
ClickTimes, ClickUserCount, CompleteUserCount
)
SELECT
Event, LabelID, 30,
ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
FROM
@tmptable
GROUP BY
Event, LabelID
--保存统计数据
INSERT INTO [UserDotStat]
(
DateFlag, Event, LabelID, Days, ClickTimes, ClickUserCount, CompleteUserCount
)
SELECT
@DateFlag, Event, LabelID, Days, ClickTimes, ClickUserCount, CompleteUserCount
FROM
@tmpStat
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_UserLoginLog_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_UserLoginLog_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-17
-- Mendor: wolf
-- Alter Date: 2014-10-77
-- Description: 登陆统计
-- ==============================================
CREATE PROCEDURE [dbo].[Game_UserLoginLog_Stat]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @BeginTime DATETIME --开始时间
DECLARE @EndTime DATETIME --截止时间
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SET @DateFlag = @DateFlag - 1
SET @BeginTime = @DateFlag
SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
--判断是否已生成
IF EXISTS(SELECT DateFlag FROM [LoginStat] WHERE DateFlag = @DateFlag)
RETURN
--统计登陆
INSERT INTO [LoginStat]
(
DateFlag, PartnerID, LoginCount
)
SELECT
CONVERT(CHAR(10), Crdate, 120), PartnerID, COUNT(DISTINCT(UserID))
FROM
[UserLoginLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
GROUP BY
CONVERT(CHAR(10), Crdate, 120), PartnerID
--判断是否已生成
IF EXISTS(SELECT DateFlag FROM [ChipLoginStat] WHERE DateFlag = @DateFlag)
RETURN
--元宝大厅登录用户数
INSERT INTO [ChipLoginStat]
(
DateFlag, LoginCount
)
SELECT
DateFlag, COUNT(DISTINCT UserID)
FROM
[ChipStat]
WHERE
DateFlag = @DateFlag AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
GROUP BY
DateFlag
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_VideoStat_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_VideoStat_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 视频统计(每10分钟)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_VideoStat_Stat]
@CurrTime DATETIME --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Hour INT --小时
DECLARE @Min INT --分钟
DECLARE @PlayCount INT --播放数
DECLARE @Hour_0000 INT -- 00:00
DECLARE @Hour_0030 INT -- 00:30
DECLARE @Hour_0100 INT -- 01:00
DECLARE @Hour_0130 INT -- 01:30
DECLARE @Hour_0200 INT -- 02:00
DECLARE @Hour_0230 INT -- 02:30
DECLARE @Hour_0300 INT -- 03:00
DECLARE @Hour_0330 INT -- 03:30
DECLARE @Hour_0400 INT -- 04:00
DECLARE @Hour_0430 INT -- 04:30
DECLARE @Hour_0500 INT -- 05:00
DECLARE @Hour_0530 INT -- 05:30
DECLARE @Hour_0600 INT -- 06:00
DECLARE @Hour_0630 INT -- 06:30
DECLARE @Hour_0700 INT -- 07:00
DECLARE @Hour_0730 INT -- 07:30
DECLARE @Hour_0800 INT -- 08:00
DECLARE @Hour_0830 INT -- 08:30
DECLARE @Hour_0900 INT -- 09:00
DECLARE @Hour_0930 INT -- 09:30
DECLARE @Hour_1000 INT -- 10:00
DECLARE @Hour_1030 INT -- 10:30
DECLARE @Hour_1100 INT -- 11:00
DECLARE @Hour_1130 INT -- 11:30
DECLARE @Hour_1200 INT -- 12:00
DECLARE @Hour_1230 INT -- 12:30
DECLARE @Hour_1300 INT -- 13:00
DECLARE @Hour_1330 INT -- 13:30
DECLARE @Hour_1400 INT -- 14:00
DECLARE @Hour_1430 INT -- 14:30
DECLARE @Hour_1500 INT -- 15:00
DECLARE @Hour_1530 INT -- 15:30
DECLARE @Hour_1600 INT -- 16:00
DECLARE @Hour_1630 INT -- 16:30
DECLARE @Hour_1700 INT -- 17:00
DECLARE @Hour_1730 INT -- 17:30
DECLARE @Hour_1800 INT -- 18:00
DECLARE @Hour_1830 INT -- 18:30
DECLARE @Hour_1900 INT -- 19:00
DECLARE @Hour_1930 INT -- 19:30
DECLARE @Hour_2000 INT -- 20:00
DECLARE @Hour_2030 INT -- 20:30
DECLARE @Hour_2100 INT -- 21:00
DECLARE @Hour_2130 INT -- 21:30
DECLARE @Hour_2200 INT -- 22:00
DECLARE @Hour_2230 INT -- 22:30
DECLARE @Hour_2300 INT -- 23:00
DECLARE @Hour_2330 INT -- 23:30
DECLARE @Rid INT --标识
DECLARE @OneRid INT --当前标识
DECLARE @PartnerID INT --渠道ID
DECLARE @tmptable TABLE(
Rid INT IDENTITY NOT NULL, --标识
PartnerID INT NOT NULL, --渠道ID
PlayCount INT NOT NULL --播放次数
)
--统计播放次数
INSERT INTO @tmptable(PartnerID, PlayCount)
SELECT
u.PartnerID, COUNT(v.Rid)
FROM
[UserVideoLogHistory] v INNER JOIN [AllUser] u ON v.UserID = u.UserID
WHERE
v.Crdate >= DATEADD(MINUTE, -30, @CurrTime) AND v.Status = 1
GROUP BY
u.PartnerID
SET @Hour = DATEPART(HOUR, @CurrTime)
SET @Min = DATEPART(MINUTE, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @Rid = 0
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SELECT TOP 1
@Rid = Rid, @PartnerID = PartnerID, @PlayCount = PlayCount
FROM
@tmptable
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@@ROWCOUNT = 0)
BREAK
--分时段
SELECT
@Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0030 = CASE WHEN @Hour = 0 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0130 = CASE WHEN @Hour = 1 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0230 = CASE WHEN @Hour = 2 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0330 = CASE WHEN @Hour = 3 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0430 = CASE WHEN @Hour = 4 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0530 = CASE WHEN @Hour = 5 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0630 = CASE WHEN @Hour = 6 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0730 = CASE WHEN @Hour = 7 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0830 = CASE WHEN @Hour = 8 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_0930 = CASE WHEN @Hour = 9 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1030 = CASE WHEN @Hour = 10 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1130 = CASE WHEN @Hour = 11 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1230 = CASE WHEN @Hour = 12 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1330 = CASE WHEN @Hour = 13 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1430 = CASE WHEN @Hour = 14 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1530 = CASE WHEN @Hour = 15 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1630 = CASE WHEN @Hour = 16 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1730 = CASE WHEN @Hour = 17 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1830 = CASE WHEN @Hour = 18 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_1930 = CASE WHEN @Hour = 19 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_2030 = CASE WHEN @Hour = 20 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_2130 = CASE WHEN @Hour = 21 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_2230 = CASE WHEN @Hour = 22 AND @Min >= 30 THEN @PlayCount ELSE 0 END,
@Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 30 THEN @PlayCount ELSE 0 END,
@Hour_2330 = CASE WHEN @Hour = 23 AND @Min >= 30 THEN @PlayCount ELSE 0 END
--统计
UPDATE
[VideoStatMin]
SET
Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
WHERE
DateFlag = @DateFlag AND PartnerID = @PartnerID
--今天还没有
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [VideoStatMin]
(
DateFlag, PartnerID,
Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
)
VALUES
(
@DateFlag, @PartnerID,
@Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
@Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
@Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
@Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
@Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
@Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
@Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
@Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
)
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Game_VideoUser_Stat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Game_VideoUser_Stat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 视频用户统计(每10分钟)
-- ==============================================
CREATE PROCEDURE [dbo].[Game_VideoUser_Stat]
@CurrTime DATETIME --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Hour INT --小时
DECLARE @Min INT --分钟
DECLARE @PlayUsers INT --用户数
DECLARE @Hour_0000 INT -- 00:00
DECLARE @Hour_0030 INT -- 00:30
DECLARE @Hour_0100 INT -- 01:00
DECLARE @Hour_0130 INT -- 01:30
DECLARE @Hour_0200 INT -- 02:00
DECLARE @Hour_0230 INT -- 02:30
DECLARE @Hour_0300 INT -- 03:00
DECLARE @Hour_0330 INT -- 03:30
DECLARE @Hour_0400 INT -- 04:00
DECLARE @Hour_0430 INT -- 04:30
DECLARE @Hour_0500 INT -- 05:00
DECLARE @Hour_0530 INT -- 05:30
DECLARE @Hour_0600 INT -- 06:00
DECLARE @Hour_0630 INT -- 06:30
DECLARE @Hour_0700 INT -- 07:00
DECLARE @Hour_0730 INT -- 07:30
DECLARE @Hour_0800 INT -- 08:00
DECLARE @Hour_0830 INT -- 08:30
DECLARE @Hour_0900 INT -- 09:00
DECLARE @Hour_0930 INT -- 09:30
DECLARE @Hour_1000 INT -- 10:00
DECLARE @Hour_1030 INT -- 10:30
DECLARE @Hour_1100 INT -- 11:00
DECLARE @Hour_1130 INT -- 11:30
DECLARE @Hour_1200 INT -- 12:00
DECLARE @Hour_1230 INT -- 12:30
DECLARE @Hour_1300 INT -- 13:00
DECLARE @Hour_1330 INT -- 13:30
DECLARE @Hour_1400 INT -- 14:00
DECLARE @Hour_1430 INT -- 14:30
DECLARE @Hour_1500 INT -- 15:00
DECLARE @Hour_1530 INT -- 15:30
DECLARE @Hour_1600 INT -- 16:00
DECLARE @Hour_1630 INT -- 16:30
DECLARE @Hour_1700 INT -- 17:00
DECLARE @Hour_1730 INT -- 17:30
DECLARE @Hour_1800 INT -- 18:00
DECLARE @Hour_1830 INT -- 18:30
DECLARE @Hour_1900 INT -- 19:00
DECLARE @Hour_1930 INT -- 19:30
DECLARE @Hour_2000 INT -- 20:00
DECLARE @Hour_2030 INT -- 20:30
DECLARE @Hour_2100 INT -- 21:00
DECLARE @Hour_2130 INT -- 21:30
DECLARE @Hour_2200 INT -- 22:00
DECLARE @Hour_2230 INT -- 22:30
DECLARE @Hour_2300 INT -- 23:00
DECLARE @Hour_2330 INT -- 23:30
--统计视频播放用户数
SELECT
@PlayUsers = COUNT(DISTINCT UserID)
FROM
[UserVideoLogHistory]
WHERE
Crdate >= DATEADD(MINUTE, -30, @CurrTime) AND Status = 1
SET @Hour = DATEPART(HOUR, @CurrTime)
SET @Min = DATEPART(MINUTE, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--分时段
SELECT
@Hour_0000 = CASE WHEN @Hour = 0 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0030 = CASE WHEN @Hour = 0 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0100 = CASE WHEN @Hour = 1 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0130 = CASE WHEN @Hour = 1 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0200 = CASE WHEN @Hour = 2 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0230 = CASE WHEN @Hour = 2 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0300 = CASE WHEN @Hour = 3 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0330 = CASE WHEN @Hour = 3 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0400 = CASE WHEN @Hour = 4 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0430 = CASE WHEN @Hour = 4 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0500 = CASE WHEN @Hour = 5 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0530 = CASE WHEN @Hour = 5 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0600 = CASE WHEN @Hour = 6 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0630 = CASE WHEN @Hour = 6 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0700 = CASE WHEN @Hour = 7 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0730 = CASE WHEN @Hour = 7 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0800 = CASE WHEN @Hour = 8 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0830 = CASE WHEN @Hour = 8 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_0900 = CASE WHEN @Hour = 9 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_0930 = CASE WHEN @Hour = 9 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1000 = CASE WHEN @Hour = 10 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1030 = CASE WHEN @Hour = 10 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1100 = CASE WHEN @Hour = 11 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1130 = CASE WHEN @Hour = 11 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1200 = CASE WHEN @Hour = 12 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1230 = CASE WHEN @Hour = 12 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1300 = CASE WHEN @Hour = 13 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1330 = CASE WHEN @Hour = 13 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1400 = CASE WHEN @Hour = 14 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1430 = CASE WHEN @Hour = 14 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1500 = CASE WHEN @Hour = 15 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1530 = CASE WHEN @Hour = 15 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1600 = CASE WHEN @Hour = 16 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1630 = CASE WHEN @Hour = 16 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1700 = CASE WHEN @Hour = 17 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1730 = CASE WHEN @Hour = 17 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1800 = CASE WHEN @Hour = 18 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1830 = CASE WHEN @Hour = 18 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_1900 = CASE WHEN @Hour = 19 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_1930 = CASE WHEN @Hour = 19 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_2000 = CASE WHEN @Hour = 20 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_2030 = CASE WHEN @Hour = 20 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_2100 = CASE WHEN @Hour = 21 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_2130 = CASE WHEN @Hour = 21 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_2200 = CASE WHEN @Hour = 22 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_2230 = CASE WHEN @Hour = 22 AND @Min >= 30 THEN @PlayUsers ELSE 0 END,
@Hour_2300 = CASE WHEN @Hour = 23 AND @Min < 30 THEN @PlayUsers ELSE 0 END,
@Hour_2330 = CASE WHEN @Hour = 23 AND @Min >= 30 THEN @PlayUsers ELSE 0 END
--统计
UPDATE
[VideoUserStatMin]
SET
Hour_0000 = Hour_0000 + @Hour_0000, Hour_0030 = Hour_0030 + @Hour_0030,
Hour_0100 = Hour_0100 + @Hour_0100, Hour_0130 = Hour_0130 + @Hour_0130,
Hour_0200 = Hour_0200 + @Hour_0200, Hour_0230 = Hour_0230 + @Hour_0230,
Hour_0300 = Hour_0300 + @Hour_0300, Hour_0330 = Hour_0330 + @Hour_0330,
Hour_0400 = Hour_0400 + @Hour_0400, Hour_0430 = Hour_0430 + @Hour_0430,
Hour_0500 = Hour_0500 + @Hour_0500, Hour_0530 = Hour_0530 + @Hour_0530,
Hour_0600 = Hour_0600 + @Hour_0600, Hour_0630 = Hour_0630 + @Hour_0630,
Hour_0700 = Hour_0700 + @Hour_0700, Hour_0730 = Hour_0730 + @Hour_0730,
Hour_0800 = Hour_0800 + @Hour_0800, Hour_0830 = Hour_0830 + @Hour_0830,
Hour_0900 = Hour_0900 + @Hour_0900, Hour_0930 = Hour_0930 + @Hour_0930,
Hour_1000 = Hour_1000 + @Hour_1000, Hour_1030 = Hour_1030 + @Hour_1030,
Hour_1100 = Hour_1100 + @Hour_1100, Hour_1130 = Hour_1130 + @Hour_1130,
Hour_1200 = Hour_1200 + @Hour_1200, Hour_1230 = Hour_1230 + @Hour_1230,
Hour_1300 = Hour_1300 + @Hour_1300, Hour_1330 = Hour_1330 + @Hour_1330,
Hour_1400 = Hour_1400 + @Hour_1400, Hour_1430 = Hour_1430 + @Hour_1430,
Hour_1500 = Hour_1500 + @Hour_1500, Hour_1530 = Hour_1530 + @Hour_1530,
Hour_1600 = Hour_1600 + @Hour_1600, Hour_1630 = Hour_1630 + @Hour_1630,
Hour_1700 = Hour_1700 + @Hour_1700, Hour_1730 = Hour_1730 + @Hour_1730,
Hour_1800 = Hour_1800 + @Hour_1800, Hour_1830 = Hour_1830 + @Hour_1830,
Hour_1900 = Hour_1900 + @Hour_1900, Hour_1930 = Hour_1930 + @Hour_1930,
Hour_2000 = Hour_2000 + @Hour_2000, Hour_2030 = Hour_2030 + @Hour_2030,
Hour_2100 = Hour_2100 + @Hour_2100, Hour_2130 = Hour_2130 + @Hour_2130,
Hour_2200 = Hour_2200 + @Hour_2200, Hour_2230 = Hour_2230 + @Hour_2230,
Hour_2300 = Hour_2300 + @Hour_2300, Hour_2330 = Hour_2330 + @Hour_2330
WHERE
DateFlag = @DateFlag
--今天还没有
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [VideoUserStatMin]
(
DateFlag, Hour_0000, Hour_0030, Hour_0100, Hour_0130, Hour_0200, Hour_0230,
Hour_0300, Hour_0330, Hour_0400, Hour_0430, Hour_0500, Hour_0530,
Hour_0600, Hour_0630, Hour_0700, Hour_0730, Hour_0800, Hour_0830,
Hour_0900, Hour_0930, Hour_1000, Hour_1030, Hour_1100, Hour_1130,
Hour_1200, Hour_1230, Hour_1300, Hour_1330, Hour_1400, Hour_1430,
Hour_1500, Hour_1530, Hour_1600, Hour_1630, Hour_1700, Hour_1730,
Hour_1800, Hour_1830, Hour_1900, Hour_1930, Hour_2000, Hour_2030,
Hour_2100, Hour_2130, Hour_2200, Hour_2230, Hour_2300, Hour_2330
)
VALUES
(
@DateFlag, @Hour_0000, @Hour_0030, @Hour_0100, @Hour_0130, @Hour_0200, @Hour_0230,
@Hour_0300, @Hour_0330, @Hour_0400, @Hour_0430, @Hour_0500, @Hour_0530,
@Hour_0600, @Hour_0630, @Hour_0700, @Hour_0730, @Hour_0800, @Hour_0830,
@Hour_0900, @Hour_0930, @Hour_1000, @Hour_1030, @Hour_1100, @Hour_1130,
@Hour_1200, @Hour_1230, @Hour_1300, @Hour_1330, @Hour_1400, @Hour_1430,
@Hour_1500, @Hour_1530, @Hour_1600, @Hour_1630, @Hour_1700, @Hour_1730,
@Hour_1800, @Hour_1830, @Hour_1900, @Hour_1930, @Hour_2000, @Hour_2030,
@Hour_2100, @Hour_2130, @Hour_2200, @Hour_2230, @Hour_2300, @Hour_2330
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[H5_AllUser_Register] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [H5_AllUser_Register]
-- @IMei = '',
-- @NickName = '',
-- @PartnerID = 500,
-- @Version = 0,
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: IMei号登陆
-- ==============================================
CREATE PROCEDURE [dbo].[H5_AllUser_Register]
@IMei VARCHAR(64), --IMei
@NickName NVARCHAR(32), --昵称
@Sex TINYINT, --性别 0=默认(无) 1=男 2=女
@FaceID SMALLINT, --头像ID
@FaceUrl VARCHAR(1024), --头像地址
@PartnerID INT, --渠道
@Version INT, --版本
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --System当前时间
DECLARE @Count SMALLINT --计数器
DECLARE @RetCode INT --返回值
DECLARE @Rnd INT --随机数
DECLARE @UserID INT --用户ID
DECLARE @NewNickName NVARCHAR(32) --新昵称
DECLARE @EPassword VARCHAR(32) --MD5密文
DECLARE @Msg NVARCHAR(256) --消息
DECLARE @ErrMsg NVARCHAR(4000)
DECLARE @SendAmount BIGINT --赠送
DECLARE @ForbidTime DATETIME --封号时间
DECLARE @DateFlag DATETIME --日期标识
DECLARE @SysMsgID INT --系统消息ID
DECLARE @TimeStamp INT
DECLARE @Tools VARCHAR(32)
DECLARE @Title NVARCHAR(32)
DECLARE @BindFacebook INT --绑定赠送
SET @CurrTime = GETDATE()
SET @UserID = 0
SET @RetCode = 0
SET @ForbidTime = '2021-01-01'
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @SysMsgID = 0
SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
SET @NewNickName = ''
--不是facebook账号
IF(@IMei IS NULL OR (LEFT(@IMei, 3) != 'fb.' AND LEFT(@IMei, 3) != 'gg.'))
BEGIN
--操作成功
SET @RetCode = 13
SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
RETURN
END
--获取用户信息
SELECT TOP 1
@UserID = UserID, @NewNickName = NickName
FROM
[AllUser]
WHERE
IMei = @IMei
ORDER BY
PayMoney DESC, RegTime DESC
IF(@UserID = 0)
BEGIN
SELECT TOP 1
@UserID = UserID, @NewNickName = NickName
FROM
[AllUser]
WHERE
deviceid = @IMei
ORDER BY
PayMoney DESC, RegTime DESC
END
--当前有用户信息,直接返回
IF(@UserID > 0)
BEGIN
--封杀时间
SELECT @ForbidTime = EndTime FROM [ForbidUser] WHERE UserID = @UserID AND EndTime > @CurrTime
--判断账号是否被封杀
IF(@ForbidTime > @CurrTime)
BEGIN
SET @RetCode = -12
SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
RETURN
END
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
RETURN
END
--在5分钟内限制同一个ip段只能注册2个用户,超过了则不让注册,提示:“当前网络繁忙,请稍后尝试”
IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -5, @CurrTime) AND RegIP = @IPAddress) >= 5)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
RETURN
END
SET @Count = 0
--遍历100次
WHILE(@Count < 100)
BEGIN
--计数器+1
SET @Count = @Count + 1
--生成随机数
EXEC [Game_Rand_GetRnd] @Min = 1000000, @Max = 99999999, @Rnd = @Rnd OUTPUT
--判断是否存在
IF NOT EXISTS(SELECT UserID FROM [UserIdentity] WHERE UserID = @Rnd)
BEGIN
--添加
INSERT INTO [UserIdentity](UserID, IMei) VALUES(@Rnd, @IMei)
--用户ID
SET @UserID = @Rnd
BREAK
END
SET @ErrMsg = N'H5注册游客生成帐号异常,UserID重复!关联的信息:@IMei=' + @IMei + ',@NickName=' + @NickName + ',@PartnerID=' + LTRIM(STR(@PartnerID)) +
',@Version=' + LTRIM(STR(@Version)) + ',@Count=' + LTRIM(STR(@Count))
--添加日志
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = @IPAddress, @Msg = @ErrMsg, @Type = 2
END
--生成随机数
EXEC [Game_Rand_GetRnd] @Min = 100000, @Max = 999999, @Rnd = @Rnd OUTPUT
--生成MD5密码
SET @EPassword = dbo.fn_MD5(@Rnd)
--昵称为空的情况
IF(LEN(@NickName) <= 0)
BEGIN
SET @NickName = 'Guest' + LTRIM(STR(@UserID))
END
--新昵称(过滤特殊字符: ', <, >)
SET @NickName = Replace(Replace(Replace(@NickName, '<', ''), '''', ''),'>','')
--生成用户信息
INSERT INTO [AllUser]
(
UserID, NickName, PartnerID, IMei, EPassword, RegTime, RegIP,
LoginTime, IPAddress, PayMoney, deviceid, RegPartnerID, UserWords,
DeviceName, Version
)
VALUES
(
@UserID, @NickName, @PartnerID, @IMei, @EPassword, @CurrTime, @IPAddress,
@CurrTime, @IPAddress, 0, '', @PartnerID, '', '', @Version
)
--头像
INSERT INTO [UserFace](UserID, FaceID, FaceUrl, Sex) VALUES(@UserID, @FaceID, @FaceUrl, @Sex)
--新昵称
SET @NewNickName = @NickName
--赠送数量
SELECT @SendAmount = RegGoldSend FROM [PlatformConfig] WHERE ConfigID = 1
IF(@SendAmount > 0)
BEGIN
--加金豆
EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = 'Register', @GameID = 0, @WantedAmount = @SendAmount,
@LogType = 5, @Remark = 'Visitor registration', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
END
--Facebook 账号注册赠送
IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
BEGIN
SELECT @BindFacebook = BindFacebook FROM [PlatformConfig] WHERE ConfigID = 1
IF(@BindFacebook > 0)
BEGIN
EXEC [Game_Translate_Get] @Source = N'绑定账号奖励', @Target = @Title OUTPUT
EXEC [Game_Translate_Get] @Source = N'恭喜您获得绑定账号奖励,请及时查收附件', @Target = @Msg OUTPUT
--道具
SET @Tools = '[{"ItemId":1,"Count":' + LTRIM(STR(@BindFacebook)) + '}]'
--发送邮件
EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = @Title, @Content = @Msg, @Status = 0,
@SourceName = 'Facebook Register', @Crdate = @TimeStamp, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
END
END
--生成新手登录任务
INSERT INTO [NewUserGift]
(
UserID, DayIndex, Status, DateFlag
)
SELECT
@UserID, DayIndex, 0, @DateFlag + (DayIndex - 1)
FROM
[NewGiftConfig]
ORDER BY
DayIndex ASC
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Job_Hour] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Job_Hour]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 每小时作业
-- ==============================================
CREATE PROCEDURE [dbo].[Job_Hour]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @BeginTime DATETIME
DECLARE @EndTime DATETIME
DECLARE @Rid INT --标识
DECLARE @OneRid INT
DECLARE @UserID INT
DECLARE @DateFlag SMALLDATETIME
DECLARE @MaxLogID INT --日志ID
DECLARE @tmptable TABLE(
Rid INT IDENTITY,
UserID INT NOT NULL
)
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @BeginTime = DATEADD(HOUR, -1, @CurrTime)
SET @EndTime = @CurrTime
--在线统计(元宝大厅)
EXEC [Game_OnlineStatChip_Stat]
--在线统计
EXEC [Game_OnlineStat_Stat]
--初始化表变量
INSERT INTO @tmptable(
UserID
)
SELECT
DISTINCT UserID
FROM
[t_onlinelog]
WHERE
Crdate >= @BeginTime AND Crdate < @EndTime
SET @Rid = 0
WHILE(1=1)
BEGIN
SET @OneRid = @Rid
SET @Rid = NULL
SET @UserID = NULL
SELECT TOP 1
@Rid = Rid, @UserID = UserID
FROM
@tmptable
WHERE
Rid > @OneRid
ORDER BY
Rid ASC
IF(@UserID IS NULL)
BREAK
IF(@UserID <= 0)
CONTINUE
--游戏行为统计
EXEC [Game_UserBehavior_Stat] @UserID = @UserID, @BeginTime = @BeginTime, @EndTime = @EndTime
END
--凌晨0点
IF(DATEPART(HOUR, @CurrTime) = 0)
BEGIN
--打点数据
SET @MaxLogID = (SELECT MAX(Rid) FROM [UserDot] WHERE DateFlag < @DateFlag)
IF(@MaxLogID > 0)
BEGIN
--打点数据
INSERT INTO [UserDotHistory]
(
UserID, DateFlag, Scene, Event, Action, Times
)
SELECT
UserID, DateFlag, Scene, Event, Action, Times
FROM
[UserDot]
WHERE
Rid <= @MaxLogID
--清除
DELETE FROM [UserDot] WHERE Rid <= @MaxLogID
END
--打点统计
EXEC [Game_UserDot_Stat]
--发行统计
EXEC [Game_Issue_Stat]
--时段统计
EXEC [Game_TimePeriod_Stat]
--推广渠道分析
EXEC [Game_NewUserStat_Stat] @CurrTime = @CurrTime
--留存统计
EXEC [Game_LiveStat_Stat] @CurrTime = @CurrTime
--登陆统计
EXEC [Game_UserLoginLog_Stat]
--日常统计
EXEC [Game_DailyStat_Stat]
--游戏日常统计
EXEC [Game_GameDailyStat_Stat]
--游戏日报统计
EXEC [Game_DailyReport_Stat] @CurrTime = @CurrTime
--挑战赛统计
EXEC [Game_SNGMatchReport_Stat] @CurrTime = @CurrTime
--游戏报表
EXEC [Game_GameReport_Stat] @CurrTime = @CurrTime
--标签留存统计
EXEC [Game_LabelLiveStat_Stat]
--留存统计(分类)
EXEC [Game_RetentionStat_Stat]
END
--凌晨3点
IF(DATEPART(HOUR, @CurrTime) = 3)
BEGIN
--玩牌统计
EXEC [Game_CardStat_Stat]
--游戏中途退出统计
EXEC [Game_MidwayStat_Stat]
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Job_Minute] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Job_Minute]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 每分钟作业
-- ==============================================
CREATE PROCEDURE [dbo].[Job_Minute]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --系统当前时间
DECLARE @Min INT --分钟
DECLARE @Hour INT --小时
DECLARE @MaxLogID INT --日志ID
DECLARE @MonthFlag SMALLDATETIME --月标志
DECLARE @LastMonthFlag SMALLDATETIME --月标志
DECLARE @MaxBattleRID INT --战绩日志ID
DECLARE @MaxRecordID INT --分数集日志ID
DECLARE @MaxTime DATETIME --时间
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @Min = DATEPART(MINUTE, @CurrTime)
SET @Hour = DATEPART(HOUR, @CurrTime)
--游戏记录ID
SET @MaxTime = (SELECT MAX(BetTime) FROM [BetInfo])
IF(@MaxTime IS NOT NULL)
BEGIN
INSERT INTO [BetInfoHistory]
(
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
)
SELECT
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
FROM
[BetInfo]
WHERE
BetTime <= @MaxTime
--清理游戏记录
DELETE FROM [BetInfo] WHERE BetTime <= @MaxTime
END
--游戏记录ID
SET @MaxTime = (SELECT MAX(BetTime) FROM [ChipBetInfo])
IF(@MaxTime IS NOT NULL)
BEGIN
INSERT INTO [ChipBetInfoHistory]
(
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
)
SELECT
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
FROM
[ChipBetInfo]
WHERE
BetTime <= @MaxTime
--清理游戏记录
DELETE FROM [ChipBetInfo] WHERE BetTime <= @MaxTime
END
--每2分钟
IF(@Min % 2 = 0)
BEGIN
--最大记录时间
SET @MaxTime = (SELECT MAX(ResultTime) FROM [Bet] WHERE Status >= 2)
IF(@MaxTime IS NOT NULL)
BEGIN
INSERT INTO [BetInfo]
(
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
)
SELECT
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
FROM
[Bet]
WHERE
BetTime <= @MaxTime AND Status >= 2
--清理游戏记录
DELETE FROM [Bet] WHERE BetTime <= @MaxTime AND Status >= 2
END
--最大记录时间
SET @MaxTime = (SELECT MAX(ResultTime) FROM [ChipBet] WHERE Status >= 2)
IF(@MaxTime IS NOT NULL)
BEGIN
INSERT INTO [ChipBetInfo]
(
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
)
SELECT
RecordID, UserID, GameID, TransType, BetAmount, BetTime, BetZone, Odds, ResultAmount, ResultTime, ResultZone,
Tax, StillAmount, Status
FROM
[ChipBet]
WHERE
BetTime <= @MaxTime AND Status >= 2
--清理游戏记录
DELETE FROM [ChipBet] WHERE BetTime <= @MaxTime AND Status >= 2
END
--登陆日志
SET @MaxLogID = (SELECT MAX(LogID) FROM [UserLoginLog])
IF(@MaxLogID > 0)
BEGIN
--登陆日志
INSERT INTO [UserLoginLog_bak]
(
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
)
SELECT
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
FROM
[UserLoginLog]
WHERE
LogID <= @MaxLogID
--清除日志
DELETE FROM [UserLoginLog] WHERE LogID <= @MaxLogID
END
END
--每10分钟左右
IF(@Min % 10 = 0)
BEGIN
--富豪排行榜
--EXEC [Game_Rank_SortTotalAmount]
--排行榜
EXEC [Game_Rank_Sort] @CurrTime = @CurrTime
--清除机器人锁
DELETE FROM MachineUserLock
--充值统计
EXEC [Game_PayStat_Stat]
--注册统计
EXEC [Game_RegStat_Stat]
--游戏记录
SET @MaxLogID = (SELECT MAX(Rid) FROM [GameData])
IF(@MaxLogID > 0)
BEGIN
INSERT INTO [GameDataHistory]
(
Rid, UserID, GameID, RoomName, RoomData, Crdate
)
SELECT
Rid, UserID, GameID, RoomName, RoomData, Crdate
FROM
[GameData]
WHERE
Rid <= @MaxLogID
--清除
DELETE FROM [GameData] WHERE Rid <= @MaxLogID
END
--足迹
SELECT @MaxLogID = (SELECT MAX(Rid) FROM [UserTrack])
IF(@MaxLogID > 0)
BEGIN
INSERT INTO [UserTrackHistory]
(
Rid, UserID, Level_1, Level_2, Level_3, Crdate
)
SELECT
Rid, UserID, Level_1, Level_2, Level_3, Crdate
FROM
[UserTrack]
WHERE
Rid <= @MaxLogID
--清除
DELETE FROM [UserTrack] WHERE Rid <= @MaxLogID
END
--视频广告记录
SELECT @MaxLogID = (SELECT MAX(Rid) FROM [UserVideoLog] WHERE Crdate < @CurrTime)
IF(@MaxLogID > 0)
BEGIN
INSERT INTO [UserVideoLogHistory]
(
Rid, VideoName, UserID, ModuleName, Status, Amount, Crdate
)
SELECT
Rid, VideoName, UserID, ModuleName, Status, Amount, Crdate
FROM
[UserVideoLog]
WHERE
Rid <= @MaxLogID
--清除
DELETE FROM [UserVideoLog] WHERE Rid <= @MaxLogID
END
--金币日志ID
SET @MaxLogID = (SELECT MAX(LogID) FROM [MoneyLog])
IF(@MaxLogID > 0)
BEGIN
--游戏金币流量统计
--EXEC [Game_MoneyFlow_Stat] @MoneyLogID = @MaxLogID
INSERT INTO [MoneyLog_bak]
(
LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
TaxAmount, Remark, IPAddress, Crdate, LogType
)
SELECT
LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
TaxAmount, Remark, IPAddress, Crdate, LogType
FROM
[MoneyLog]
WHERE
LogID <= @MaxLogID
--清除日志
DELETE FROM [MoneyLog] WHERE LogID <= @MaxLogID
END
--佣金日志
SET @MaxLogID = (SELECT MAX(Rid) FROM [CommissionLog])
IF(@MaxLogID > 0)
BEGIN
INSERT INTO [CommissionLogHistory]
(
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
)
SELECT
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
FROM
[CommissionLog]
WHERE
Rid <= @MaxLogID
--清除日志
DELETE FROM [CommissionLog] WHERE Rid <= @MaxLogID
END
--金币日志ID
SET @MaxLogID = (SELECT MAX(LogID) FROM [ChipLog])
IF(@MaxLogID > 0)
BEGIN
INSERT INTO [ChipLog_bak]
(
LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
TaxAmount, Remark, IPAddress, Crdate, LogType
)
SELECT
LogID, SourceName, GameID, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
TaxAmount, Remark, IPAddress, Crdate, LogType
FROM
[ChipLog]
WHERE
LogID <= @MaxLogID
--清除日志
DELETE FROM [ChipLog] WHERE LogID <= @MaxLogID
END
END
--每30分钟执行一次
IF(@Min IN (0, 30))
BEGIN
--每隔30分钟统计金币总量
EXEC [Game_MoneyStat_Total]
--每隔30分钟统计筹码总量
EXEC [Game_ChipStat_Total]
--每小时清理在线
DELETE FROM [t_OnlineUser] WHERE LoginTime <= DATEADD(MINUTE, -30, @CurrTime)
--在线统计(元宝大厅)
EXEC [Game_OnlineUserChip_Stat] @CurrTime = @CurrTime
--同时在线统计
EXEC [Game_OnlineUser_Stat] @CurrTime = @CurrTime
--视频用户统计
EXEC [Game_VideoUser_Stat] @CurrTime = @CurrTime
END
--整点作业
IF(@Min = 0)
BEGIN
--凌晨0点作业
IF(@Hour = 0)
BEGIN
--红包券统计
EXEC [Game_CouponTask_Stat]
--移动数据
INSERT INTO [ChipSendLogHistory]
(
Rid, DateFlag, UserID, Amount
)
SELECT
Rid, DateFlag, UserID, Amount
FROM
[ChipSendLog]
WHERE
DateFlag < @DateFlag AND IsShow = 1
--清理数据
DELETE FROM [ChipSendLog] WHERE DateFlag < @DateFlag AND IsShow = 1
END
--每天8点
IF(@Hour = 8)
BEGIN
--用户视频统计
SET @MaxLogID = (SELECT MAX(Rid) FROM [UserVideoStat] WHERE DateFlag < @DateFlag)
IF(@MaxLogID > 0)
BEGIN
--用户视频统计
INSERT INTO [UserVideoStatHistory]
(
Rid, DateFlag, UserID, PartnerID, VideoName, ModuleName, ReqTimes, PlayTimes, UnPlayTimes, Amount
)
SELECT
Rid, DateFlag, UserID, PartnerID, VideoName, ModuleName, ReqTimes, PlayTimes, UnPlayTimes, Amount
FROM
[UserVideoStat]
WHERE
Rid <= @MaxLogID
--清除日志
DELETE FROM [UserVideoStat] WHERE Rid <= @MaxLogID
END
--游戏轨迹统计
SET @MaxLogID = (SELECT MAX(Rid) FROM [UserTrackStat] WHERE DateFlag < @DateFlag)
IF(@MaxLogID > 0)
BEGIN
INSERT INTO [UserTrackStatHistory]
(
Rid, DateFlag, UserID, Level_1, Level_2, Level_3, Times
)
SELECT
Rid, DateFlag, UserID, Level_1, Level_2, Level_3, Times
FROM
[UserTrackStat]
WHERE
Rid <= @MaxLogID
--清除日志
DELETE FROM [UserTrackStat] WHERE Rid <= @MaxLogID
END
--每月8号清理日志
IF(DATEPART(DAY, @CurrTime) = 8)
BEGIN
--计算月标志
SET @MonthFlag = CONVERT(CHAR(8), @CurrTime, 120) + '01'
--金币日志
DELETE FROM [MoneyLog_bak] WHERE Crdate < @MonthFlag
--游戏记录
DELETE FROM [BetInfoHistory] WHERE BetTime < @MonthFlag
--清除登陆日志
DELETE FROM [UserLoginLog_bak] WHERE Crdate < @MonthFlag
--前一个月
SET @LastMonthFlag = DATEADD(MONTH, -1, @MonthFlag)
--系统消息
DELETE FROM [SysMessage] WHERE Crdate <= @LastMonthFlag
END
--清理过期在线日志
DELETE FROM [t_onlinelog] WHERE Crdate < @DateFlag - 1
END
END
--最耗时的统计放最后
IF(@Min IN (0, 30))
BEGIN
--视频统计
EXEC [Game_VideoStat_Stat] @CurrTime = @CurrTime
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminRole_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminRole_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-09
-- Mendor: wolf
-- Alter Date: 2013-07-09
-- Description: 获取系统角色列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AdminRole_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息:角色ID(AdminRoleID)(int)、角色名称(AdminRoleName)(varchar(32))
SELECT
RoleID, RoleName
FROM
[Role]
ORDER BY
RoleID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminRole_GetListByAdmin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminRole_GetListByAdmin]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-10
-- Mendor: wolf
-- Alter Date: 2013-07-10
-- Description: 获取用户角色列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AdminRole_GetListByAdmin]
@AdminUserID INT --管理用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息:角色ID(AdminRoleID)(int)、角色名称(AdminRoleName)(varchar(32))、管理员ID(AdminUserID)(int)
SELECT
r.RoleID, r.RoleName, ISNULL(ru.AdminUserID, 0) AS AdminUserID
FROM
[Role] r LEFT JOIN [RoleUser] ru ON r.RoleID = ru.RoleID AND ru.AdminUserID = @AdminUserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminRole_GetPageList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @AdminRoleName VARCHAR(32)
-- EXEC [Manage_AdminRole_GetPageList]
-- @AdminRoleID = 0,
-- @AdminRoleName = @AdminRoleName OUTPUT
-- SELECT @AdminRoleName AS AdminRoleName
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-09
-- Mendor: wolf
-- Alter Date: 2013-07-10
-- Description: 获取角色页面列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AdminRole_GetPageList]
@AdminRoleID INT, --角色ID
@AdminRoleName NVARCHAR(32) OUTPUT --角色名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--角色名称
SET @AdminRoleName = (SELECT RoleName FROM [Role] WHERE RoleID = @AdminRoleID)
--返回信息:角色ID(AdminRoleID)(int)、管理页ID(AdminPageID)(int)、管理页名称(PageName)(varchar(32))
SELECT
ISNULL(arp.RoleID, 0) AS AdminRoleID, ap.AdminPageID, ap.PageName
FROM
[AdminPage] ap LEFT JOIN [RolePage] arp ON ap.AdminPageID = arp.PageID AND arp.RoleID = @AdminRoleID
ORDER BY
ap.AdminPageID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminRole_SetPage] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminRole_SetPage]
-- @OpUserID = 10001,
-- @OpUserName = '',
-- @AdminRoleID = 1,
-- @AdminPageIDs = '1,2,3,',
-- @IPAddress = '192.168.0.1'
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-10
-- Mendor: wolf
-- Alter Date: 2015-12-14
-- Description: 后台管理--设置页面
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AdminRole_SetPage]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@AdminRoleID INT, --管理角色ID
@AdminPageIDs VARCHAR(MAX), --页面ID集(格式如:1,2,3,)
@IPAddress VARCHAR(15) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
DECLARE @AdminPageID INT --管理页面ID
DECLARE @PageList NVARCHAR(4000) --页列表
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @AdminRoleName NVARCHAR(32) --管理角色名称
--申请表变量
DECLARE @tmptable TABLE(
PageID INT NOT NULL,
PageName NVARCHAR(32) NOT NULL
)
SET @StartIndex = 0
SET @EndIndex = 0
WHILE(1=1)
BEGIN
--截止索引
SET @EndIndex = CHARINDEX(',', @AdminPageIDs, @StartIndex)
IF(@EndIndex <= 0)
BREAK
--管理页面ID
SET @AdminPageID = CAST(SUBSTRING(@AdminPageIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
--初始化表变量
INSERT INTO @tmptable(PageID, PageName) VALUES(@AdminPageID, '')
--起始索引
SET @StartIndex = @EndIndex + 1
END
--删除当前管理角色的所有页面
DELETE FROM [RolePage] WHERE RoleID = @AdminRoleID
--添加新权限
INSERT INTO [RolePage]
(
RoleID, PageID
)
SELECT
@AdminRoleID, PageID
FROM
@tmptable
--页面名称
UPDATE t SET t.PageName = ap.PageName FROM @tmptable t INNER JOIN [AdminPage] ap on t.PageID = ap.AdminPageID
--管理角色名称
SET @AdminRoleName = (SELECT RoleName FROM [Role] WHERE RoleID = @AdminRoleID)
SET @Msg = 'Give role to(' + @AdminRoleName + ')Setting permissions'
--有页面
IF(@StartIndex > 0)
BEGIN
SET @Msg = @Msg + ' Current permissions:'
SET @PageList = ''
--页面名称
SELECT @PageList = @PageList + ',' + PageName FROM @tmptable
SET @Msg = @Msg + STUFF(@PageList, 1, 1, '')
END
ELSE
BEGIN
SET @Msg = @Msg + ' all permissions removed'
END
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_Add] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_AdminUser_Add]
-- @OpUserID = 0,
-- @OpUserName = '',
-- @AdminUserName = '',
-- @LoginPassword = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-21
-- Mendor: wolf
-- Alter Date: 2012-05-29
-- Description: 游戏后台--添加管理用户
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_Add]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@AdminUserName VARCHAR(32), --管理员用户名
@LoginPassword VARCHAR(32), --登录密码(MD5加密)
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--1:操作成功
--数据库:11:用户名已经存在
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @Msg VARCHAR(1024) --操作描述
SET @RetCode = 1
SET @CurrTime = GETDATE()
--判断用户是否存在
IF EXISTS(SELECT AdminUserName FROM [AdminUser] WHERE AdminUserName = @AdminUserName)
BEGIN
SET @RetCode = 11
SET @Msg = 'Add management account(' + @AdminUserName + ')failed because the account alreday exists'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
--添加用户
INSERT INTO [AdminUser]
(
AdminUserName, LoginPassword, FailureTimes, UpdateTime, Crdate, Memo, IPAddress
)
VALUES
(
@AdminUserName, @LoginPassword, 0, @CurrTime, @CurrTime, '', @IPAddress
)
SET @Msg = 'Successfully add management account(' + @AdminUserName + '),Account number ID(' + LTRIM(STR(@@IDENTITY)) + ')'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_AdminUser_Del]
-- @OpUserID = 0,
-- @OpUserName = '',
-- @AdminUserName = '',
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-21
-- Mendor: wolf
-- Alter Date: 2012-05-24
-- Description: 后台管理,删除后台管理用户
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_Del]
@OpUserID INT, --操作用户ID
@OpUserName VARCHAR(32), --操作用户名
@AdminUserName VARCHAR(32), --管理用户名
@IPAddress VARCHAR(15), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--1:操作成功
--数据库:11:操作失败
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @AdminUserID INT --后台用户ID
SET @RetCode = 1
--后台用户ID
SELECT @AdminUserID = AdminUserID FROM [AdminUser] WHERE AdminUserName = @AdminUserName
--1001属于系统管理员,不能删除
IF(@AdminUserID IS NULL OR @AdminUserID = 10001)
BEGIN
SET @RetCode = 11
RETURN
END
--删除管理用户
DELETE FROM [AdminUser] WHERE AdminUserName = @AdminUserName
--删除角色用户
DELETE FROM [RoleUser] WHERE AdminUserID = @AdminUserID
DECLARE @Msg VARCHAR(1024)
SET @Msg = 'Delete administrator(' + @AdminUserName + ')'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminUser_GetInfo]
-- @AdminUserID = 1
-- =============================================
-- Author: wolf
-- Create Date: 2013-06-18
-- Mendor: wolf
-- Alter Date: 2015-09-17
-- Description: 后台管理--获取管理用户信息
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_GetInfo]
@AdminUserID INT --管理ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @AdminUserName VARCHAR(32) --后台管理用户
DECLARE @IPAddress VARCHAR(16) --IP地址
DECLARE @FailureTimes TINYINT --失败次数
DECLARE @UpdateTime DATETIME --更新时间
DECLARE @Crdate DATETIME --创建时间
DECLARE @RoleNames NVARCHAR(256) --角色名称集
SET @RoleNames = ''
--后台管理用户相关信息
SELECT
@AdminUserName = AdminUserName, @IPAddress = IPAddress, @FailureTimes = FailureTimes,
@UpdateTime = UpdateTime, @Crdate = Crdate
FROM
[AdminUser]
WHERE
AdminUserID = @AdminUserID
--用户不存在
IF(@@ROWCOUNT = 0)
BEGIN
--返回信息:管理用户ID(AdminUserID)、IP地址(IPAddress)、失败次数(FailureTimes)、更新时间(UpdateTime)、
-- 创建时间(Crdate)、所属角色(RoleName)
SELECT @AdminUserID AS AdminUserID, @IPAddress AS IPAddress, @FailureTimes AS FailureTimes,
@UpdateTime AS UpdateTime, @Crdate AS Crdate, @RoleNames AS RoleNames
RETURN
END
--角色名称集
SELECT
@RoleNames = @RoleNames + RoleName + ','
FROM
[Role]
WHERE
RoleID IN (SELECT RoleID FROM [RoleUser] WHERE AdminUserID = @AdminUserID)
--返回信息:管理用户ID(AdminUserID)、IP地址(IPAddress)、失败次数(FailureTimes)、更新时间(UpdateTime)、
-- 创建时间(Crdate)、所属角色(RoleName)
SELECT @AdminUserID AS AdminUserID, @IPAddress AS IPAddress, @FailureTimes AS FailureTimes,
@UpdateTime AS UpdateTime, @Crdate AS Crdate, @RoleNames AS RoleNames
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminUser_GetList]
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-21
-- Mendor: wolf
-- Alter Date: 2012-05-29
-- Description: 后台管理--获取后台管理用户列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息:管理用户ID(AdminUserID)、管理用户名(AdminUserName)、IP地址(IPAddress)、是否绑定IP(IsFixIP)、
-- 失败次数(FailureTimes)、更新时间(UpdateTime)、备注(Memo)、创建时间(Crdate)
SELECT
AdminUserID, AdminUserName, IPAddress, FailureTimes,
CONVERT(VARCHAR(20), UpdateTime, 120) AS UpdateTime, Memo,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[AdminUser]
ORDER BY
AdminUserID DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetLogList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_AdminUser_GetLogList]
-- @AdminUserID = 0,
-- @StartTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-24
-- Mendor: wolf
-- Alter Date: 2014-07-23
-- Description: 后台管理--操作日志
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_GetLogList]
@AdminUserID INT, --管理员ID
@StartTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始索引
DECLARE @EndRowIndex INT --终止索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
CREATE TABLE #tmpLog
(
AdminLogID INT NOT NULL,
AdminUserID INT NOT NULL,
AdminUserName VARCHAR(32) NOT NULL,
IPAddress VARCHAR(15) NOT NULL,
Msg NVARCHAR(4000) NOT NULL,
Crdate DATETIME NOT NULL
)
--查询某个管理员日志
IF(@AdminUserID > 0)
BEGIN
INSERT INTO #tmpLog
(
AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
)
SELECT
AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
FROM
[AdminLog]
WHERE
AdminUserID = @AdminUserID AND Crdate BETWEEN @StartTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--查询所有管理员日志
ELSE
BEGIN
INSERT INTO #tmpLog
(
AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
)
SELECT
AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
FROM
[AdminLog]
WHERE
Crdate BETWEEN @StartTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY AdminLogID DESC) AS RowNumber,
AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg, Crdate
FROM
#tmpLog
)
--返回信息:日志ID(AdminLogID)、管理员ID(AdminUserID)、管理员名称(AdminUserName)、
-- IP地址(IPAddress)、消息(Msg)、创建时间(Crdate)
SELECT
AdminLogID, AdminUserID, AdminUserName, IPAddress, Msg,
CONVERT(CHAR(20), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--删除临时表
DROP TABLE #tmpLog
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetPageList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_AdminUser_GetPageList]
-- @AdminUserName = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- =============================================
-- Author: wolf
-- Create Date: 2013-06-18
-- Mendor: wolf
-- Alter Date: 2016-11-24
-- Description: 后台管理--获取页面列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_GetPageList]
@AdminUserID INT, --后台用户ID
@RetCode TINYINT OUTPUT --操作结果
--1:操作成功
--数据库:11:第1次登录,需要修改密码
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @UpdateTime DATETIME --更新时间
DECLARE @Crdate DATETIME --创建时间
SET @RetCode = 1
--后台用户ID、更新时间、创建时间
SELECT
@UpdateTime = UpdateTime, @Crdate = Crdate
FROM
[AdminUser]
WHERE
AdminUserID = @AdminUserID
--判断是否已经修改密码
IF(@UpdateTime = @Crdate)
BEGIN
SET @RetCode = 11
RETURN
END
--返回信息:页面ID(AdminPageID)、页面名称(PageName)、页面路径(PageUrl)
SELECT DISTINCT
arp.PageID, ap.PageName AS PageName, ap.PageUrl, ap.IsMenu
FROM
[RoleUser] ru INNER JOIN [Role] r ON ru.RoleID = r.RoleID
INNER JOIN [RolePage] arp ON arp.RoleID = r.RoleID
INNER JOIN [AdminPage] ap ON ap.AdminPageID = arp.PageID
WHERE
ru.AdminUserID = @AdminUserID AND ap.IsMenu >= 1
ORDER BY
arp.PageID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_GetPassword] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminUser_GetPassword]
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-21
-- Mendor: wolf
-- Alter Date: 2012-05-29
-- Description: 后台管理--获取后台登录密码
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_GetPassword]
@AdminUserName VARCHAR(32), --账号名称
@IPAddress VARCHAR(16), --IP地址
@AdminUserID INT OUTPUT, --后台账号ID
@LoginPassword VARCHAR(32) OUTPUT --登录密码(MD5加密)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @UpdateTime DATETIME --更新时间
DECLARE @Crdate DATETIME --创建时间
SET @AdminUserID = 0
SET @LoginPassword = ''
SET @UpdateTime = GETDATE()
SET @Crdate = @UpdateTime
--获取登录密码
SELECT
@AdminUserID = AdminUserID, @LoginPassword = LoginPassword, @UpdateTime = UpdateTime,
@Crdate = Crdate
FROM
[AdminUser]
WHERE
AdminUserName = @AdminUserName
--账号不存在
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'SSO单点登录失败,账号不存在'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--未修改过密码
IF(@UpdateTime = @Crdate)
BEGIN
SET @LoginPassword = ''
SET @Msg = N'SSO单点登录失败,需修改密码'
END
ELSE
BEGIN
SET @Msg = N'SSO单点登录成功,获取后台账号信息'
END
--添加日志
EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_Login] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- DECLARE @CurrAdminUserID INT
-- DECLARE @CurrAdminUserName VARCHAR(32)
-- EXEC [Manage_AdminUser_Login]
-- @AdminUserID = 0,
-- @AdminUserName = '',
-- @LoginPassword = '',
-- @IPAddress = '',
-- @CurrAdminUserID = @CurrAdminUserID OUTPUT,
-- @CurrAdminUserName = @CurrAdminUserName OUTPUT,
-- @RetCode = @RetCode OUTPUT
-- SELECT @CurrAdminUserID AS CurrAdminUserID, @CurrAdminUserName AS CurrAdminUserName,
-- @RetCode AS RetCode
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-21
-- Mendor: wolf
-- Alter Date: 2016-10-03
-- Description: 后台管理--用户登录
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_Login]
@AdminUserID INT = 0, --管理用户ID
@AdminUserName VARCHAR(32) = '', --管理用户名
@LoginPassword VARCHAR(32), --登录密码(明文)
@IPAddress VARCHAR(15), --IP地址
@CurrAdminUserID INT OUTPUT, --当前用户ID
@CurrAdminUserName VARCHAR(32) OUTPUT, --当前用户名
@RetCode TINYINT OUTPUT --操作结果
--1:操作成功
--数据库:11:数据异常 12:用户不存在 13:绑定IP,请在固定IP上登录
-- 14:密码输入错误10次 15:密码错误,请重新输入 16:第1次登录,请修改密码
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @OldLoginPassword VARCHAR(32) --当前登录密码
DECLARE @OldIPAddress VARCHAR(32) --当前IP地址
DECLARE @FailureTimes TINYINT --登录失败次数
DECLARE @UpdateTime DATETIME --更新时间
DECLARE @Crdate DATETIME --创建时间
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @Msg VARCHAR(1024) --消息
SET @RetCode = 1
SET @CurrAdminUserID = 0
SET @CurrAdminUserName = ''
SET @CurrTime = GETDATE()
--判断是否异常
IF(@AdminUserID <= 0 AND LEN(@AdminUserName) <= 0)
BEGIN
SET @RetCode = 11
SET @Msg = 'Login failed, account data is abnormal'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
@OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--判断密码是否为NULL
IF(@AdminUserID IS NULL OR @AdminUserName IS NULL OR @LoginPassword IS NULL)
BEGIN
SET @RetCode = 11
SET @Msg = 'Login failed, data exception'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
@OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--当前管理用户信息
SELECT
@CurrAdminUserID = AdminUserID, @CurrAdminUserName = AdminUserName,
@OldLoginPassword = LoginPassword, @OldIPAddress = IPAddress,
@FailureTimes = FailureTimes, @UpdateTime = UpdateTime,
@Crdate = Crdate
FROM
[AdminUser]
WHERE
(AdminUserID = @AdminUserID) OR (AdminUserName = @AdminUserName)
--判断用户是否存在
IF(@CurrAdminUserID IS NULL OR @CurrAdminUserID = 0)
BEGIN
SET @RetCode = 12
SET @Msg = 'Login failed, user does not exist'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
@OpUserName = @AdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--判断是否过期
IF(@UpdateTime < CONVERT(CHAR(10), GETDATE(), 120))
BEGIN
SET @FailureTimes = 0
END
--判断密码是否输入错误10次
IF(@FailureTimes >= 10)
BEGIN
SET @RetCode = 14
SET @Msg = 'Login failed, The password entered has been wrong 10 times today'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
@OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--判断密码是否正确
IF(@OldLoginPassword != dbo.fn_md5(@LoginPassword))
BEGIN
SET @RetCode = 15
SET @Msg = 'Login failed, password input error'
--失败次数+1
UPDATE
[AdminUser]
SET
FailureTimes = CASE
WHEN UpdateTime >= CONVERT(CHAR(10), GETDATE(), 120) THEN FailureTimes + 1
ELSE 1
END,
UpdateTime = GETDATE()
WHERE
AdminUserName = @CurrAdminUserName
--添加日志
EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
@OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--判断是否是第1次登录,第1次登录,提示修改密码
IF(@UpdateTime = @Crdate)
BEGIN
SET @RetCode = 16
SET @Msg = 'Login successed, need to change password'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
@OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
END
--登录成功,更新登录信息
UPDATE
[AdminUser]
SET
IPAddress = @IPAddress, FailureTimes = 0,
UpdateTime = CASE WHEN @RetCode = 1 THEN @CurrTime ELSE UpdateTime END
WHERE
AdminUserName = @CurrAdminUserName
SET @Msg = 'Login successfully'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @CurrAdminUserID,
@OpUserName = @CurrAdminUserName, @IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_UpdateMemo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminUser_UpdateMemo]
-- @OpUserID = 10001,
-- @OpUserName = '',
-- @AdminUserName = '',
-- @Memo = '',
-- @IPAddress = ''
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-29
-- Mendor: wolf
-- Alter Date: 2012-05-29
-- Description: 后台管理--添加备注
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_UpdateMemo]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@AdminUserName VARCHAR(32), --管理员用户名
@Memo NVARCHAR(128), --备注
@IPAddress VARCHAR(15) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
--更新备注
UPDATE [AdminUser] SET Memo = @Memo WHERE AdminUserName = @AdminUserName
IF(LEN(@Memo) > 0)
BEGIN
SET @Msg = N'Successfully modify management account(' + @AdminUserName + ')remarks, contents:' + @Memo
END
ELSE
BEGIN
SET @Msg = N'Successfully removed the management account(' + @AdminUserName + ')remarks, There are currently no comments'
END
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_UpdatePassword] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AdminUser_UpdatePassword]
-- =============================================
-- Author: wolf
-- Create Date: 2012-05-21
-- Mendor: wolf
-- Alter Date: 2012-05-24
-- Description: 后台管理--修改密码
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_UpdatePassword]
@AdminUserID INT, --管理用户名
@OldPassword VARCHAR(32), --旧密码(MD5加密)
@NewPassword VARCHAR(32), --新密码(MD5加密)
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--1:操作成功
--数据库:11:旧密码输入错误 12:新密码不能与旧密码相同
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @AdminUserName VARCHAR(32) --管理员名称
DECLARE @LoginPassword VARCHAR(32) --登录密码
DECLARE @Msg VARCHAR(1024) --操作描述
SET @RetCode = 1
SET @AdminUserName = ''
--旧密码与新密码不能相同
IF(@OldPassword = @NewPassword)
BEGIN
SET @RetCode = 12
SET @Msg = 'Old pasword and new password cannot be the same'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--管理员ID、登录密码
SELECT
@AdminUserName = AdminUserName, @LoginPassword = LoginPassword
FROM
[AdminUser]
WHERE
AdminUserID = @AdminUserID
--判断密码是否正确
IF(@LoginPassword IS NULL OR @LoginPassword != @OldPassword)
BEGIN
SET @RetCode = 11
SET @Msg = 'Password modification failed'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
--更改用户密码
UPDATE [AdminUser] SET LoginPassword = @NewPassword, UpdateTime = GETDATE() WHERE AdminUserID = @AdminUserID
SET @Msg = 'Password modification successfully'
--添加日志
EXEC [Game_Log_Add] @OpUserID = @AdminUserID, @OpUserName = @AdminUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AdminUser_VerifyPage] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_AdminUser_VerifyPage]
-- @AdminUserID = 1001,
-- @AdminPageID = 1001,
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- =============================================
-- Author: wolf
-- Create Date: 2013-06-18
-- Mendor: wolf
-- Alter Date: 2013-07-10
-- Description: 后台管理--验证用户访问当前页权限
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AdminUser_VerifyPage]
@AdminUserID INT, --管理用户ID
@AdminPageID INT, --管理页面ID
@RetCode TINYINT OUTPUT --操作结果
--1:操作成功
--数据库:11:没有访问权限
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 1
--判断是否有记录
IF NOT EXISTS(SELECT RoleID FROM [RolePage] WHERE RoleID IN (SELECT RoleID FROM [RoleUser] WHERE AdminUserID = @AdminUserID) AND PageID = @AdminPageID)
BEGIN
SET @RetCode = 11
RETURN
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AgentConfig_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AgentConfig_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 获取代理配置信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AgentConfig_GetInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
IsOpen, BindSend, BetOneDirect, BetTwoDirect, TaxOneDirect, TaxTwoDirect,
PayOneDirect, PayTwoDirect, AuditEnabled
FROM
[AgentConfig]
WHERE
ConfigID = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AgentConfig_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AgentConfig_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 获取代理配置信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AgentConfig_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@IsOpen INT, --是否开启
@BindSend INT, --绑码赠送
@BetOneDirect INT, --流水1级代理返佣(以万为基数)
@BetTwoDirect INT, --流水2级代理返佣(以万为基数)
@TaxOneDirect INT, --服务费1级代理返佣(以万为基数)
@TaxTwoDirect INT, --服务费2级代理返佣(以万为基数)
@PayOneDirect INT, --充值1级代理返佣(以万为基数)
@PayTwoDirect INT, --充值2级代理返佣(以万为基数)
@AuditEnabled INT, --审核是否启用
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
UPDATE
[AgentConfig]
SET
IsOpen = @IsOpen, BindSend = @BindSend,
BetOneDirect = @BetOneDirect, BetTwoDirect = @BetTwoDirect,
TaxOneDirect = @TaxOneDirect, TaxTwoDirect = @TaxTwoDirect,
PayOneDirect = @PayOneDirect, PayTwoDirect = @PayTwoDirect,
AuditEnabled = @AuditEnabled
WHERE
ConfigID = 1
SET @Msg = N'修改代理配置信息,IsOpen=' + LTRIM(STR(@IsOpen)) + ',BindSend=' + CAST(@BindSend AS VARCHAR(32)) +
',BetOne=' + CAST(@BetOneDirect AS VARCHAR(32)) + ',BetTwo=' + CAST(@BetTwoDirect AS VARCHAR(32)) +
',TaxOne=' + CAST(@TaxOneDirect AS VARCHAR(32)) + ',TaxTwo=' + CAST(@TaxTwoDirect AS VARCHAR(32)) +
',PayOne=' + CAST(@PayOneDirect AS VARCHAR(32)) + ',PayTwo=' + CAST(@PayTwoDirect AS VARCHAR(32)) +
',AuditEnabled=' + CAST(@AuditEnabled AS VARCHAR(32))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllGame_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllGame_GetList]
-- @GameID = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2015-09-07
-- Mendor: wolf
-- Alter Date: 2016-10-31
-- Description: 所有游戏
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllGame_GetList]
@GameID INT --游戏ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--某个游戏信息
IF(@GameID > 0)
BEGIN
--返回信息:游戏ID(GameID)(int)、中文名(ChineseName)(varchar(32))、英文名(EnglishName)(varchar(32))
SELECT
GameID, ChineseName, EnglishName, DisplaySort, Enabled, DBName,
CASE
WHEN Enabled IN (1, 2) THEN ChineseName
ELSE ChineseName + '(Unavailable)'
END AS GameName, GameType, NeedLevel
FROM
[AllGame]
WHERE
GameID = @GameID
ORDER BY
DisplaySort ASC
RETURN
END
--返回信息:游戏ID(GameID)(int)、中文名(ChineseName)(varchar(32))、英文名(EnglishName)(varchar(32))
SELECT
GameID, ChineseName, EnglishName, DisplaySort, Enabled, DBName,
CASE
WHEN Enabled IN (1, 2) THEN ChineseName
ELSE ChineseName + '(Unavailable)'
END AS GameName, GameType, NeedLevel
FROM
[AllGame]
ORDER BY
Enabled DESC, DisplaySort ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllGame_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllGame_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-09-07
-- Mendor: wolf
-- Alter Date: 2016-11-17
-- Description: 游戏信息修改
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllGame_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@GameID INT, --游戏ID
@IPAddress VARCHAR(16), --IP地址
@Enabled TINYINT, --是否启用
@DisplaySort INT, --显示顺序
@GameType TINYINT, --游戏类型 (0=无限制 1=金币游戏 2=元宝游戏)
@NeedLevel INT --所需等级
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @EnglishName VARCHAR(32) --英文名
--修改当前游戏版本号
UPDATE
[AllGame]
SET
@EnglishName = EnglishName, DisplaySort = @DisplaySort, Enabled = @Enabled, GameType = @GameType, NeedLevel = @NeedLevel
WHERE
GameID = @GameID
SET @Msg = N'Modify game version information, @GameID=' + LTRIM(STR(@GameID)) + ',@EnglishName=' + @EnglishName +
',@Enabled=' + LTRIM(STR(@Enabled)) + ',@DisplaySort=' + LTRIM(STR(@DisplaySort)) + ',@GameType=' + LTRIM(STR(@GameType)) +
',@NeedLevel=' + LTRIM(STR(@NeedLevel))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_BindFacebook] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_BindFacebook]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 后台绑定facebook账号(多个账号)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_BindFacebook]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID_1 INT, --账号ID1
@UserID_2 INT, --账号ID2
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT-- 操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei_1 VARCHAR(64) --IMei
DECLARE @Facebook_1_ID VARCHAR(64) --facebook
DECLARE @RegTime_1 DATETIME --注册时间
DECLARE @IMei_2 VARCHAR(64) --IMei
DECLARE @Facebook_2_ID VARCHAR(64) --facebook
DECLARE @RegTime_2 DATETIME --注册时间
DECLARE @UserID INT --账号ID
DECLARE @IMei VARCHAR(64) --IMei
DECLARE @Amount BIGINT --金币数
DECLARE @Msg NVARCHAR(4000) --消息
SET @RetCode = 0
--账号信息
SELECT
@IMei_1 = CASE WHEN UserID = @UserID_1 THEN IMei ELSE @IMei_1 END,
@Facebook_1_ID = CASE
WHEN UserID = @UserID_1 AND LEFT(IMei, 3) IN ('fb.', 'gg.') THEN IMei
WHEN UserID = @UserID_1 AND LEFT(deviceid, 3) IN ('fb.', 'gg.') THEN deviceid
ELSE @Facebook_1_ID
END,
@RegTime_1 = CASE WHEN UserID =@UserID_1 THEN RegTime ELSE @RegTime_1 END,
@IMei_2 = CASE WHEN UserID = @UserID_2 THEN IMei ELSE @IMei_2 END,
@Facebook_2_ID = CASE
WHEN UserID = @UserID_2 AND LEFT(IMei, 3) IN ('fb.', 'gg.') THEN IMei
WHEN UserID = @UserID_2 AND LEFT(deviceid, 3) IN ('fb.', 'gg.') THEN deviceid
ELSE @Facebook_2_ID
END,
@RegTime_2 = CASE WHEN UserID =@UserID_2 THEN RegTime ELSE @RegTime_2 END
FROM
[AllUser]
WHERE
UserID IN (@UserID_1, @UserID_2)
--没有2个账号
IF(@@ROWCOUNT != 2)
BEGIN
SET @RetCode = 11
RETURN
END
--判断是否已经绑定
IF EXISTS(SELECT UserID FROM [UserBindFacebook] WHERE Facebook_1_ID = @Facebook_1_ID OR Facebook_2_ID = @Facebook_1_ID)
BEGIN
SET @RetCode = 12
RETURN
END
--判断是否已经绑定
IF EXISTS(SELECT UserID FROM [UserBindFacebook] WHERE Facebook_1_ID = @Facebook_2_ID OR Facebook_2_ID = @Facebook_2_ID)
BEGIN
SET @RetCode = 13
RETURN
END
--新账号
SET @UserID = @UserID_1
SET @IMei = @IMei_1
--账号信息无效
IF(@UserID IS NULL OR @UserID <= 0)
BEGIN
SET @RetCode = 11
RETURN
END
--关联多个facebook账号信息
INSERT INTO [UserBindFacebook]
(
UserID, IMei, Facebook_1_ID, Facebook_2_ID
)
VALUES
(
@UserID, @IMei, @Facebook_1_ID, @Facebook_2_ID
)
--加金币
SELECT @Amount = Amount FROM [Money] WHERE UserID = @UserID_2
IF(@Amount > 0)
BEGIN
--清理
UPDATE [Money] SET Amount = 0 WHERE UserID = @UserID_2
--补给旧账号
UPDATE [Money] SET Amount = Amount + @Amount WHERE UserID = @UserID_1
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [Money]
(
UserID, Amount, Bank, RegisterTime, RefreshTime
)
VALUES
(
@UserID, @Amount, 0, GETDATE(), GETDATE()
)
END
END
SET @Msg = N'关联多个facebook账号!关联的信息:@UserID_1=' + LTRIM(STR(@UserID_1)) + ',@UserID_2=' + LTRIM(STR(@UserID_2)) + ',@Amount=' + CAST(@Amount AS VARCHAR(32))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
--操作结果
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_ChangeLevel] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_ChangeLevel]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-16
-- Mendor: wolf
-- Alter Date: 2016-04-11
-- Description: 修改用户等级
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_ChangeLevel]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@Lv INT, --等级
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @OldLv INT --等级
DECLARE @OldExp INT --经验
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @RetCode TINYINT
SET @RetCode = 0
SELECT @OldLv = Lv, @OldExp = Exp FROM [UserLevel] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--更新等级
UPDATE [UserLevel] SET Lv = @Lv WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
SET @Msg = N'后台修改等级,@UserID=' + LTRIM(STR(@UserID)) + ',@OldLv=' + LTRIM(STR(@OldLv)) + ',@OldExp=' + LTRIM(STR(@OldExp))
--添加后台操作日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @IPAddress = @IPAddress, @Msg = @Msg, @Type = 1
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_ChangeNickName] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_AllUser_ChangeNickName]
-- @UserID = 100,
-- @NickName = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-16
-- Mendor: wolf
-- Alter Date: 2016-04-11
-- Description: 修改用户昵称
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_ChangeNickName]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@NickName NVARCHAR(32), --昵称
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @OldNickName NVARCHAR(32) --旧昵称
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @RetCode TINYINT
SET @RetCode = 0
SELECT @OldNickName = NickName FROM [AllUser] WHERE UserID = @UserID
IF(LEN(@NickName) <= 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--更新昵称
UPDATE [AllUser] SET NickName = @NickName, @OldNickName = NickName WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--修改昵称日志
INSERT INTO [ChangedNickNameLog]
(
UserID, OldNickName, NewNickName, Crdate
)
VALUES
(
@UserID, @OldNickName, @NickName, GETDATE()
)
SET @Msg = N'后台修改昵称,@UserID=' + LTRIM(STR(@UserID)) + ',@NickName=' + @NickName + ',@OldNickName=' + @OldNickName
--添加后台操作日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @IPAddress = @IPAddress, @Msg = @Msg, @Type = 1
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_ConvertReport] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_ConvertReport]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 用户转化报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_ConvertReport]
@DateFlag DATETIME, --日期
@IsReg TINYINT --是否含注册用户
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @LoginUsers INT --登录用户数
DECLARE @PlayUsers INT --游戏用户数
DECLARE @VideoReqUsers INT --广告请求用户数
DECLARE @VideoPlayUsers INT --广告播放用户数
DECLARE @PayUsers INT --付费用户数
DECLARE @BeginTime DATETIME --开始时间
DECLARE @EndTime DATETIME --截止时间
DECLARE @tmptable TABLE(
UserID INT NOT NULL --用户ID
)
SET @BeginTime = CONVERT(CHAR(10), @DateFlag, 120)
SET @EndTime = CONVERT(CHAR(11), @DateFlag, 120) + '23:59:59'
--机器人
INSERT INTO @tmptable(UserID)
SELECT UserID FROM [MachineUser]
--不含注册用户
IF(@IsReg != 1)
BEGIN
INSERT INTO @tmptable(UserID)
SELECT UserID FROM [AllUser] WHERE RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
END
--1、登录用户数
--2、游戏用户数
SELECT
@LoginUsers = COUNT(DISTINCT UserID),
@PlayUsers = COUNT(DISTINCT(CASE WHEN PlaySeconds > 0 THEN UserID ELSE 0 END))
FROM
[UserDailyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
--2、游戏用户数
/*
SELECT
@PlayUsers = COUNT(DISTINCT UserID)
FROM
[DailyBetStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
*/
--3、广告请求用户数、广告播放用户数
SELECT
@VideoReqUsers = COUNT(DISTINCT (CASE WHEN ReqTimes > 0 THEN UserID ELSE 0 END)),
@VideoPlayUsers = COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END))
FROM
(
SELECT
UserID, ReqTimes, PlayTimes
FROM
[UserVideoStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
UNION
SELECT
UserID, ReqTimes, PlayTimes
FROM
[UserVideoStatHistory]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
) t
--4、付费用户数
SELECT
@PayUsers = COUNT(DISTINCT UserID)
FROM
[UserPayLog]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM @tmptable)
--返回信息
SELECT
ISNULL(@LoginUsers, 0) AS LoginUsers, ISNULL(@PlayUsers, 0) AS PlayUsers,
ISNULL(@VideoReqUsers, 0) AS VideoReqUsers, ISNULL(@PayUsers , 0) AS PayUsers,
ISNULL(@VideoPlayUsers, 0) AS VideoPlayUsers
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 删除账号
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_Del]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @IsTest TINYINT --是否测试账号
DECLARE @NickName NVARCHAR(32) --昵称
DECLARE @IMei VARCHAR(64) --IMei
SET @RetCode = 0
SET @IsTest = 0
--判断是否测试账号
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
SET @IsTest = 1
END
--划分到测试账号里去,可以排除数据统计
ELSE
BEGIN
UPDATE [UserIdentity] SET IMei = LTRIM(STR(UserID)), @IMei = IMei WHERE UserID = @UserID
UPDATE [AllUser] SET IMei = LTRIM(STR(UserID)), @NickName = NickName WHERE UserID = @UserID
END
--添加日志
SET @Msg = N'Del User, UserID=' + LTRIM(STR(@UserID)) + ',@NickName=' + @NickName + ',@IsTest=' + LTRIM(STR(@IsTest)) + ',IMei=' + @IMei
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_ExportChipStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_ExportChipStat]
-- =============================================
-- Author: wolf
-- Create Date: 2014-12-04
-- Mendor: wolf
-- Alter Date: 2016-09-21
-- Description: 后台管理--导出筹码变化
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_ExportChipStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
PartnerID INT NOT NULL, --渠道ID
PartnerName NVARCHAR(32) NOT NULL, --渠道名称
InvestAmount BIGINT NOT NULL, --投注金额
WinAmount BIGINT NOT NULL --赢金额
)
--初始化表变量
INSERT INTO @tmptable(
UserID, NickName, PartnerID, PartnerName, InvestAmount, WinAmount
)
SELECT
UserID, '', 0, '', 0, ISNULL(SUM(MoneySum), 0)
FROM
[ChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID > 0 AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
GROUP BY
UserID
--获取渠道ID
UPDATE
t
SET
t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PartnerName = u.PartnerID
FROM
@tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
--获取渠道名称
UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
--返回信息
SELECT
UserID, NickName, PartnerName, InvestAmount, WinAmount
FROM
@tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_ExportMoneyStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_ExportMoneyStat]
-- =============================================
-- Author: wolf
-- Create Date: 2014-12-04
-- Mendor: wolf
-- Alter Date: 2016-09-21
-- Description: 后台管理--导出金币变化
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_ExportMoneyStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
PartnerID INT NOT NULL, --渠道ID
PartnerName NVARCHAR(32) NOT NULL, --渠道名称
InvestAmount BIGINT NOT NULL, --投注金额
WinAmount BIGINT NOT NULL --赢金额
)
--初始化表变量
INSERT INTO @tmptable(
UserID, NickName, PartnerID, PartnerName, InvestAmount, WinAmount
)
SELECT
UserID, '', 0, '', 0, ISNULL(SUM(MoneySum), 0)
FROM
[MoneyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID > 0 AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
GROUP BY
UserID
--获取渠道ID
UPDATE
t
SET
t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PartnerName = u.PartnerID
FROM
@tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
--获取渠道名称
UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
--返回信息
SELECT
UserID, NickName, PartnerName, InvestAmount, WinAmount
FROM
@tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetBankInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetBankInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 获取银行账号信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetBankInfo]
@UserID INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回
SELECT
RealName, BankName, BankCode, BankCard, Mobile,
CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[UserBankInfo]
WHERE
UserID = @UserID
ORDER BY
Rid DESC
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetChipStatDetail] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetChipStatDetail]
-- @UserID = 1,
-- @StartTime = '',
-- @EndTime = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-02
-- Mendor: wolf
-- Alter Date: 2016-09-05
-- Description: 后台管理--用户货币变化详情
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetChipStatDetail]
@UserID INT, --用户ID
@StartTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@IsGameWin TINYINT --是否输赢
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NickName NVARCHAR(32) --昵称
--昵称
SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
--输赢标识
IF(@IsGameWin = 1)
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
FROM
[ChipStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType AND mlt.IsGameWin = 1
WHERE
ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
ORDER BY
ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
RETURN
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
FROM
[ChipStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType
WHERE
ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
ORDER BY
ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetChipStatList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetChipStatList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-02
-- Mendor: wolf
-- Alter Date: 2016-09-05
-- Description: 后台管理--货币变化
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetChipStatList]
@UserID INT, --用户ID
@IsGameWin TINYINT, --是否输赢
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT, --记录数
@TotalAmount BIGINT OUTPUT --总计
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--创建临时表
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
MoneySum BIGINT NOT NULL --总额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @TotalAmount = 0
--某个用户
IF(@UserID > 0)
BEGIN
IF(@IsGameWin = 1)
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
@UserID, ISNULL(SUM(MoneySum), 0)
FROM
[ChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
END
ELSE
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
@UserID, ISNULL(SUM(MoneySum), 0)
FROM
[ChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType])
END
END
--所有用户
ELSE
BEGIN
IF(@IsGameWin = 1)
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
UserID, ISNULL(SUM(MoneySum), 0)
FROM
[ChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1) AND UserID > 0
GROUP BY
UserID
END
ELSE
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
UserID, ISNULL(SUM(MoneySum), 0)
FROM
[ChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType]) AND UserID > 0
GROUP BY
UserID
END
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--总计
SET @TotalAmount = ISNULL((SELECT SUM(MoneySum) FROM @tmptable WHERE UserID > 100), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ABS(MoneySum) DESC) AS RowNumber,
UserID, MoneySum
FROM
@tmptable
)
--返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、总量(MoneySum)
SELECT
l.RowNumber, l.UserID, u.NickName, l.MoneySum
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetInfo]
-- =============================================
-- Author: wolf
-- Create Date: 2016-10-21
-- Mendor: wolf
-- Alter Date: 2016-10-21
-- Description: 后台用户信息
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NickName NVARCHAR(32) --昵称
DECLARE @RegPartnerID INT --注册渠道ID
DECLARE @PartnerName NVARCHAR(32) --渠道名称
DECLARE @Amount BIGINT --金币
DECLARE @Bank BIGINT --保险柜
DECLARE @VipLevel INT --VIP等级
DECLARE @PayMoney DECIMAL(18, 2) --累计充值
DECLARE @RegTime DATETIME --注册时间
DECLARE @RegIP VARCHAR(16) --注册IP
DECLARE @IMei VARCHAR(64) --IMei
DECLARE @LoginTime DATETIME --登录时间
DECLARE @LoginIP VARCHAR(16) --登录IP
DECLARE @FaceUrl VARCHAR(1024) --头像地址
DECLARE @MonthExpire DATETIME --月卡过期时间
DECLARE @UserWords NVARCHAR(256) --个性签名
DECLARE @Tel VARCHAR(32) --手机号
DECLARE @deviceid VARCHAR(64)
DECLARE @ChipAmount BIGINT --筹码金额
DECLARE @ChipBank BIGINT --筹码保险柜
DECLARE @Lv TINYINT --等级
DECLARE @Exp INT --经验
DECLARE @TotalSeconds INT --总在线时长
DECLARE @TodaySeconds INT --今天在线时长
DECLARE @HigherUserID INT --代理用户ID
DECLARE @HigherNickName NVARCHAR(32) --代理名称
DECLARE @Source NVARCHAR(128) --广告系列来源。用来标识搜索引擎、简报名称或其他来源。示例: utm_source=google
DECLARE @Medium NVARCHAR(128) ----广告系列媒介。用来标识媒介,比如电子邮件或每次点击费用。示例:utm_medium=cpc
DECLARE @DeviceName VARCHAR(32) --设备型号
SET @NickName = ''
SET @PartnerName = ''
SET @Amount = 0
SET @Bank = 0
SET @VipLevel = 0
SET @FaceUrl = ''
SET @MonthExpire = '2021-01-01'
SET @UserWords = ''
SET @Tel = ''
SET @deviceid = ''
SET @ChipAmount = 0
SET @ChipBank = 0
SET @Lv = 0
SET @Exp = 0
SET @TotalSeconds = 0
SET @TodaySeconds = 0
SET @HigherUserID = 0
SET @HigherNickName = ''
SET @Source = ''
SET @Medium = ''
SET @DeviceName = ''
--获取基本信息
SELECT
@NickName = NickName, @RegPartnerID = RegPartnerID,
@PayMoney = PayMoney, @RegTime = RegTime, @RegIP = RegIP,
@IMei = IMei, @LoginTime = LoginTime, @LoginIP = IPAddress,
@UserWords = UserWords, @deviceid = deviceid, @DeviceName = DeviceName
FROM
[AllUser]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
RETURN
SET @PartnerName = LTRIM(STR(@RegPartnerID))
--获取渠道名称
SELECT @PartnerName = PartnerName FROM [Partner] WHERE PartnerID = @RegPartnerID
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
--Vip级别
SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
--头像URL
SELECT @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
--月卡
SELECT @MonthExpire = MonthExpire FROM [UserMonthlyCard] WHERE UserID = @UserID
--手机号
SELECT @Tel = Tel FROM [UserTel] WHERE UserID = @UserID
SELECT @Lv = Lv, @Exp = Exp FROM [UserLevel] WHERE UserID = @UserID
--在线时长
SELECT @TotalSeconds = TotalSeconds, @TodaySeconds = TodaySeconds FROM [t_onlinetime] WHERE UserID = @UserID
--代理信息
SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
IF(@HigherUserID > 0)
BEGIN
SELECT @HigherNickName = NickName FROM [AllUser] WHERE UserID = @HigherUserID
END
--流量渠道追踪
SELECT @Source = Source, @Medium = Medium FROM [UTM] WHERE UserID = @UserID
--返回信息
SELECT
@NickName AS NickName, @PartnerName AS PartnerName, @Amount AS Amount,
@VipLevel AS VipLevel, @PayMoney AS PayMoney, CONVERT(CHAR(20), @RegTime, 120) AS RegTime,
@RegIP AS RegIP, @IMei AS IMei, CONVERT(CHAR(20), @LoginTime, 120) AS LoginTime,
@LoginIP AS LoginIP, @FaceUrl AS FaceUrl, CONVERT(CHAR(10), @MonthExpire, 120) AS MonthExpire,
@UserWords AS UserWords, @Tel AS Tel, @deviceid AS deviceid, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
@Lv AS Lv, @Exp AS [Exp], @TotalSeconds AS TotalSeconds, @TodaySeconds AS TodaySeconds,
@HigherUserID AS HigherUserID, @HigherNickName AS HigherNickName, @Source AS Source, @Medium AS Medium,
@DeviceName AS DeviceName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetList]
-- =============================================
-- Author: wolf
-- Create Date: 2016-10-21
-- Mendor: wolf
-- Alter Date: 2016-10-21
-- Description: 后台用户列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetList]
@PartnerID INT, --渠道ID
@UserID INT, --用户ID
@NickName NVARCHAR(32), --昵称
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON -- 节约反馈资源
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmpUser TABLE(
PartnerID INT NOT NULL, --渠道ID
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
LoginTime DATETIME NOT NULL, --登录时间
PayMoney DECIMAL(18, 2) NOT NULL, --累计充值
RegTime DATETIME NOT NULL, --注册时间
RegIP VARCHAR(16) NOT NULL --注册IP
)
--创建临时表
DECLARE @tmptable TABLE(
PartnerID INT NOT NULL, --渠道ID
PartnerName NVARCHAR(32) NOT NULL, --渠道名称
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
Amount BIGINT NOT NULL, --金币
VipLevel INT NOT NULL, --VIP等级
LoginTime DATETIME NOT NULL, --登陆时间
PayMoney DECIMAL(18, 2) NOT NULL, --累计充值
RegTime DATETIME NOT NULL, --注册时间
RegIP VARCHAR(16) NOT NULL --注册IP
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--渠道
IF(@PartnerID > 0)
BEGIN
INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
SELECT
RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
FROM
[AllUser]
WHERE
RegPartnerID = @PartnerID AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--记录数
SET @RecordCount = @@ROWCOUNT
END
--查询某个账号信息
ELSE IF(LEN(@NickName) > 0 OR @UserID > 0)
BEGIN
--查询昵称
IF(LEN(@NickName) > 0)
BEGIN
INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
SELECT
RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
FROM
[AllUser]
WHERE
NickName LIKE '%' + @NickName + '%'
--记录数
SET @RecordCount = @@ROWCOUNT
END
--查询某个ID
IF(@UserID > 0)
BEGIN
--账号不存在
IF NOT EXISTS(SELECT UserID FROM @tmpUser WHERE UserID = @UserID)
BEGIN
INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
SELECT RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP FROM [AllUser] WHERE UserID = @UserID
--记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--其他
ELSE
BEGIN
INSERT INTO @tmpUser(PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP)
SELECT TOP 1000
RegPartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
FROM
[AllUser]
WHERE
UserID NOT IN (SELECT UserID FROM [MachineUser])
ORDER BY
LoginTime DESC
--记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY RegTime DESC) AS RowNumber,
PartnerID, UserID, NickName, LoginTime, PayMoney, RegTime, RegIP
FROM
@tmpUser
)
--获取当前页用户信息
INSERT INTO @tmptable
(
PartnerID, PartnerName, UserID, NickName, Amount, VipLevel, LoginTime, PayMoney, RegTime, RegIP
)
SELECT
PartnerID, '', UserID, NickName, 0, 0, LoginTime, PayMoney, RegTime, RegIP
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--获取渠道名称
UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
--获取金豆信息
UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
--获取vip
UPDATE t SET t.VipLevel = v.VipLevel FROM @tmptable t INNER JOIN [UserVip] v ON t.UserID = v.UserID
--返回信息:
SELECT
CASE WHEN PartnerName = '' THEN LTRIM(STR(PartnerID)) ELSE PartnerName END AS PartnerName,
UserID, NickName, Amount, VipLevel, CONVERT(CHAR(23), LoginTime, 120) AS LoginTime, PayMoney,
CONVERT(VARCHAR(23), RegTime, 120) AS RegTime, RegIP
FROM
@tmptable
ORDER BY
RegTime DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetMoneyStatDetail] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetMoneyStatDetail]
-- @UserID = 1,
-- @StartTime = '',
-- @EndTime = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-02
-- Mendor: wolf
-- Alter Date: 2016-09-05
-- Description: 后台管理--用户货币变化详情
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetMoneyStatDetail]
@UserID INT, --用户ID
@StartTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@IsGameWin TINYINT --是否输赢
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NickName NVARCHAR(32) --昵称
--昵称
SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
--输赢标识
IF(@IsGameWin = 1)
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
FROM
[MoneyStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType AND mlt.IsGameWin = 1
WHERE
ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
ORDER BY
ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
RETURN
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, mlt.ChineseName,
mlt.LogTypeName, ms.MoneySum, @UserID AS UserID, @NickName AS NickName
FROM
[MoneyStat] ms INNER JOIN [MoneyLogType] mlt ON ms.LogType = mlt.LogType
WHERE
ms.DateFlag BETWEEN @StartTime AND @EndTime AND ms.UserID = @UserID
ORDER BY
ms.DateFlag DESC, mlt.GameID DESC, ABS(ms.MoneySum) DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetMoneyStatList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_AllUser_GetMoneyStatList]
-- @UserID = 1,
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-02
-- Mendor: wolf
-- Alter Date: 2016-09-05
-- Description: 后台管理--货币变化
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetMoneyStatList]
@UserID INT, --用户ID
@IsGameWin TINYINT, --是否输赢
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT, --记录数
@TotalAmount BIGINT OUTPUT --总计
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--创建临时表
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
MoneySum BIGINT NOT NULL --总额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @TotalAmount = 0
--某个用户
IF(@UserID > 0)
BEGIN
IF(@IsGameWin = 1)
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
@UserID, ISNULL(SUM(MoneySum), 0)
FROM
[MoneyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1)
END
ELSE
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
@UserID, ISNULL(SUM(MoneySum), 0)
FROM
[MoneyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND LogType IN (SELECT LogType FROM [MoneyLogType])
END
END
--所有用户
ELSE
BEGIN
IF(@IsGameWin = 1)
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
UserID, ISNULL(SUM(MoneySum), 0)
FROM
[MoneyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType] WHERE IsGameWin = 1) AND UserID > 0
GROUP BY
UserID
END
ELSE
BEGIN
INSERT INTO @tmptable(UserID, MoneySum)
SELECT
UserID, ISNULL(SUM(MoneySum), 0)
FROM
[MoneyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND LogType IN (SELECT LogType FROM [MoneyLogType]) AND UserID > 0
GROUP BY
UserID
END
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--总计
SET @TotalAmount = ISNULL((SELECT SUM(MoneySum) FROM @tmptable WHERE UserID > 100), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ABS(MoneySum) DESC) AS RowNumber,
UserID, MoneySum
FROM
@tmptable
)
--返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、总量(MoneySum)
SELECT
l.RowNumber, l.UserID, u.NickName, l.MoneySum
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetNewUserStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetNewUserStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 获取新注册用户统计信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetNewUserStat]
@Source NVARCHAR(128), --广告系列来源。用来标识搜索引擎、简报名称或其他来源。示例: utm_source=google
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
DateFlag SMALLDATETIME NOT NULL, --日期标识
Source NVARCHAR(256) NOT NULL, --UTM源
RegCount INT NOT NULL, --注册人数
LiveUsers_2 INT NOT NULL, --次日留存
PayUsers_1 INT NOT NULL, --第1天充值人数
PayMoney_1 DECIMAL(18, 2) NOT NULL, --第1天充值金额
PayMoney_2 DECIMAL(18, 2) NOT NULL, --第2天充值金额
PayMoney_3 DECIMAL(18, 2) NOT NULL, --第3天充值金额
PayMoney_7 DECIMAL(18, 2) NOT NULL, --第7天充值金额
PayMoney_14 DECIMAL(18, 2) NOT NULL, --第14天充值金额
PayMoney_30 DECIMAL(18, 2) NOT NULL --第30天充值金额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@Source = 'All Source v2')
BEGIN
INSERT INTO @tmptable
(
Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
)
SELECT
Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
FROM
[NewUserStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
)
SELECT
Rid, DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
FROM
[NewUserStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND Source = @Source
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, RegCount DESC, Rid DESC) AS RowNumber,
DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
FROM
@tmptable
)
SELECT
CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Source, RegCount, LiveUsers_2, PayUsers_1,
PayMoney_1, PayMoney_2, PayMoney_3, PayMoney_7, PayMoney_14, PayMoney_30
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetRegLogList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetRegLogList]
-- @PartnerID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 注册日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetRegLogList]
@PartnerIDs VARCHAR(256), --合作商ID
@SourceIDs VARCHAR(32), --注册来源
@Lv TINYINT, --等级
@Exp INT, --经验
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @PartnerID INT --渠道ID
DECLARE @StartIndex INT --起始
DECLARE @EndIndex INT --截止
DECLARE @SourceId INT
DECLARE @tmPartner TABLE(
PartnerID INT NOT NULL --渠道ID
)
DECLARE @tmpSource TABLE(
SourceId INT NOT NULL
)
--表变量
DECLARE @tmptable TABLE(
PartnerID INT NOT NULL, --合作商ID
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
IMei VARCHAR(64) NOT NULL, --IMei
RegIP VARCHAR(16) NOT NULL, --注册IP
RegTime DATETIME NOT NULL, --注册时间
LoginTime DATETIME NOT NULL, --登录时间
deviceid VARCHAR(64) NOT NULL, --设备号
SourceId VARCHAR(32) NOT NULL, --注册源
Lv INT NOT NULL, --等级
Exp INT NOT NULL, --经验值
GuideStep INT NOT NULL, --新手指引
UTMSource NVARCHAR(1024) NOT NULL, --流量渠道
Amount BIGINT NOT NULL, --金币
DeviceName VARCHAR(32) NOT NULL, --设备名称
PayMoney DECIMAL(18, 2) NOT NULL --累计充值
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @StartIndex = 0
SET @EndIndex = 0
WHILE(1=1)
BEGIN
SET @EndIndex = CHARINDEX(',', @PartnerIDs, @StartIndex)
IF(@EndIndex <= 0)
BREAK
SET @PartnerID = CAST(SUBSTRING(@PartnerIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
INSERT INTO @tmPartner(PartnerID) VALUES(@PartnerID)
SET @StartIndex = @EndIndex + 1
END
SET @StartIndex = 0
SET @EndIndex = 0
WHILE(1=1)
BEGIN
SET @EndIndex = CHARINDEX(',', @SourceIDs, @StartIndex)
IF(@EndIndex <= 0)
BREAK
SET @SourceId = CAST(SUBSTRING(@SourceIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
INSERT INTO @tmpSource(SourceId) VALUES(@SourceId)
SET @StartIndex = @EndIndex + 1
END
--初始化数据
INSERT INTO @tmptable
(
PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
SourceId, Lv, Exp, GuideStep, UTMSource, LoginTime, Amount, DeviceName, PayMoney
)
SELECT
RegPartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
CASE
WHEN LEFT(IMei, 3) = 'fb.' THEN 2
WHEN LEFT(IMei, 3) = 'gg.' THEN 3
ELSE 1
END, 1, 0, 0, '', u.LoginTime, 0, u.DeviceName, u.PayMoney
FROM
[AllUser] u INNER JOIN @tmPartner t ON u.RegPartnerID = t.PartnerID
WHERE
RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--获取等级、经验
UPDATE t SET t.Lv = v.Lv, t.Exp = v.Exp FROM @tmptable t INNER JOIN [UserLevel] v ON t.UserID = v.UserID
--删除不合条件的数据
DELETE FROM @tmptable WHERE Lv < @Lv
DELETE FROM @tmptable WHERE Exp < @Exp
DELETE FROM @tmptable WHERE SourceId NOT IN (SELECT SourceId FROM @tmpSource)
--获取新手指引
UPDATE t SET t.GuideStep = ut.Status FROM @tmptable t INNER JOIN [UserTask] ut ON t.UserID = ut.UserID AND ut.TaskID = 20014
--获取流量渠道
UPDATE t SET t.UTMSource = u.Source FROM @tmptable t INNER JOIN [UTM] u ON t.UserID = u.UserID
--获取金豆信息
UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
--总记录数
SELECT @RecordCount = COUNT(*) FROM @tmptable
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY RegTime DESC) AS RowNumber,
PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid, Lv, Exp, GuideStep, UTMSource, LoginTime, Amount, DeviceName, PayMoney
FROM
@tmptable
)
--返回信息:合作商名称(PartnerName)(varchar(32))、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、
-- IMei(IMei)(varchar(32))、注册IP(RegIP)(varchar(20))
SELECT
l.RowNumber, ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.UserID, l.NickName,
l.IMei, l.RegIP, CONVERT(CHAR(20), l.RegTime, 120) AS RegTime, l.deviceid, l.Lv, l.Exp, l.GuideStep,
l.UTMSource, CONVERT(CHAR(20), l.LoginTime, 120) AS LoginTime, l.Amount, l.DeviceName, l.PayMoney
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetRegLogList_V2] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetRegLogList_V2]
-- @PartnerID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 流量渠道注册日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetRegLogList_V2]
@UTMSources VARCHAR(1024), --合作商ID
@Lv TINYINT, --等级
@Exp INT, --经验
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @SourceName VARCHAR(32) --源名称
DECLARE @StartIndex INT --起始
DECLARE @EndIndex INT --截止
DECLARE @tmpSource TABLE(
SourceName VARCHAR(32) NOT NULL
)
--表变量
DECLARE @tmptable TABLE(
PartnerID INT NOT NULL, --合作商ID
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
IMei VARCHAR(64) NOT NULL, --IMei
RegIP VARCHAR(16) NOT NULL, --注册IP
RegTime DATETIME NOT NULL, --注册时间
deviceid VARCHAR(64) NOT NULL, --设备号
Lv INT NOT NULL, --等级
Exp INT NOT NULL, --经验值
GuideStep INT NOT NULL, --新手指引
UTMSource NVARCHAR(1024) NOT NULL, --流量渠道
PayMoney DECIMAL(18, 2) NOT NULL, --累计充值
DeviceName VARCHAR(32) NOT NULL, --设备名称
LoginTime DATETIME NOT NULL, --登录时间
Amount BIGINT NOT NULL, --金币
Version INT NOT NULL --版本号
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @StartIndex = 0
SET @EndIndex = 0
WHILE(1=1)
BEGIN
SET @EndIndex = CHARINDEX(',', @UTMSources, @StartIndex)
IF(@EndIndex <= 0)
BREAK
SET @SourceName = CAST(SUBSTRING(@UTMSources, @StartIndex, @EndIndex - @StartIndex) AS VARCHAR(32))
INSERT INTO @tmpSource(SourceName) VALUES(@SourceName)
SET @StartIndex = @EndIndex + 1
END
--初始化数据
INSERT INTO @tmptable
(
PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
Lv, Exp, GuideStep, UTMSource, DeviceName, PayMoney, LoginTime, Amount, Version
)
SELECT
RegPartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid,
1, 0, 0, 'unknown', DeviceName, PayMoney, LoginTime, 0, Version
FROM
[AllUser]
WHERE
RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--获取流量渠道
UPDATE t SET t.UTMSource = u.Source FROM @tmptable t INNER JOIN [UTM] u ON t.UserID = u.UserID AND u.Source != ''
--获取等级、经验
UPDATE t SET t.Lv = v.Lv, t.Exp = v.Exp FROM @tmptable t INNER JOIN [UserLevel] v ON t.UserID = v.UserID
--获取金豆信息
UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
--删除不合条件的数据
DELETE FROM @tmptable WHERE Lv < @Lv
DELETE FROM @tmptable WHERE Exp < @Exp
DELETE FROM @tmptable WHERE UTMSource NOT IN (SELECT SourceName FROM @tmpSource)
--获取新手指引
UPDATE t SET t.GuideStep = ut.Status FROM @tmptable t INNER JOIN [UserTask] ut ON t.UserID = ut.UserID AND ut.TaskID = 20014
--总记录数
SELECT @RecordCount = COUNT(*) FROM @tmptable
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY RegTime DESC) AS RowNumber,
PartnerID, UserID, NickName, IMei, RegIP, RegTime, deviceid, Lv, Exp, GuideStep, UTMSource,
DeviceName, PayMoney, LoginTime, Amount, Version
FROM
@tmptable
)
--返回信息:合作商名称(PartnerName)(varchar(32))、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、
-- IMei(IMei)(varchar(32))、注册IP(RegIP)(varchar(20))
SELECT
l.RowNumber, ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.UserID, l.NickName,
l.IMei, l.RegIP, CONVERT(CHAR(20), l.RegTime, 120) AS RegTime, l.deviceid, l.Lv, l.Exp, l.GuideStep, l.UTMSource,
l.DeviceName, l.PayMoney, CONVERT(CHAR(20), l.LoginTime, 120) AS LoginTime, l.Amount, l.Version
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetSimpleInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetSimpleInfo]
-- =============================================
-- Author: wolf
-- Create Date: 2016-10-21
-- Mendor: wolf
-- Alter Date: 2016-10-21
-- Description: 后台用户简单信息
-- =============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetSimpleInfo]
@UserID INT, --用户ID
@NickName NVARCHAR(32) --昵称
AS
SET NOCOUNT ON -- 节约反馈资源
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NewUserID INT --用户ID
DECLARE @NewNickName NVARCHAR(32) --昵称
DECLARE @Amount BIGINT --金额
DECLARE @Bank BIGINT --保险柜
DECLARE @ChipAmount BIGINT --筹码金额
DECLARE @ChipBank BIGINT --筹码保险柜
SET @NewUserID = 0
SET @NewNickName = ''
SET @Amount = 0
SET @Bank = 0
SET @ChipAmount = 0
SET @ChipBank = 0
--查询某个账号
IF(@UserID > 0)
BEGIN
SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE UserID = @UserID
END
--查询昵称
ELSE
BEGIN
SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE NickName = @NickName
END
--有账号信息,查询金币信息
IF(@NewUserID > 0)
BEGIN
--金币
EXEC [p_if_getmoney] @userid = @NewUserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @NewUserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
END
--返回信息
SELECT
@NewUserID AS UserID, @NewNickName AS NickName, @Amount AS Amount, @Bank AS Bank,
@ChipAmount AS ChipAmount, @ChipBank AS ChipBank
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetTags] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetTags]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 获取用户标签信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetTags]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME
DECLARE @RowCount INT --记录数
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
VipLevel INT NOT NULL, --VIP等级
PayMoney DECIMAL(18, 2) NOT NULL, --充值累计
LastPayTime DATETIME NOT NULL --最近支付时间
)
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--初始化
INSERT INTO @tmptable
(
UserID, NickName, VipLevel, PayMoney, LastPayTime
)
SELECT
UserID, '', 0, SUM(RMBMoney), MAX(DateFlag)
FROM
[UserPayLog]
GROUP BY
UserID
SET @RowCount = @@ROWCOUNT
--初始化
INSERT INTO @tmptable
(
UserID, NickName, VipLevel, PayMoney, LastPayTime
)
SELECT
UserID, '', 0, SUM(Price), MAX(Crdate)
FROM
[KayaPay]
GROUP BY
UserID
SET @RowCount = @RowCount + @@ROWCOUNT
--初始化
INSERT INTO @tmptable
(
UserID, NickName, VipLevel, PayMoney, LastPayTime
)
SELECT
UserID, '', 0, SUM(Price), MAX(Crdate)
FROM
[FlashPay]
GROUP BY
UserID
SET @RowCount = @RowCount + @@ROWCOUNT
--初始化
INSERT INTO @tmptable
(
UserID, NickName, VipLevel, PayMoney, LastPayTime
)
SELECT
UserID, '', 0, SUM(Price), MAX(Crdate)
FROM
[DingpeiPay]
GROUP BY
UserID
SET @RowCount = @RowCount + @@ROWCOUNT
--有记录
IF(@RowCount > 0)
BEGIN
--获取VIP等级
UPDATE t SET t.VipLevel = v.VipLevel FROM @tmptable t INNER JOIN [UserVIP] v ON t.UserID = v.UserID
--昵称
UPDATE t SET t.NickName = u.NickName FROM @tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
END
--返回信息
SELECT
UserID, VipLevel, PayMoney,
CASE
WHEN @DateFlag - 7 <= LastPayTime THEN 3 --只要玩家最近一周时间内进行充值后,玩家昵称、id显示为红色
WHEN @DateFlag - 30 <= LastPayTime THEN 2 --只要玩家最近一个月时间内有充值,玩家昵称、id显示为橙色
ELSE 1 --只要玩家有充值则玩家昵称、id显示为黄色
END AS ColorValue, NickName
FROM
@tmptable
ORDER BY
ColorValue DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetTrack] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetTrack]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 用户足迹
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetTrack]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
Level_1 NVARCHAR(32) NOT NULL, --1级类目
Level_2 NVARCHAR(32) NOT NULL, --2级类目
Level_3 NVARCHAR(32) NOT NULL, --3级类目
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--初始化数据
INSERT INTO @tmptable(
Level_1, Level_2, Level_3, Crdate
)
SELECT
Level_1, Level_2, Level_3, Crdate
FROM
[UserTrack]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
UNION ALL
SELECT
Level_1, Level_2, Level_3, Crdate
FROM
[UserTrackHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate ASC) AS RowNumber,
Level_1, Level_2, Level_3, Crdate
FROM
@tmptable
)
--返回信息
SELECT
RowNumber, CONVERT(CHAR(23), Crdate, 121) AS Crdate, Level_1, Level_2, Level_3
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AllUser_GetUserID] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AllUser_GetUserID]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取用户ID(根据昵称)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AllUser_GetUserID]
@UserID INT, --用户ID
@NickName NVARCHAR(32), --昵称
@NewUserID INT OUTPUT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @NewUserID = 0
--根据昵称查询
IF(LEN(@NickName) > 0)
BEGIN
SELECT @NewUserID = UserID FROM [AllUser] WHERE NickName = @NickName
END
--其他
ELSE IF(@UserID > 0)
BEGIN
SELECT @NewUserID = UserID FROM [AllUser] WHERE UserID = @UserID
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Announce_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Announce_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 删除公告
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Announce_Del]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@Rid INT, --标识
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
--删除公告
DELETE FROM [Announce] WHERE Rid = @Rid
SET @Msg = N'删除系统公告,Rid=' + LTRIM(STR(@Rid))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Announce_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Announce_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 公告列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Announce_GetList]
@Rid INT --标识
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@Rid > 0)
BEGIN
SELECT
Rid, Title_En, Content_En, Title_Eg, Content_Eg,
Priority, Version, CONVERT(VARCHAR(20), BeginTime, 120) AS BeginTime,
CONVERT(VARCHAR(20), EndTime, 120) AS EndTime, Enabled,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[Announce]
WHERE
Rid = @Rid
RETURN
END
SELECT
Rid, Title_En, Content_En, Title_Eg, Content_Eg,
Priority, Version, CONVERT(VARCHAR(20), BeginTime, 120) AS BeginTime,
CONVERT(VARCHAR(20), EndTime, 120) AS EndTime, Enabled,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[Announce]
ORDER BY
Rid DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Announce_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Announce_Send]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 发布公告
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Announce_Send]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@Title_En NVARCHAR(32), --英文标题
@Content_En NVARCHAR(4000), --英文内容
@Title_Eg NVARCHAR(32), --埃及标题
@Content_Eg NVARCHAR(4000), --埃及内容
@Priority TINYINT, --优先级,5个等级,5优先级最高,1优先级最低
@Version INT, --版本号
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@Enabled TINYINT, --是否启用
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @Rid INT
--初始化
INSERT INTO [Announce]
(
Title_En, Content_En, Title_Eg, Content_Eg, Priority, Version,
BeginTime, EndTime, Enabled, Crdate
)
VALUES
(
@Title_En, @Content_En, @Title_Eg, @Content_Eg, @Priority, @Version,
@BeginTime, @EndTime, @Enabled, GETDATE()
)
SET @Rid = SCOPE_IDENTITY()
SET @Msg = N'发布系统公告,Title=' + @Title_En + '(' + @Title_Eg + '),Rid=' + LTRIM(STR(@Rid))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Announce_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Announce_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 修改公告
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Announce_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@Rid INT, --标识
@Title_En NVARCHAR(32), --英文标题
@Content_En NVARCHAR(4000), --英文内容
@Title_Eg NVARCHAR(32), --埃及标题
@Content_Eg NVARCHAR(4000), --埃及内容
@Priority TINYINT, --优先级,5个等级,5优先级最高,1优先级最低
@Version INT, --版本号
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@Enabled TINYINT, --是否启用
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
--修改
UPDATE
[Announce]
SET
Title_En = @Title_En, Content_En = @Content_En,
Title_Eg = @Title_Eg, Content_Eg = @Content_Eg,
Priority = @Priority, Version = @Version,
BeginTime = @BeginTime, EndTime = @EndTime, Enabled = @Enabled
WHERE
Rid = @Rid
SET @Rid = SCOPE_IDENTITY()
SET @Msg = N'修改系统公告,Title=' + @Title_En + '(' + @Title_Eg + '),Rid=' + LTRIM(STR(@Rid))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Apple_GetErrorList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_Apple_GetErrorList]
-- @PartnerID = 10001,
-- @UserID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-23
-- Mendor: wolf
-- Alter Date: 2015-09-16
-- Description: 苹果--充值错误列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Apple_GetErrorList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
PartnerID INT NOT NULL, --合作商ID
UserID INT NOT NULL, --用户ID
ErrorMsg VARCHAR(1024) NOT NULL, --错误消息
Crdate DATETIME NOT NULL, --创建时间
NickName NVARCHAR(32) NOT NULL, --昵称
IPAddress VARCHAR(16) NOT NULL --IP地址
)
--用户查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
PartnerID, UserID, ErrorMsg, Crdate, NickName, IPAddress
)
SELECT
url.PartnerID, ael.UserID, ael.ErrorMsg, ael.Crdate, url.NickName, ael.IPAddress
FROM
[VerifyErrorLog] ael INNER JOIN [AllUser] url ON ael.UserID = url.UserID
WHERE
ael.UserID = @UserID AND ael.Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
ael.Crdate DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--时间段内所有记录
ELSE
BEGIN
INSERT INTO @tmptable
(
PartnerID, UserID, ErrorMsg, Crdate, NickName, IPAddress
)
SELECT
url.PartnerID, ael.UserID, ael.ErrorMsg, ael.Crdate, url.NickName, ael.IPAddress
FROM
[VerifyErrorLog] ael INNER JOIN [AllUser] url ON ael.UserID = url.UserID
WHERE
ael.Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
ael.Crdate DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
PartnerID, UserID, ErrorMsg, Crdate, NickName, IPAddress
FROM
@tmptable
)
--返回信息:用户ID(UserID)(int)、用户名称(NickName)(varchar(32))、错误消息(ErrorMsg)(int)、
-- 创建时间(Crdate)(varchar(16))、合作商名称(PartnerName)(varchar)
SELECT
l.UserID, l.NickName, l.ErrorMsg, CONVERT(CHAR(16), l.Crdate, 120) AS Crdate,
ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.IPAddress
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Apple_GetLogList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_Apple_GetLogList]
-- @UserID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-23
-- Mendor: wolf
-- Alter Date: 2015-09-16
-- Description: 苹果--充值日志列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Apple_GetLogList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
PartnerID INT NOT NULL, --合作商ID
UserID INT NOT NULL, --用户ID
ReceiptBuffer VARCHAR(4096) NOT NULL, --内容
Crdate DATETIME NOT NULL, --创建时间
NickName NVARCHAR(32) NOT NULL, --昵称
IPAddress VARCHAR(16) NOT NULL --IP地址
)
--用户查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
PartnerID, UserID, ReceiptBuffer, Crdate, NickName, IPAddress
)
SELECT
url.PartnerID, p.UserID, p.ReceiptBuffer, p.Crdate, url.NickName, p.IPAddress
FROM
[VerifyLog] p INNER JOIN [AllUser] url ON p.UserID = url.UserID
WHERE
p.UserID = @UserID AND p.Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
p.Crdate DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--时间段内所有记录
ELSE
BEGIN
INSERT INTO @tmptable
(
PartnerID, UserID, ReceiptBuffer, Crdate, NickName, IPAddress
)
SELECT
url.PartnerID, p.UserID, p.ReceiptBuffer, p.Crdate, url.NickName, p.IPAddress
FROM
[VerifyLog] p INNER JOIN [AllUser] url ON p.UserID = url.UserID
WHERE
p.Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
p.Crdate DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
PartnerID, UserID, ReceiptBuffer, Crdate, NickName, IPAddress
FROM
@tmptable
)
--返回信息:用户ID(UserID)(int)、用户名称(NickName)(varchar(32))、内容(ReceiptBuffer)(int)、创建时间(Crdate)(varchar(16))
SELECT
l.UserID, l.NickName, ReceiptBuffer, CONVERT(CHAR(16), l.Crdate, 120) AS Crdate,
ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.IPAddress
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_BlackIdentity] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_BlackIdentity]
-- @RoomID = 1
-- @BlackType = 2
-- @BeginTime = '2023-05-01 00:00:00'
-- @EndTime = '2023-06-30 23:59:59'
-- @PageIndex = 1
-- @PageSize = 50
-- @RecordCount = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 获取语聊房的黑名单列表(含用户身份)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_BlackIdentity]
@RoomID INT, -- 房间ID
@BlackType INT, -- 黑名单的类型(1:房间,2:麦位)
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT -- 记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
-- 创建临时表变量
DECLARE @tmptable TABLE(
RoomID INT NOT NULL, -- 房间ID
UserID INT NOT NULL, -- 用户ID
ExpireTime DATETIME NOT NULL -- 过期时间戳
)
INSERT INTO @tmptable
(
RoomID, UserID, ExpireTime
)
SELECT
RoomID, UserID, ExpireTime
FROM
[AudioRoomBlack]
WHERE
-- ExpireTime BETWEEN @BeginTime AND @EndTime AND
RoomID = CASE
WHEN @RoomID > 0 THEN @RoomID
ELSE RoomID
END
AND BlackType = CASE
WHEN @BlackType > 0 THEN @BlackType
ELSE BlackType
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ExpireTime ASC) AS RowNumber,
RoomID, UserID, ExpireTime
FROM
@tmptable
)
-- 返回信息
SELECT
l.UserID, u.NickName, r.RoleID, r.Level, [dbo].fn_TimeToStamp(l.ExpireTime) AS ExpireTime,
CONVERT(CHAR(20), r.Crdate, 120) AS Crdate
FROM
[List] AS l
INNER JOIN [UserAudioRoom] AS r ON l.UserID = r.UserID AND l.RoomID = r.RoomID
INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetAllRoom] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetAllRoom]
-- @RoomID = 1,
-- @RoomName = '',
-- @BeginTime = '2023-06-21 00:00:00',
-- @EndTime = '2023-06-21 23:59:59',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @SortName = 'Level',
-- @SortType = 'ASC',
-- @RecordCount = @RecordCount OUTPUT
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-26
-- Mendor: wolf
-- Alter Date: 2023-06-26
-- Description: 获取语音房的所有房间
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetAllRoom]
@RoomID INT, -- 房间ID
@RoomName NVARCHAR(32), -- 房间名称
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@SortName VARCHAR(16), -- 排序名称
@SortType CHAR(4), -- 排序类型
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
RoomID INT NOT NULL, -- 房间ID
RoomName NVARCHAR(32) NOT NULL, -- 房间名称
UserID INT NOT NULL, -- 用户ID
Level INT NOT NULL, -- 等级
Exps INT NOT NULL, -- 经验
MemberCount INT NOT NULL, -- 会员数
Crdate DATETIME NOT NULL, -- 创建时间
CollectDiamond INT NOT NULL, -- 钻石收益
DiamondAmount INT NOT NULL, -- 钻石消耗数量
CollectGold INT NOT NULL, -- 金币收益
GoldAmount INT NOT NULL -- 金币消耗数量
)
-- 创建一个表变量来存储收益总和
DECLARE @IncomeTotals TABLE (
UserID INT NOT NULL, -- 用户ID
TotalCollectDiamond INT NOT NULL, -- 钻石收益总和
TotalCollectGold INT NOT NULL -- 金币收益总和
)
INSERT INTO @tmptable
(
RoomID, RoomName, UserID, [Level], Exps, MemberCount, Crdate, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
)
SELECT
RoomID, RoomName, UserID, [Level], Exps, MemberCount, Crdate, 0, 0, 0, 0
FROM
[AudioRoom]
WHERE
-- Crdate BETWEEN @BeginTime AND @EndTime AND
RoomID = CASE -- 查询某个房间ID
WHEN @RoomID > 0 THEN @RoomID
ELSE RoomID
END
AND RoomName = CASE -- 查询某个房间名称
WHEN @RoomName != '' THEN @RoomName
ELSE RoomName
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
-- 计算收益总和并插入到表变量中
INSERT INTO @IncomeTotals
(
UserID, TotalCollectDiamond, TotalCollectGold
)
SELECT
UserID,
SUM(CASE WHEN ItemType = 2 THEN TotalProfit ELSE 0 END) AS TotalCollectDiamond,
SUM(CASE WHEN ItemType = 1 THEN TotalProfit ELSE 0 END) AS TotalCollectGold
FROM
[UserIncome]
GROUP BY
UserID
-- 更新 @tmptable 表中的 CollectDiamond 和 CollectGold 字段
UPDATE t
SET t.CollectDiamond = COALESCE(it.TotalCollectDiamond, 0),
t.CollectGold = COALESCE(it.TotalCollectGold, 0)
FROM
@tmptable AS t
INNER JOIN @IncomeTotals AS it ON t.RoomID = it.UserID
-- 钻石、金币消耗总和
UPDATE t
SET t.DiamondAmount = COALESCE(agh.TotalDiamondAmount, 0),
t.GoldAmount = COALESCE(agh.TotalGoldAmount, 0)
FROM
@tmptable AS t
INNER JOIN (
SELECT
RoomID,
SUM(DiamondAmount) AS TotalDiamondAmount,
SUM(GoldAmount) AS TotalGoldAmount
FROM
[AudioRoomGiftHistory]
GROUP BY
RoomID
) AS agh ON t.RoomID = agh.RoomID;
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY
CASE WHEN @SortName = 'Level' AND @SortType = 'ASC' THEN Level END ASC, -- 房间等级
CASE WHEN @SortName = 'Level' AND @SortType = 'DESC' THEN Level END DESC,
CASE WHEN @SortName = 'Level' AND @SortType = 'ASC' THEN Exps END ASC, -- 经验值
CASE WHEN @SortName = 'Level' AND @SortType = 'DESC' THEN Exps END DESC,
CASE WHEN @SortName = 'MemberCount' AND @SortType = 'ASC' THEN MemberCount END ASC, -- 成员数量
CASE WHEN @SortName = 'MemberCount' AND @SortType = 'DESC' THEN MemberCount END DESC,
CASE WHEN @SortName = 'CollectDiamond' AND @SortType = 'ASC' THEN CollectDiamond END ASC, -- 钻石收益
CASE WHEN @SortName = 'CollectDiamond' AND @SortType = 'DESC' THEN CollectDiamond END DESC,
CASE WHEN @SortName = 'DiamondAmount' AND @SortType = 'ASC' THEN DiamondAmount END ASC, -- 钻石消耗数量
CASE WHEN @SortName = 'DiamondAmount' AND @SortType = 'DESC' THEN DiamondAmount END DESC,
CASE WHEN @SortName = 'CollectGold' AND @SortType = 'ASC' THEN CollectGold END ASC, -- 金币收益
CASE WHEN @SortName = 'CollectGold' AND @SortType = 'DESC' THEN CollectGold END DESC,
CASE WHEN @SortName = 'GoldAmount' AND @SortType = 'ASC' THEN GoldAmount END ASC, -- 金币消耗数量
CASE WHEN @SortName = 'GoldAmount' AND @SortType = 'DESC' THEN GoldAmount END DESC,
Crdate DESC
) AS RowNumber,
RoomID, RoomName, UserID, Level, Exps, MemberCount, Crdate, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
FROM
@tmptable
)
-- 返回信息
SELECT
l.RoomID, l.RoomName, l.UserID, u.NickName, l.Level, l.Exps, l.MemberCount, l.CollectDiamond,
l.DiamondAmount, l.CollectGold, l.GoldAmount, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] AS l
INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetAllRoomExpend] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetAllRoomExpend]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-30
-- Mendor: wolf
-- Alter Date: 2023-06-30
-- Description: 获取全部房间的消耗情况
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetAllRoomExpend]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
RoomID INT NOT NULL, -- 房间ID
CollectDiamond INT NOT NULL, -- 钻石收益
DiamondAmount INT NOT NULL, -- 钻石消耗数量
CollectGold INT NOT NULL, -- 金币收益
GoldAmount INT NOT NULL -- 金币消耗数量
)
-- 创建一个表变量来存储收益总和
DECLARE @IncomeTotals TABLE (
UserID INT NOT NULL, -- 用户ID
TotalCollectDiamond INT NOT NULL, -- 钻石收益总和
TotalCollectGold INT NOT NULL -- 金币收益总和
)
INSERT INTO @tmptable
(
RoomID, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
)
SELECT
RoomID, 0, 0, 0, 0
FROM
[AudioRoom]
-- 计算收益总和并插入到表变量中
INSERT INTO @IncomeTotals
(
UserID, TotalCollectDiamond, TotalCollectGold
)
SELECT
UserID,
SUM(CASE WHEN ItemType = 2 THEN TotalProfit ELSE 0 END) AS TotalCollectDiamond,
SUM(CASE WHEN ItemType = 1 THEN TotalProfit ELSE 0 END) AS TotalCollectGold
FROM
[UserIncome]
GROUP BY
UserID
-- 更新 @tmptable 表中的 CollectDiamond 和 CollectGold 字段
UPDATE t
SET t.CollectDiamond = COALESCE(it.TotalCollectDiamond, 0),
t.CollectGold = COALESCE(it.TotalCollectGold, 0)
FROM
@tmptable AS t
INNER JOIN @IncomeTotals AS it ON t.RoomID = it.UserID
-- 钻石、金币消耗总和
UPDATE t
SET t.DiamondAmount = COALESCE(agh.TotalDiamondAmount, 0),
t.GoldAmount = COALESCE(agh.TotalGoldAmount, 0)
FROM
@tmptable AS t
INNER JOIN (
SELECT
RoomID,
SUM(DiamondAmount) AS TotalDiamondAmount,
SUM(GoldAmount) AS TotalGoldAmount
FROM
[AudioRoomGiftHistory]
GROUP BY
RoomID
) AS agh ON t.RoomID = agh.RoomID;
-- 返回信息
SELECT
RoomID, CollectDiamond, DiamondAmount, CollectGold, GoldAmount
FROM
@tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetExtraInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetExtraInfo]
-- @RoomId = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-27
-- Mendor: wolf
-- Alter Date: 2023-06-27
-- Description: 获取语聊房的额外信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetExtraInfo]
@RoomId INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Rid INT -- 房间ID
DECLARE @RoomName NVARCHAR(32) -- 房间名称
DECLARE @RoomImg VARCHAR(256) -- 房间图片
DECLARE @Family NVARCHAR(32) -- 家族
DECLARE @Country NVARCHAR(32) -- 国家
DECLARE @Language NVARCHAR(32) -- 语言
DECLARE @JoinFee INT -- 入会费
DECLARE @Announce NVARCHAR(256) -- 公告内容
DECLARE @Tag NVARCHAR(32) -- 标签
DECLARE @MemberCount INT -- 会员数
DECLARE @Crdate DATETIME -- 创建日期
DECLARE @Level INT -- 等级
DECLARE @Exps INT -- 经验值
DECLARE @CollectDiamond INT -- 钻石收益
DECLARE @DiamondAmount INT -- 钻石消耗数量
DECLARE @CollectGold INT -- 金币收益
DECLARE @GoldAmount INT -- 金币消耗数量
DECLARE @MicInfo VARCHAR(1024) -- 麦位信息
-- 房间信息
SELECT
@Rid = RoomID, @RoomName = RoomName, @RoomImg = RoomImg, @Family = Family,
@Country = Country, @Language = [Language], @JoinFee = JoinFee, @Announce = Announce,
@Tag = Tag, @MemberCount = MemberCount, @Crdate = Crdate, @Level = [Level], @Exps = Exps
FROM
[AudioRoom]
WHERE
RoomID = @RoomId
IF(@@ROWCOUNT = 0)
RETURN
-- 钻石、金币收益
SELECT
@CollectDiamond = SUM(CASE WHEN ItemType = 2 THEN TotalProfit ELSE 0 END),
@CollectGold = SUM(CASE WHEN ItemType = 1 THEN TotalProfit ELSE 0 END)
FROM
[UserIncome]
WHERE
UserID = @RoomId
-- 钻石、金币消耗数量
SELECT
@DiamondAmount = SUM(DiamondAmount),
@GoldAmount = SUM(GoldAmount)
FROM
[AudioRoomGiftHistory]
WHERE
RoomID = @RoomId
-- 麦位信息
SELECT
@MicInfo = MicInfo
FROM
[AudioRoomMic]
WHERE
RoomID = @RoomId
-- 返回结果
SELECT
@Rid AS RoomId, @RoomName AS RoomName, @RoomImg AS RoomImg, @Family AS Family,
@Country AS Country, @Language AS [Language], @JoinFee AS JoinFee, @Announce AS Announce,
@Tag AS Tag, @MemberCount AS MemberCount, CONVERT(CHAR(20), @Crdate, 120) AS Crdate, @Level AS [Level],
@Exps AS Exps, ISNULL(@CollectDiamond, 0) AS CollectDiamond, ISNULL(@DiamondAmount, 0) AS DiamondAmount,
ISNULL(@CollectGold, 0) AS CollectGold, ISNULL(@GoldAmount, 0) AS GoldAmount, @MicInfo AS MicInfo
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomLogRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetRoomLogRecord]
-- @RoomID = 1,
-- @BeginTime = '2023-06-21 00:00:00',
-- @EndTime = '2023-06-21 23:59:59',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-04
-- Mendor: wolf
-- Alter Date: 2023-07-04
-- Description: 获取房内操作记录
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomLogRecord]
@RoomID INT, -- 房间ID
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
Rid INT IDENTITY NOT NULL, -- 自增
RoomID INT NOT NULL, -- 房间ID
UserID INT NOT NULL, -- 用户ID
ToUserID INT NOT NULL, -- 对象用户ID
OperateType TINYINT NOT NULL, -- 操作类型(11=踢麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
Crdate DATETIME NOT NULL -- 创建时间
)
-- 指定某个房间
INSERT INTO @tmptable
(
RoomID, UserID, ToUserID, OperateType, Crdate
)
SELECT
RoomID, UserID, ToUserID, OperateType, Crdate
FROM
[AudioRoomOperateLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
AND RoomID = CASE
WHEN @RoomID > 0 THEN @RoomID
ELSE RoomID
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
RoomID, UserID, ToUserID, OperateType, Crdate
FROM
@tmptable
)
-- 返回信息
SELECT
RoomID, UserID, ToUserID, OperateType, CONVERT(CHAR(20), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomMember] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetRoomMember]
-- @RoomID = 1,
-- @BeginTime = '2023-06-21 00:00:00',
-- @EndTime = '2023-06-21 23:59:59',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-30
-- Mendor: wolf
-- Alter Date: 2023-06-30
-- Description: 获取语聊房的成员信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomMember]
@RoomID INT, -- 房间ID
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
RoomID INT NOT NULL, -- 房间id
UserID INT NOT NULL, -- 用户id
RoleID TINYINT NOT NULL, -- 角色ID(0=关注 1=管理员 2=助理 3=成员)
Exps INT NOT NULL, -- 经验值
Level INT NOT NULL, -- 等级
Crdate DATETIME NOT NULL -- 创建日期
)
INSERT INTO @tmptable
(
RoomID, UserID, RoleID, Exps, Level, Crdate
)
SELECT
RoomID, UserID, RoleID, Exps, Level, Crdate
FROM
[UserAudioRoom]
WHERE
-- Crdate BETWEEN @BeginTime AND @EndTime AND
RoomID = CASE
WHEN @RoomID > 0 THEN @RoomID
ELSE RoomID
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY
CASE
WHEN RoleID > 0 THEN RoleID
ELSE 99
END ASC,
Exps DESC, Level DESC, Crdate DESC
) AS RowNumber,
RoomID, UserID, RoleID, Exps, Level, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.RoomID, l.UserID, u.NickName, l.RoleID, l.Exps, l.Level, CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] AS l INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomMicLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetRoomMicLog]
-- @RoomId = 0 -- 房间ID
-- @RoomName = '' -- 房间昵称(暂不支持)
-- @UserId = 0 -- 用户ID
-- @NickName = '' -- 用户昵称(暂不支持)
-- @BeginTime = '' -- 开始时间
-- @EndTime = '' -- 结束时间
-- @PageIndex = 1 -- 页索引
-- @PageSize = 50 -- 页大小
-- @RecordCount = 0 -- 记录数
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-27
-- Mendor: wolf
-- Alter Date: 2023-06-27
-- Description: 获取房间上下麦日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomMicLog]
@RoomId INT, -- 房间ID
@RoomName NVARCHAR(32), -- 房间昵称
@UserId INT, -- 用户ID
@NickName NVARCHAR(32), -- 用户昵称
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT -- 记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
RoomID INT NOT NULL, -- 房间ID
RoomName NVARCHAR(32) NOT NULL, -- 房间名称
UserID INT NOT NULL, -- 用户ID
NickName NVARCHAR(32) NOT NULL, -- 用户昵称
RoleID TINYINT NOT NULL, -- 用户身份 【角色ID】 (0=关注 1=管理员 2=助理 3=成员)
MicMode TINYINT NOT NULL, -- 麦位模式(上麦方式)
OnMicTime DATETIME NOT NULL, -- 上麦时间
OffMicTime DATETIME NOT NULL, -- 下麦时间
Seconds INT NOT NULL, -- 时长
OpUserID INT NOT NULL, -- 操作人ID
OpUserRoleID TINYINT NOT NULL -- 操作人身份 【角色ID】 (0=关注 1=管理员 2=助理 3=成员)
)
INSERT INTO @tmptable
(
RoomID, RoomName, UserID, NickName, RoleID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID, OpUserRoleID
)
SELECT
RoomID, '', UserID, '', RoleID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID, 0
FROM
[RoomMicLog]
WHERE
OffMicTime BETWEEN @BeginTime AND @EndTime
AND RoomID = CASE -- 查询某个房间ID
WHEN @RoomId > 0 THEN @RoomId
ELSE RoomID
END
AND UserID = CASE -- 查询某个用户ID
WHEN @UserId > 0 THEN @UserId
ELSE UserID
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
-- 修改临时表变量的房间名称
UPDATE t SET t.RoomName = r.RoomName FROM @tmptable AS t INNER JOIN [AudioRoom] AS r ON t.RoomID = r.RoomID
-- 修改临时表变量的用户昵称
UPDATE t SET t.NickName = u.NickName FROM @tmptable AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
-- 修改临时表变量的操作人角色ID
UPDATE t SET t.OpUserRoleID = ua.RoleID FROM @tmptable AS t INNER JOIN [UserAudioRoom] AS ua ON t.RoomID = ua.RoomID AND t.OpUserID = ua.UserID
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY OffMicTime DESC) AS RowNumber,
RoomID, RoomName, UserID, NickName, RoleID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID, OpUserRoleID
FROM
@tmptable
)
-- 返回信息
SELECT
RoomID, RoomName, UserID, NickName, RoleID, MicMode,
CONVERT(CHAR(20), OnMicTime, 120) AS OnMicTime, CONVERT(CHAR(20), OffMicTime, 120) AS OffMicTime,
Seconds, OpUserID, OpUserRoleID
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetRoomTaskList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetRoomTaskList]
-- @RoomID = 0
-- @BeginTime = '2023-08-10 00:00:00'
-- @EndTime = '2023-08-10 00:00:00'
-- @PageIndex = 0
-- @PageSize = 0
-- @RecordCount = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取房间的任务列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetRoomTaskList]
@RoomID INT, --房间ID
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
Rid INT IDENTITY NOT NULL, -- 自增
RoomID INT NOT NULL, -- 房间ID
TaskID INT NOT NULL, -- 任务ID
Schedule INT NOT NULL, -- 进度
CurrNum INT NOT NULL, -- 当前数值
UpdateTime DATETIME NOT NULL -- 更新时间
)
IF(@RoomID > 0)
BEGIN
-- 指定某个房间
INSERT INTO @tmptable
(
RoomID, TaskID, Schedule, CurrNum, UpdateTime
)
SELECT
RoomID, TaskID, Schedule, CurrNum, UpdateTime
FROM
[RoomTask]
WHERE
UpdateTime BETWEEN @BeginTime AND @EndTime AND RoomID = @RoomID
END
ELSE
BEGIN
-- 指定某个房间
INSERT INTO @tmptable
(
RoomID, TaskID, Schedule, CurrNum, UpdateTime
)
SELECT
RoomID, TaskID, Schedule, CurrNum, UpdateTime
FROM
[RoomTask]
WHERE
UpdateTime BETWEEN @BeginTime AND @EndTime
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY UpdateTime DESC) AS RowNumber,
RoomID, TaskID, Schedule, CurrNum, UpdateTime
FROM
@tmptable
)
-- 返回信息
SELECT
RoomID, TaskID, Schedule, CurrNum, CONVERT(CHAR(20), UpdateTime, 120) AS UpdateTime
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_AudioRoom_GetUserRoomTaskList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_AudioRoom_GetUserRoomTaskList]
-- @RoomID = 0
-- @UserID = 0
-- @PageIndex = 0
-- @PageSize = 0
-- @RecordCount = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取用户的房间任务
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_AudioRoom_GetUserRoomTaskList]
@RoomID INT, --房间ID
@UserID INT, --用户ID
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
RoomID INT NOT NULL, --房间ID
TaskID INT NOT NULL, --任务ID
Schedule INT NOT NULL, --进度
CurrNum INT NOT NULL, --当前数值
Status INT NOT NULL, --状态(0=进行中 1=完成)
UpdateTime DATETIME NOT NULL --更新时间
)
-- 返回结果集
INSERT INTO @tmptable
(
UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
)
SELECT
UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
FROM
[UserRoomTask]
WHERE
RoomID = CASE -- 指定查找某个房间的所有用户
WHEN @RoomID > 0 THEN @RoomID
ELSE RoomID
END
AND UserID = CASE -- 指定查找某个用户所在的房间
WHEN @UserID > 0 THEN @UserID
ELSE UserID
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY UpdateTime DESC, Schedule DESC) AS RowNumber,
UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
FROM
@tmptable
)
-- 返回信息
SELECT
UserID, RoomID, TaskID, Schedule, CurrNum, Status, CONVERT(CHAR(20), UpdateTime, 120) AS UpdateTime
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CardStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CardStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 玩牌统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CardStat_GetList]
@GameID INT, --游戏ID
@TypeID INT, --类型ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
GameID INT NOT NULL, --游戏ID
PlayUserCount INT NOT NULL, --游戏人数
SendAmount BIGINT NOT NULL, --发放
ConsumeAmount BIGINT NOT NULL, --消耗
BreakUserCount INT NOT NULL, --破产人数
BreakTimes INT NOT NULL, --破产次数
PlayCount INT NOT NULL, --游戏局数
PlaySeconds INT NOT NULL, --游戏时长
MidwayUserCount INT NOT NULL, --中途退出人数
MidwayTimes INT NOT NULL --中途退出次数
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--某个标签类型
IF(@TypeID > 0)
BEGIN
IF(@GameID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
FROM
[GameCardStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = @TypeID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
FROM
[GameCardStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND TypeID = @TypeID
END
END
--所有类型
ELSE
BEGIN
IF(@GameID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
FROM
[GameCardStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = 0
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, 0, 0
FROM
[GameCardStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND TypeID = 0
END
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, GameID, PlayUserCount, SendAmount, ConsumeAmount,
BreakUserCount, BreakTimes, PlayCount, PlaySeconds, MidwayUserCount, MidwayTimes
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.GameID, g.EnglishName, l.PlayUserCount,
l.SendAmount, l.ConsumeAmount, l.BreakUserCount, l.BreakTimes,
l.PlayCount, l.PlaySeconds, l.MidwayUserCount, l.MidwayTimes
FROM
[List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Cash_GetTransferLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Cash_GetTransferLog]
-- =============================================
-- Author: wolf
-- Create Date: 2016-08-11
-- Mendor: wolf
-- Alter Date: 2016-08-24
-- Description: 赠送日志列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Cash_GetTransferLog]
@UserID INT, --账号ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT, --总记录数
@OutTotalAmount BIGINT = 0 OUTPUT, --总转出
@InTotalAmount BIGINT = 0 OUTPUT, --总转入
@TotalTaxAmount BIGINT = 0 OUTPUT, --总台费
@AcceptUserID INT --接受账号ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
CurrAmount BIGINT NOT NULL, --操作前
WantAmount BIGINT NOT NULL, --操作
StillAmount BIGINT NOT NULL, --剩余
Action INT NOT NULL, --1=转入 -1=转出
AcceptUserID INT NOT NULL, --接收方ID
AcceptNickName NVARCHAR(32) NOT NULL, --接收方昵称
AcceptCurrAmount BIGINT NOT NULL, --接收方操作前
AcceptWantAmount BIGINT NOT NULL, --接收方操作
AcceptStillAmount BIGINT NOT NULL, --接收方剩余
TaxAmount BIGINT NOT NULL, --台费
Memo NVARCHAR(256) NOT NULL, --备注
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @OutTotalAmount = 0
SET @InTotalAmount = 0
SET @TotalTaxAmount = 0
--查询某个用户
IF(@UserID > 0)
BEGIN
IF(@AcceptUserID > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
)
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[TransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND AcceptUserID = @AcceptUserID
UNION ALL
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[TransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @AcceptUserID AND AcceptUserID = @UserID
--总记录数
SET @RecordCount = @@ROWCOUNT
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
)
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[TransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
UNION ALL
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[TransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND AcceptUserID = @UserID
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--总转出
SELECT @OutTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = -1
--总转入
SELECT @InTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = 1
--总台费
SELECT @TotalTaxAmount = SUM(TaxAmount) FROM @tmptable
SET @OutTotalAmount = ISNULL(@OutTotalAmount, 0)
SET @InTotalAmount = ISNULL(@InTotalAmount, 0)
SET @TotalTaxAmount = ISNULL(@TotalTaxAmount, 0)
END
--查询时间段内该应用的所有数据
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
)
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[TransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
@tmptable
)
--返回信息:标识(Rid)(int)、账号ID(UserID)(int)、昵称(NickName)(varchar(32))、当前钻石(CurrAmount)(int)、
-- 修改钻石(WantAmount)(int)、备注(Memo)(varchar(128))、IP地址(IPAddress)(varchar(16))、时间(Crdate)(varchar)
SELECT
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount,
CASE
WHEN Action = -1 THEN N'赠送'
WHEN Action = 1 THEN N'接收'
ELSE ''
END AS Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, CONVERT(CHAR(20), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CasinoOnline_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2017-02-13
-- Mendor: wolf
-- Alter Date: 2017-02-13
-- Description: 后台管理--解锁金币场
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CasinoOnline_GetInfo]
@UserID INT, --用户ID
@NickName NVARCHAR(32) --昵称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NewUserID INT --用户ID
DECLARE @NewNickName NVARCHAR(32) --昵称
DECLARE @LoginTime DATETIME --登陆时间
DECLARE @ServerName NVARCHAR(32) --服务器名称
SET @NewUserID = 0
SET @NewNickName = ''
SET @LoginTime = 0
SET @ServerName = ''
--用户ID
IF(@UserID > 0)
BEGIN
SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE UserID = @UserID
END
--昵称
ELSE
BEGIN
SELECT @NewUserID = UserID, @NewNickName = NickName FROM [AllUser] WHERE NickName = @NickName
END
--金币锁信息
SELECT @LoginTime = LoginTime, @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
--返回信息
SELECT @NewUserID AS UserID, @ServerName AS NickName, @LoginTime AS LoginTime, @ServerName AS ServerName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_CasinoOnline_GetList]
-- @UserID = 1,
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-01
-- Mendor: wolf
-- Alter Date: 2016-10-10
-- Description: 后台管理--获取在线列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CasinoOnline_GetList]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@PartnerID INT, --渠道ID
@IsChip SMALLINT, --是否元宝 (-1=所有 0=休闲 1=元宝)
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
LoginTime DATETIME NOT NULL, --登陆时间
ServerName NVARCHAR(64) NOT NULL, --服务器名称
PartnerID INT NOT NULL, --渠道ID
GameID INT NOT NULL, --游戏ID
NickName NVARCHAR(32) NOT NULL, --昵称
IPAddress VARCHAR(16) NOT NULL, --IP地址
IsChip TINYINT NOT NULL --是否元宝
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--用户ID
IF(@UserID > 0)
BEGIN
IF(@GameID >= 0)
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.UserID = @UserID AND c.GameID = @GameID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.UserID = @UserID
END
END
--某个渠道
ELSE IF(@PartnerID > 0)
BEGIN
IF(@GameID > 0)
BEGIN
IF(@IsChip != -1)
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
u.PartnerID = @PartnerID AND c.GameID = @GameID AND c.IsChip = @IsChip
END
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
u.PartnerID = @PartnerID AND c.GameID = @GameID
END
END
ELSE
BEGIN
IF(@IsChip != -1)
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
u.PartnerID = @PartnerID AND c.IsChip = @IsChip
END
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
u.PartnerID = @PartnerID
END
END
END
--某个游戏
ELSE IF(@GameID > 0)
BEGIN
IF(@PartnerID > 0)
BEGIN
IF(@IsChip != -1)
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.GameID = @GameID AND u.PartnerID = @PartnerID AND c.IsChip = @IsChip
END
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.GameID = @GameID AND u.PartnerID = @PartnerID
END
END
ELSE
BEGIN
IF(@IsChip != -1)
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.GameID = @GameID AND c.IsChip = @IsChip
END
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.GameID = @GameID
END
END
END
--所有用户
ELSE
BEGIN
IF(@IsChip != -1)
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID AND c.IsChip = @IsChip
END
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, c.GameID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
END
END
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY LoginTime DESC) AS RowNumber,
UserID, LoginTime, ServerName, PartnerID, GameID, NickName, IPAddress, IsChip
FROM
@tmptable
)
--返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、登陆时间(LoginTime)(varchar(16))、服务器名称(ServerName)(varchar(32))
SELECT
l.UserID, l.NickName, CONVERT(CHAR(23), l.LoginTime, 121) AS LoginTime,
CASE
WHEN l.ServerName = '' THEN N'游戏大厅'
ELSE l.ServerName
END AS ServerName,
l.IPAddress, ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName,
CASE
WHEN l.GameID > 0 THEN N'游戏中'
WHEN CHARINDEX(N'练习场', l.ServerName) > 0 THEN N'练习场'
ELSE N'空闲'
END AS GameType, ISNULL(g.ChineseName, N'游戏大厅') AS ChineseName, l.IsChip
FROM
[List] l LEFT JOIN [AllGame] g ON l.GameID = g.GameID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_GetListByGame] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_CasinoOnline_GetListByGame]
-- @UserID = 1,
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-01
-- Mendor: wolf
-- Alter Date: 2016-10-31
-- Description: 后台管理--获取在线列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CasinoOnline_GetListByGame]
@UserID INT, --用户ID
@DBName VARCHAR(32), --数据库名称
@PartnerID INT, --渠道ID
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @GameID INT --游戏ID
--创建临时表
CREATE TABLE #tmptable(
UserID INT NOT NULL, --用户ID
LoginTime DATETIME NOT NULL, --登陆时间
ServerName NVARCHAR(64) NOT NULL, --服务器名称
PartnerID INT NOT NULL, --渠道ID
NickName NVARCHAR(32) NOT NULL, --昵称
IPAddress VARCHAR(16) NOT NULL, --IP地址
IsChip TINYINT NOT NULL --是否元宝
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--游戏ID
SELECT @GameID = GameID FROM [AllGame] WHERE DBName = @DBName
--用户ID
IF(@UserID > 0)
BEGIN
IF(@GameID > 0)
BEGIN
INSERT INTO #tmptable
(
UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.UserID = @UserID AND c.GameID = @GameID
END
ELSE
BEGIN
INSERT INTO #tmptable
(
UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.UserID = @UserID
END
END
--某个渠道
ELSE IF(@PartnerID > 0)
BEGIN
INSERT INTO #tmptable
(
UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
u.PartnerID = @PartnerID
END
--所有用户
ELSE
BEGIN
IF(@GameID > 0)
BEGIN
INSERT INTO #tmptable
(
UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.GameID = @GameID
END
ELSE
BEGIN
INSERT INTO #tmptable
(
UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
)
SELECT
c.UserID, c.LoginTime, c.ServerName, u.PartnerID, u.NickName, u.IPAddress, c.IsChip
FROM
[t_onlineuser] c INNER JOIN [AllUser] u ON c.UserID = u.UserID
END
END
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY LoginTime DESC) AS RowNumber,
UserID, LoginTime, ServerName, PartnerID, NickName, IPAddress, IsChip
FROM
#tmptable
)
--返回信息:用户ID(UserID)(int)、昵称(NickName)(varchar(32))、登陆时间(LoginTime)(varchar(16))、服务器名称(ServerName)(varchar(32))
SELECT
l.UserID, l.NickName, l.LoginTime AS LoginTime, l.ServerName, l.IPAddress,
ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.IsChip
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
--清除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CasinoOnline_Unlock] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CasinoOnline_Unlock]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @UserID = 1,
-- @Memo = '',
-- @Days = 1,
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2017-02-13
-- Mendor: wolf
-- Alter Date: 2017-02-13
-- Description: 后台管理--解锁金币场
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CasinoOnline_Unlock]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @LoginTime DATETIME --登录时间
DECLARE @ServerName NVARCHAR(64) --服务器名称
DECLARE @GameID INT --游戏ID
DECLARE @Msg NVARCHAR(4000) --消息
SET @Retcode = 0
--获取金币锁信息
SELECT @LoginTime = LoginTime, @ServerName = ServerName, @GameID = GameID FROM [CasinoOnline] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
RETURN
END
--解锁
DELETE FROM [CasinoOnline] WHERE UserID = @UserID
--消息
SET @Msg = N'Backstage gold field unlocking, Related information:@UserID=' + LTRIM(STR(@UserID)) + ',@ServerName=' + @ServerName +
',@LoginTime=' + CONVERT(CHAR(16), @LoginTime, 120) + ',@GameID=' + LTRIM(STR(@GameID))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Chip_DelCoin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
WEB通用调用加金币接口
*/
CREATE PROCEDURE [dbo].[Manage_Chip_DelCoin]
@UserID INT,
@SourceName VARCHAR(32), --Web应用名称
@Reason VARCHAR(128),
@WantAmount BIGINT,
@WantBank BIGINT,
@IPAddress VARCHAR(16),
@OpUserID INT,
@OpUserName VARCHAR(32),
@RetCode TINYINT OUTPUT,
@ErrorMsg NVARCHAR(128) OUTPUT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @intCurrentAmount BIGINT
DECLARE @chvDBServerName NVARCHAR(64)
DECLARE @chvRemark VARCHAR(128)
DECLARE @LogType INT
DECLARE @Msg NVARCHAR(4000)
SET @intCurrentAmount = 0
SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
SET @RetCode = 0
SET @ErrorMsg = ''
SET @LogType = 7
IF(@SourceName IS NULL OR @SourceName = '')
BEGIN
SET @SourceName = ''
SET @chvRemark = 'Web application name is empty (deduction) ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 11
SET @ErrorMsg = N'WEB应用名称为空(扣金)'
RETURN
END
IF(@UserID IS NULL OR @UserID <= 0)
BEGIN
SET @UserID = 1
SET @chvRemark = 'Web deduction - safe: incorrect user ID ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 12
SET @ErrorMsg = N'WEB扣金:用户ID不正确'
RETURN
END
IF(@WantAmount < 0)
BEGIN
SET @chvRemark = 'Web deduction: incorrect amount of deduction ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 13
SET @ErrorMsg = N'WEB扣金:扣金数量不正确'
RETURN
END
--添加日志
SET @Msg = N'Admin Reduce Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN
--扣除现金
IF(@WantAmount > 0)
BEGIN
SET @chvDBServerName = (SELECT ServerName FROM [CasinoOnline] WHERE UserID = @UserID )
IF(@chvDBServerName IS NOT NULL)
BEGIN
ROLLBACK TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET @chvRemark = 'Web deduction: users have locks ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 15
SET @ErrorMsg = N'当前您在服务器:' + @chvDBServerName + '中,请退出'
RETURN
END
-----------------检查用户现金-------------------------------
SELECT @intCurrentAmount = [Amount] FROM [Chip] WHERE [UserID] = @UserID
IF(@intCurrentAmount < @WantAmount)
BEGIN
ROLLBACK TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET @chvRemark = 'Web deduction: user cash is not enough ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 16
SET @ErrorMsg = N'对不起,您的现金量不足不可以进行这次操作'
RETURN
END
UPDATE [Chip] SET Amount = Amount - @WantAmount WHERE UserID = @UserID
END
COMMIT TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
--------------写Log和统计----------------
IF(@WantAmount > 0)
BEGIN
SET @chvRemark = 'Successful gold coin deduction ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, @intCurrentAmount, -@WantAmount,
@intCurrentAmount - @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
END
--统计
SET @WantAmount = -@WantAmount
EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
SET @RetCode = 1
SET @ErrorMsg = N'扣金币成功'
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Chip_GetCashLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Chip_GetCashLog]
-- =============================================
-- Author: wolf
-- Create Date: 2014-04-23
-- Mendor: wolf
-- Alter Date: 2015-10-12
-- Description: 后台管理--筹码日志列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Chip_GetCashLog]
@UserID INT, --账号ID
@PartnerID INT, --渠道ID
@SourceName NVARCHAR(32), --应用名称
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmptable TABLE(
LogID INT NOT NULL, --标识
SourceName NVARCHAR(32) NOT NULL, --应用
MoneyType VARCHAR(8) NOT NULL, --货币类型
UserID INT NOT NULL, --用户ID
CurrentAmount BIGINT NOT NULL, --当前数量
ModifyAmount BIGINT NOT NULL, --修改数量
StillAmount BIGINT NOT NULL, --剩余数量
Remark VARCHAR(128) NOT NULL, --备注
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL, --时间
TaxAmount BIGINT NOT NULL --台费
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--应用
IF(LEN(@SourceName) > 0)
BEGIN
--查询应用下的某个账号
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
--查询应用下的所有账号
ELSE
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--查询用户的某个应用
ELSE IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
--查询某个渠道
ELSE IF(@PartnerID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
FROM
[ChipLog] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
ORDER BY
l.LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
FROM
[ChipLog_bak] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
ORDER BY
l.LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
--查询所有应用
ELSE
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[ChipLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
@tmptable
)
--返回信息
SELECT
l.LogID, l.SourceName, l.MoneyType, l.UserID, u.NickName, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName, l.TaxAmount
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Chip_GetTop] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Chip_GetTop]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-11-06
-- Description: 筹码排行
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Chip_GetTop]
@PartnerID INT, --渠道ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
Rank INT NOT NULL, --名次
PartnerID INT NOT NULL, --渠道ID
PartnerName NVARCHAR(32) NOT NULL, --渠道名称
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
Amount BIGINT NOT NULL, --金币数量
Bank BIGINT NOT NULL, --保险柜
PayMoney DECIMAL(18, 2) NOT NULL --充值金额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--记录数
SET @RecordCount = (SELECT COUNT(UserID) FROM [Chip] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Amount + Bank DESC) AS RowNumber,
UserID, Amount, Bank
FROM
[Chip]
WHERE
UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0
)
--获取变量
INSERT INTO @tmptable
(
Rank, PartnerID, PartnerName, UserID, NickName, Amount, Bank, PayMoney
)
SELECT
RowNumber, 0, '', UserID, '', Amount, Bank, 0
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--获取用户信息
UPDATE
t
SET
t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PayMoney = u.PayMoney
FROM
@tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
--获取渠道名称
UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
--返回信息
SELECT
Rank, CASE WHEN PartnerName = '' THEN LTRIM(STR(PartnerID)) ELSE PartnerName END AS PartnerName,
UserID, NickName, Amount, Bank, PayMoney
FROM
@tmptable
ORDER BY
Rank ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Chip_GetTransferLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Chip_GetTransferLog]
-- =============================================
-- Author: wolf
-- Create Date: 2016-08-11
-- Mendor: wolf
-- Alter Date: 2016-08-24
-- Description: 赠送日志列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Chip_GetTransferLog]
@UserID INT, --账号ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT, --总记录数
@OutTotalAmount BIGINT = 0 OUTPUT, --总转出
@InTotalAmount BIGINT = 0 OUTPUT, --总转入
@TotalTaxAmount BIGINT = 0 OUTPUT, --总台费
@AcceptUserID INT --接受账号ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
CurrAmount BIGINT NOT NULL, --操作前
WantAmount BIGINT NOT NULL, --操作
StillAmount BIGINT NOT NULL, --剩余
Action INT NOT NULL, --1=转入 -1=转出
AcceptUserID INT NOT NULL, --接收方ID
AcceptNickName NVARCHAR(32) NOT NULL, --接收方昵称
AcceptCurrAmount BIGINT NOT NULL, --接收方操作前
AcceptWantAmount BIGINT NOT NULL, --接收方操作
AcceptStillAmount BIGINT NOT NULL, --接收方剩余
TaxAmount BIGINT NOT NULL, --台费
Memo NVARCHAR(256) NOT NULL, --备注
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @OutTotalAmount = 0
SET @InTotalAmount = 0
SET @TotalTaxAmount = 0
--查询某个用户
IF(@UserID > 0)
BEGIN
IF(@AcceptUserID > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
)
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[ChipTransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND AcceptUserID = @AcceptUserID
UNION ALL
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[ChipTransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @AcceptUserID AND AcceptUserID = @UserID
--总记录数
SET @RecordCount = @@ROWCOUNT
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
)
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[ChipTransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
UNION ALL
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, 1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[ChipTransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND AcceptUserID = @UserID
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--总转出
SELECT @OutTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = -1
--总转入
SELECT @InTotalAmount = SUM(AcceptWantAmount) FROM @tmptable WHERE Action = 1
--总台费
SELECT @TotalTaxAmount = SUM(TaxAmount) FROM @tmptable
SET @OutTotalAmount = ISNULL(@OutTotalAmount, 0)
SET @InTotalAmount = ISNULL(@InTotalAmount, 0)
SET @TotalTaxAmount = ISNULL(@TotalTaxAmount, 0)
END
--查询时间段内该应用的所有数据
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
)
SELECT
LogID, UserID, NickName, CurrAmount, WantAmount, StillAmount, -1,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
[ChipTransferLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount, Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, Crdate
FROM
@tmptable
)
--返回信息:标识(Rid)(int)、账号ID(UserID)(int)、昵称(NickName)(varchar(32))、当前钻石(CurrAmount)(int)、
-- 修改钻石(WantAmount)(int)、备注(Memo)(varchar(128))、IP地址(IPAddress)(varchar(16))、时间(Crdate)(varchar)
SELECT
Rid, UserID, NickName, CurrAmount, WantAmount, StillAmount,
CASE
WHEN Action = -1 THEN '赠送'
WHEN Action = 1 THEN '接收'
ELSE ''
END AS Action,
AcceptUserID, AcceptNickName, AcceptCurrAmount, AcceptWantAmount, AcceptStillAmount,
TaxAmount, Memo, IPAddress, CONVERT(CHAR(20), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Chip_SendCoin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
WEB通用调用加金币接口
*/
CREATE PROCEDURE [dbo].[Manage_Chip_SendCoin]
@UserID INT,
@SourceName NVARCHAR(32), --Web应用名称 BuyKey (U币购买门票)
@Reason NVARCHAR(128),
@WantAmount BIGINT,
@IPAddress VARCHAR(16),
@OpUserID INT,
@OpUserName VARCHAR(32),
@RetCode TINYINT OUTPUT,
@ErrorMsg NVARCHAR(64) OUTPUT --错误描述
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @intCurrentAmount BIGINT
DECLARE @chvRemark NVARCHAR(128)
DECLARE @LogType INT
DECLARE @MaxAmount BIGINT --最大额度
DECLARE @SendAmount BIGINT --发送金额
DECLARE @Msg NVARCHAR(4000)
DECLARE @RoleID INT --角色ID
SET @intCurrentAmount = 0
SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
SET @RetCode = 0
SET @ErrorMsg = ''
SET @LogType = 5
SET @MaxAmount = 1000000
SET @RoleID = 0
IF(@SourceName IS NULL OR @SourceName = '')
BEGIN
SET @SourceName = ''
SET @chvRemark = N'Web application name is empty,' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 11
SET @ErrorMsg = N'Web application name is empty'
RETURN
END
IF(@UserID IS NULL OR @UserID <=0)
BEGIN
SET @UserID = 1
SET @chvRemark = N'Incorrect user ID ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 12
SET @ErrorMsg = N'Incorrect user ID'
END
IF(@WantAmount < 0)
BEGIN
SET @chvRemark = N'Incorrect amount of money delivered ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 13
SET @ErrorMsg = N'送金数量不正确'
RETURN
END
--角色ID
SELECT TOP 1 @RoleID = RoleID FROM [RoleUser] WHERE AdminUserID = @OpUserID ORDER BY RoleID ASC
--管理员角色
IF(@RoleID = 1)
BEGIN
SET @MaxAmount = 999999999999999
--测试账号
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
SET @MaxAmount = 999999999999999
END
END
--发送总额
SELECT @SendAmount = ISNULL(SUM(WantAmount), 0) FROM [AdminSendCoin] WHERE Crdate >= CONVERT(CHAR(10), GETDATE(), 120)
--赠送超出今天限额
IF(@SendAmount + @WantAmount > @MaxAmount)
BEGIN
SET @RetCode = 15
SET @ErrorMsg = N'The increase exceeds the limit'
RETURN
END
--加入今天赠送日志
INSERT INTO [AdminSendCoin]
(
OpUserID, OpUserName, UserID, WantAmount, Crdate
)
VALUES
(
@OpUserID, @OpUserName, @UserID, @WantAmount, GETDATE()
)
--添加日志
SET @Msg = N'Admin Send Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
SELECT @intCurrentAmount = [Amount] FROM [Chip] WHERE [UserID] = @UserID
-------------加金币、保险柜------------------------
UPDATE [Chip] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @UserID
IF(@@RowCount = 0)
BEGIN
INSERT INTO [Chip](UserID, Amount, Bank) VALUES(@UserID, @WantAmount, 0)
END
--------------写Log和统计----------------
IF(@WantAmount > 0)
BEGIN
SET @chvRemark = N'Gold coin delivered successfully ' + @Reason
INSERT INTO [ChipLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, @intCurrentAmount, @WantAmount,
@intCurrentAmount + @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
END
--统计
EXEC [Game_ChipStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
SET @RetCode = 1
SET @ErrorMsg = N'送金币成功'
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ChipScoreRank_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ChipScoreRank_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 元宝积分榜
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ChipScoreRank_GetList]
@RankType TINYINT --榜单类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期
Rank INT NOT NULL, --排名
UserID INT NOT NULL, --用户ID
Amount BIGINT NOT NULL, --积分
Crdate DATETIME NOT NULL --时间
)
--总榜
IF(@RankType = 1)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY SUM(Amount) DESC) AS RowNumber,
UserID, SUM(Amount) AS Score
FROM
[ChipScoreRank]
GROUP BY
UserID
)
INSERT INTO @tmptable
(
DateFlag, Rank, UserID, Amount, Crdate
)
SELECT
'2022-05-01', RowNumber, UserID, Score, GETDATE()
FROM
[List]
WHERE
RowNumber <= 50
END
--每天榜
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, Rank, UserID, Amount, Crdate
)
SELECT
DateFlag, Rank, UserID, Amount, Crdate
FROM
[ChipScoreRank]
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Score DESC) AS RowNumber,
UserID, Score
FROM
[UserChipScore]
WHERE
DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
)
--生成排行
INSERT INTO @tmptable
(
DateFlag, Rank, UserID, Amount, Crdate
)
SELECT
CONVERT(CHAR(16), GETDATE(), 120), RowNumber, UserID, Score, CONVERT(CHAR(16), GETDATE(), 120)
FROM
[List]
WHERE
RowNumber <= 50
END
--返回信息
SELECT
CONVERT(VARCHAR(16), t.DateFlag, 120) AS DateFlag, t.Rank, t.UserID, u.NickName, t.Amount,
CONVERT(VARCHAR(16), t.Crdate, 120) AS Crdate
FROM
@tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
ORDER BY
t.DateFlag DESC, t.Rank ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ChipStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ChipStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 筹码统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ChipStat_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@Send BIGINT OUTPUT, --总发行
@Consume BIGINT OUTPUT, --总消耗
@GameSend BIGINT OUTPUT, --游戏发行
@GameConsume BIGINT OUTPUT, --游戏消耗
@GameDiff BIGINT OUTPUT, --游戏差额
@Cash BIGINT OUTPUT, --金币总额
@Bank BIGINT OUTPUT, --保险柜总额
@YesterdayAmount BIGINT OUTPUT, --前日总额
@CurrAmount BIGINT OUTPUT --当前总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Yesterday SMALLDATETIME --前日日期
DECLARE @Today SMALLDATETIME --当前日期
--表变量
DECLARE @tmptable TABLE(
LogType INT NOT NULL, --日志类型
LogTypeName NVARCHAR(32) NOT NULL, --日志类型名称
GameID INT NOT NULL, --游戏ID
Amount BIGINT NOT NULL, --金额
SendAmount BIGINT NOT NULL, --发行
DelAmount BIGINT NOT NULL, --消耗
DiffAmount BIGINT NOT NULL --游戏总额
)
--申请表变量
DECLARE @tmpSum TABLE(
GameID INT NOT NULL, --游戏ID
SendAmount BIGINT NOT NULL, --发行
DelAmount BIGINT NOT NULL, --消耗
DiffAmount BIGINT NOT NULL --游戏总额
)
SET @Yesterday = CONVERT(CHAR(10), @BeginTime, 120)
SET @Today = CONVERT(CHAR(10), @EndTime + 1, 120)
--金币统计
INSERT INTO @tmptable
(
LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
)
SELECT
LogType, '', 0, SUM(MoneySum), 0, 0, 0
FROM
[ChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
LogType
--获取类型名称、游戏ID
UPDATE
t
SET
t.LogTypeName = m.LogTypeName, t.GameID = m.GameID
FROM
@tmptable t INNER JOIN [MoneyLogType] m ON t.LogType = m.LogType
--统计
SELECT
@Send = ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0), --总发行
@Consume = ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), --总消耗
@GameSend = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount > 0 THEN Amount ELSE 0 END), 0), --游戏发行
@GameConsume = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount < 0 THEN Amount ELSE 0 END), 0), --游戏消耗
@GameDiff = ISNULL(SUM(CASE WHEN GameID > 0 THEN Amount ELSE 0 END), 0) --游戏差额
FROM
@tmptable
--按游戏统计总额
INSERT INTO @tmpSum
(
GameID, SendAmount, DelAmount, DiffAmount
)
SELECT
GameID, ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), ISNULL(SUM(Amount), 0)
FROM
@tmptable
GROUP BY
GameID
--金币统计
INSERT INTO @tmptable
(
LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
)
SELECT
(LogType / 100) * 100 + 24, N'游戏消耗', LogType / 100, SUM(-TaxSum), 0, 0, 0
FROM
[ChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser]) AND TaxSum > 0
GROUP BY
LogType / 100
--获取游戏总计
UPDATE
l
SET
l.SendAmount = s.SendAmount, l.DelAmount = s.DelAmount, l.DiffAmount = s.DiffAmount
FROM
@tmptable l INNER JOIN @tmpSum s ON l.GameID = s.GameID
--今天数据,实时统计
IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
BEGIN
--金币总额、存款总额
SELECT @Cash = ISNULL(SUM(Amount), 0), @Bank = ISNULL(SUM(Bank), 0) FROM [Chip] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser])
END
--历史数据,取存量统计数据
ELSE
BEGIN
--金币总额
SELECT
@Cash = TotalAmount, @Bank = TotalBank
FROM
[ChipStatTotal]
WHERE
Crdate = @Today
END
--当前总存量
SET @CurrAmount = @Cash + @Bank
--前日总存量
SELECT @YesterdayAmount = TotalAmount + TotalBank FROM [ChipStatTotal] WHERE Crdate = @Yesterday
--返回信息
SELECT
t.LogType, t.LogTypeName, t.GameID, t.Amount,
CASE WHEN t.GameID = 0 THEN N'游戏大厅' ELSE ISNULL(g.ChineseName, ISNULL(t.GameID, 0)) END AS ChineseName,
t.SendAmount, t.DelAmount, t.DiffAmount
FROM
@tmptable t LEFT JOIN [AllGame] g ON t.GameID = g.GameID
ORDER BY
t.GameID ASC, t.Amount DESC, t.LogType ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ChipStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_ChipStatTotal_GetList]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-11-06
-- Description: 获取游戏库存量
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ChipStatTotal_GetList]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--总记录数
SELECT @RecordCount = (SELECT COUNT(Crdate) FROM [ChipStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
Crdate, TotalAmount, TotalBank
FROM
[ChipStatTotal]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
)
--返回信息:
SELECT
RowNumber, CONVERT(CHAR(16), Crdate, 120) AS Crdate, TotalAmount, TotalBank
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ChipStatTotal_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_ChipStatTotal_GetListByDay]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-04-03
-- Description: 获取游戏库存量
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ChipStatTotal_GetListByDay]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--申请表变量
DECLARE @tmptable TABLE(
Crdate SMALLDATETIME NOT NULL,
TotalAmount BIGINT NOT NULL, --当前总存量
TotalBank BIGINT NOT NULL --当前保险柜存量
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--初始化表变量
INSERT INTO @tmptable
(
Crdate, TotalAmount, TotalBank
)
SELECT
Crdate, TotalAmount, TotalBank
FROM
[ChipStatTotal]
WHERE
Crdate IN (SELECT MAX(Crdate) FROM [ChipStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime GROUP BY CONVERT(CHAR(10), Crdate, 120))
--总记录数
SELECT @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
Crdate, TotalAmount, TotalBank, (TotalAmount + TotalBank) AS Total
FROM
@tmptable
)
--返回信息:
SELECT
RowNumber, CONVERT(CHAR(10), Crdate, 120) AS Crdate, TotalAmount, TotalBank, Total
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ChipTaxStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ChipTaxStatTotal_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2016-01-27
-- Description: 后台管理--获取游戏税收总计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ChipTaxStatTotal_GetList]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@TotalTaxAmount BIGINT OUTPUT --总税收
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
ServerName NVARCHAR(32) NOT NULL, --服务器
TaxSum BIGINT NOT NULL --税收
)
SET @EndTime = @EndTime + ' 23:59:59'
SET @TotalTaxAmount = 0
--初始化表变量
INSERT INTO @tmptable(ServerName, TaxSum)
SELECT
ServerName, SUM(Tax)
FROM
[ChipTax]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
ServerName
--有税收才统计
IF(@@ROWCOUNT > 0)
BEGIN
SET @TotalTaxAmount = (SELECT SUM(TaxSum) FROM @tmptable)
END
--返回信息:服务器名称、税收(TaxSum)(bigint)
SELECT
ServerName, TaxSum
FROM
@tmptable
ORDER BY
TaxSum DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CouponTask_GetRank] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CouponTask_GetRank]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 红包券排行榜
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CouponTask_GetRank]
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
ItemCount INT NOT NULL --数量
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--排名
INSERT INTO @tmptable(UserID, ItemCount)
SELECT
UserID, SUM(ItemCount)
FROM
[UserItem]
WHERE
ItemID = 620100
GROUP BY
UserID
ORDER BY
SUM(ItemCount) DESC
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ItemCount DESC) AS RowNumber,
UserID, ItemCount
FROM
@tmptable
)
--返回信息
SELECT
l.RowNumber, l.UserID, u.NickName, l.ItemCount, u.PayMoney,
ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CouponTask_GetStatByDay] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CouponTask_GetStatByDay]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 红包券统计(每天)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CouponTask_GetStatByDay]
@DateFlag DATETIME --日期
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--当天数据
IF(@DateFlag = CONVERT(CHAR(10), GETDATE(), 120))
BEGIN
SELECT
CONVERT(VARCHAR(10), @DateFlag, 120) AS DateFlag, ISNULL(SUM(CouponCount), 0) AS CouponCount,
COUNT(DISTINCT UserID) AS UserCount
FROM
[UserCouponStat]
WHERE
DateFlag >= @DateFlag AND DateFlag < @DateFlag + 1
RETURN
END
--返回信息
SELECT
CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, CouponCount, UserCount
FROM
[CouponStat]
WHERE
DateFlag = @DateFlag
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CouponTask_GetStatByHour] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CouponTask_GetStatByHour]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 红包券统计(每小时)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CouponTask_GetStatByHour]
@DateFlag SMALLDATETIME --日期
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
CONVERT(CHAR(11), DateFlag, 120) + LTRIM(STR(DATEPART(HOUR, DateFlag))) + ':00' AS DateFlag,
Remark, SUM(CouponCount) AS CouponCount, COUNT(DISTINCT(UserID)) AS UserCount
FROM
[UserCouponStat]
WHERE
DateFlag >= @DateFlag AND DateFlag < @DateFlag + 1
GROUP BY
CONVERT(CHAR(11), DateFlag, 120) + LTRIM(STR(DATEPART(HOUR, DateFlag))) + ':00', Remark
ORDER BY
CONVERT(CHAR(11), DateFlag, 120) + LTRIM(STR(DATEPART(HOUR, DateFlag))) + ':00' ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CroOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CroOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: CroPay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CroOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[CroOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[CroOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, u.NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_CrushOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_CrushOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2022-11-07
-- Description: CrushPay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_CrushOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[CrushOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[CrushOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Currency_GetTop] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Currency_GetTop]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-11-06
-- Description: 货币排行
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Currency_GetTop]
@PartnerID INT, --渠道ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
Rank INT NOT NULL, --名次
PartnerID INT NOT NULL, --渠道ID
PartnerName NVARCHAR(32) NOT NULL, --渠道名称
UserID INT NOT NULL, --用户ID
NickName NVARCHAR(32) NOT NULL, --昵称
Amount BIGINT NOT NULL, --金币数量
Bank BIGINT NOT NULL, --保险柜
PayMoney DECIMAL(18, 2) NOT NULL --充值金额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--记录数
SET @RecordCount = (SELECT COUNT(UserID) FROM [Money] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Amount + Bank DESC) AS RowNumber,
UserID, Amount, Bank
FROM
[Money]
WHERE
UserID NOT IN (SELECT UserID FROM [MachineUser]) AND UserID > 0
)
--获取变量
INSERT INTO @tmptable
(
Rank, PartnerID, PartnerName, UserID, NickName, Amount, Bank, PayMoney
)
SELECT
RowNumber, 0, '', UserID, '', Amount, Bank, 0
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--获取用户信息
UPDATE
t
SET
t.NickName = u.NickName, t.PartnerID = u.PartnerID, t.PayMoney = u.PayMoney
FROM
@tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
--获取渠道名称
UPDATE t SET t.PartnerName = p.PartnerName FROM @tmptable t INNER JOIN [Partner] p ON t.PartnerID = p.PartnerID
--返回信息
SELECT
Rank, CASE WHEN PartnerName = '' THEN LTRIM(STR(PartnerID)) ELSE PartnerName END AS PartnerName,
UserID, NickName, Amount, Bank, PayMoney
FROM
@tmptable
ORDER BY
Rank ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_DailyReport_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_DailyReport_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每日报表项删除
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_DailyReport_Del]
@Rid INT --标识
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Crdate DATETIME --时间
SET @RetCode = 0
--信息
SELECT @Crdate = Crdate FROM [DailyReport] WHERE Rid = @Rid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--只能删除7天内数据
IF(@Crdate <= GETDATE() - 7)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--删除
DELETE FROM [DailyReport] WHERE Rid = @Rid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_DailyReport_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_DailyReport_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每日报表列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_DailyReport_GetList]
@BeginTime SMALLDATETIME, --开始时间
@EndTime SMALLDATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
ItemType, ItemName, ItemValue, ItemTag
FROM
[DailyReport]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
ORDER BY
DateFlag DESC, ItemType ASC, ItemTag ASC, Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_DailyReport_GetListByMonth] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_DailyReport_GetListByMonth]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每日报表列表(月报)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_DailyReport_GetListByMonth]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
CONVERT(VARCHAR(7), DateFlag, 120) AS DateFlag,
ItemType, ItemName, SUM(ItemValue) AS ItemValue, ItemTag
FROM
[DailyReport]
GROUP BY
CONVERT(VARCHAR(7), DateFlag, 120), ItemType, ItemName, ItemTag
ORDER BY
DateFlag DESC, ItemType ASC, ItemTag ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_DailyReport_Insert] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_DailyReport_Insert]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每日报表项录入
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_DailyReport_Insert]
@DateFlag SMALLDATETIME, --日期标识
@ItemType TINYINT, --类型(1=用户数据 2=充值提现 3=注册留存 4=金币收支)
@ItemName NVARCHAR(32), --项名称
@ItemValue DECIMAL(18, 2), --项值
@ItemTag SMALLINT --标签
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [DailyReport]
(
DateFlag, ItemType, ItemName, ItemValue, ItemTag, Crdate
)
VALUES
(
@DateFlag, @ItemType, @ItemName, @ItemValue, @ItemTag, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_DailyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_DailyStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 日常统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_DailyStat_GetList]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --行起始索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
AvgOnlineCount INT NOT NULL, --平均在线
MaxOnlineCount INT NOT NULL, --最高在线
RegCount INT NOT NULL, --注册用户
LoginCount INT NOT NULL, --登陆用户
ActiveCount INT NOT NULL, --活跃用户(活跃用户是指参与过游戏的用户)
PayMoney DECIMAL(18, 2) NOT NULL, --充值
CosumeAmount BIGINT NOT NULL, --消耗货币(消耗货币是指昨日的货币总额变化数量)
PayUserCount INT NOT NULL, --付费人数
AvgPayMoney DECIMAL(18, 2) NOT NULL, --人均付费
LiveUsers_1 INT NOT NULL, --次日留存
LiveUsers_3 INT NOT NULL, --3日留存
LiveUsers_7 INT NOT NULL, --7日留存
ReturnUserCount INT NOT NULL, --回归用户(回归用户是指这天登录,但此前超过10天没有登录过的用户)
VideoPlayTimes INT NOT NULL, --视频广告播放次数
VideoSendAmount BIGINT NOT NULL --视频广告播放赠送金币
)
--初始化临时表
INSERT INTO @tmptable
(
DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
VideoPlayTimes, VideoSendAmount
)
SELECT
DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
VideoPlayTimes, VideoSendAmount
FROM
[DailyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, AvgOnlineCount, MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney,
CosumeAmount, PayUserCount, AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
VideoPlayTimes, VideoSendAmount
FROM
@tmptable
)
--返回信息:
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, AvgOnlineCount,
MaxOnlineCount, RegCount, LoginCount, ActiveCount, PayMoney, CosumeAmount, PayUserCount,
AvgPayMoney, LiveUsers_1, LiveUsers_3, LiveUsers_7, ReturnUserCount,
VideoPlayTimes, VideoSendAmount
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_DingpeiOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_DingpeiOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2022-11-07
-- Description: DingpeiPay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_DingpeiOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[DingpeiOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[DingpeiOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Exchange_GetCashList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Exchange_GetCashList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 兑换cash列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Exchange_GetCashList]
@UserID INT, --用户ID
@Memo VARCHAR(1024), --备注
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@Status SMALLINT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
Id INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
ExchangeID INT NOT NULL, --兑换ID
Price DECIMAL(18, 2) NOT NULL, --价格
Items VARCHAR(128) NOT NULL, --物品
Remark NVARCHAR(1024) NOT NULL, --备注
Status TINYINT NOT NULL, --状态(0=待发货 1=已发货)
Crdate DATETIME NOT NULL, --时间
ExchangeType INT NOT NULL --兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP 5=金币提现)
)
--用户ID
IF(@UserID > 0)
BEGIN
IF(LEN(@Memo) > 0)
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND h.UserID = @UserID AND e.Memo = @Memo AND e.Amount > 0
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND h.UserID = @UserID AND e.Amount > 0
END
END
--所有
ELSE
BEGIN
IF(LEN(@Memo) > 0)
BEGIN
IF(@Status = -1)
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo AND e.Amount > 0
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo AND h.Status = @Status AND e.Amount > 0
END
END
ELSE
BEGIN
IF(@Status = -1)
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Amount > 0
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND h.Status = @Status AND e.Amount > 0
END
END
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNumber,
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
FROM
@tmptable
)
--返回信息
SELECT
l.Id, l.UserID, u.NickName, l.ExchangeID, l.Price, l.Items, l.Remark, l.Status,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.ExchangeType
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Exchange_GetHistoryList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Exchange_GetHistoryList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 兑换历史列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Exchange_GetHistoryList]
@Id INT, --标识
@UserID INT, --用户ID
@Memo VARCHAR(1024), --备注
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@Status SMALLINT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
Id INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
ExchangeID INT NOT NULL, --兑换ID
Price DECIMAL(18, 2) NOT NULL, --价格
Items VARCHAR(128) NOT NULL, --物品
Remark NVARCHAR(1024) NOT NULL, --备注
Status TINYINT NOT NULL, --状态(0=待发货 1=已发货)
Crdate DATETIME NOT NULL, --时间
ExchangeType INT NOT NULL --兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP 5=金币提现)
)
--某个标识
IF(@Id > 0)
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
FROM
[ExchangeHistory]
WHERE
Id = @Id
END
--用户ID
ELSE IF(@UserID > 0)
BEGIN
IF(LEN(@Memo) > 0)
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND h.UserID = @UserID AND e.Memo = @Memo
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
FROM
[ExchangeHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
END
--所有
ELSE
BEGIN
IF(LEN(@Memo) > 0)
BEGIN
IF(@Status = -1)
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
h.Id, h.UserID, h.ExchangeID, h.Price, h.Items, h.Remark, h.Status, h.Crdate, h.ExchangeType
FROM
[ExchangeHistory] h INNER JOIN [Exchange] e ON h.ExchangeID = e.Id
WHERE
h.Crdate BETWEEN @BeginTime AND @EndTime AND e.Memo = @Memo AND h.Status = @Status
END
END
ELSE
BEGIN
IF(@Status = -1)
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
FROM
[ExchangeHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
)
SELECT
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
FROM
[ExchangeHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND Status = @Status
END
END
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNumber,
Id, UserID, ExchangeID, Price, Items, Remark, Status, Crdate, ExchangeType
FROM
@tmptable
)
--返回信息
SELECT
l.Id, l.UserID, u.NickName, l.ExchangeID, l.Price, l.Items, l.Remark, l.Status,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.ExchangeType
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Exchange_UpdateHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Exchange_UpdateHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 修改兑换历史
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Exchange_UpdateHistory]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@Id INT, --兑换历史标识
@Status TINYINT, --状态(0=待发货 1=已发货 2=拒绝)
@Remark NVARCHAR(1024), --备注
@IPAddress VARCHAR(16), --ip地址
@RetCode TINYINT OUTPUT, --操作结果
@NewRemark NVARCHAR(1024) OUTPUT --备注
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
SET @NewRemark = ''
--修改兑换历史
UPDATE
[ExchangeHistory]
SET
Status = @Status,
Remark =CASE
WHEN LEN(@Remark) > 0 THEN CASE WHEN Remark = '.' THEN '||' + @Remark ELSE Remark + '||' + @Remark END
ELSE Remark
END,
@NewRemark = CASE
WHEN LEN(@Remark) > 0 THEN CASE WHEN Remark = '.' THEN '||' + @Remark ELSE Remark + '||' + @Remark END
ELSE Remark
END
WHERE
Id = @Id AND Status = 0
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
RETURN
END
SET @Msg = N'修改兑换历史,@Id=' + LTRIM(STR(@Id)) + ',@Status=' + LTRIM(STR(@Status)) + ',Remark=' + @Remark
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ExchangeCard_Gen]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 兑换卡生成
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ExchangeCard_Gen]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@CardNo VARCHAR(32), --卡号
@PerDays INT, --每天(0=无限制 1=每1天)
@UseTimes BIGINT, --可使用次数
@OpenTime DATETIME, --开始时间
@ExpireTime DATETIME, --过期时间
@Items VARCHAR(128), --物品
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
--自动生成码
IF(@CardNo = '')
BEGIN
SET @CardNo = 'E' + SUBSTRING(REPLACE(NEWID(), '-', ''), 1, 7)
END
--判断是否已经存在
IF EXISTS(SELECT CardNo FROM [ExchangeCard] WHERE CardNo = @CardNo)
BEGIN
PRINT N'兑换卡生成失败,卡号=' + @CardNo + N',已存在......!'
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--生成兑换卡
INSERT INTO [ExchangeCard]
(
CardNo, PerDays, UseTimes, OpenTime, ExpireTime, Items, Crdate
)
VALUES
(
@CardNo, @PerDays, @UseTimes, @OpenTime, @ExpireTime, @Items, GETDATE()
)
--添加日志
SET @Msg = N'兑换卡生成成功,关联的信息:@CardNo=' + @CardNo + ',@PerDays=' + LTRIM(STR(@PerDays)) +
',@UseTimes=' + CAST(@UseTimes AS VARCHAR(16)) + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@Items=' + @Items
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ExchangeCard_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 兑换卡列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ExchangeCard_GetList]
@CardNo VARCHAR(32) --卡号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--获取某卡号
IF(LEN(@CardNo) > 0)
BEGIN
SELECT
CardNo, PerDays, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime, Items,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[ExchangeCard]
WHERE
CardNo = @CardNo
RETURN
END
--兑换卡
SELECT
CardNo, PerDays, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime, Items,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[ExchangeCard]
ORDER BY
ExpireTime DESC, Crdate DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_GetLogList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ExchangeCard_GetLogList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 兑换卡日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ExchangeCard_GetLogList]
@CardNo VARCHAR(32), --卡号
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
CardNo VARCHAR(32) NOT NULL, --卡号
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, CardNo, Crdate
)
SELECT
Rid, UserID, CardNo, Crdate
FROM
[ExchangeCardLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
ELSE IF(@CardNo != '')
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, CardNo, Crdate
)
SELECT
Rid, UserID, CardNo, Crdate
FROM
[ExchangeCardLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND CardNo = @CardNo
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, CardNo, Crdate
)
SELECT
Rid, UserID, CardNo, Crdate
FROM
[ExchangeCardLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, UserID, CardNo, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.Rid, l.UserID, u.NickName, l.CardNo, CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ExchangeCard_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ExchangeCard_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 兑换卡修改
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ExchangeCard_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@CardNo VARCHAR(32), --卡号
@PerDays INT, --每天(0=无限制 1=每1天)
@UseTimes BIGINT, --可使用次数
@OpenTime DATETIME, --开始时间
@ExpireTime DATETIME, --过期时间
@Items VARCHAR(128), --物品
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
UPDATE
[ExchangeCard]
SET
PerDays = @PerDays, UseTimes = @UseTimes, OpenTime = @OpenTime,
ExpireTime = @ExpireTime, Items = @Items
WHERE
CardNO = @CardNo
--修改失败
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'兑换卡修改失败,关联的信息:@CardNo=' + @CardNo + ',@PerDays=' + LTRIM(STR(@PerDays)) +
',@UseTimes=' + CAST(@UseTimes AS VARCHAR(16)) + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@Items=' + @Items
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--操作结果
SET @RetCode = 11
SELECT @RetCode AS RetCode
END
--添加日志
SET @Msg = N'兑换卡修改成功,关联的信息:@CardNo=' + @CardNo + ',@PerDays=' + LTRIM(STR(@PerDays)) +
',@UseTimes=' + CAST(@UseTimes AS VARCHAR(16)) + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@Items=' + @Items
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Feedback_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Feedback_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 反馈列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Feedback_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndedx INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
EMail NVARCHAR(64) NOT NULL, --邮箱
Msg NVARCHAR(512) NOT NULL, --消息
ToUserID INT NOT NULL, --用户ID
Status TINYINT NOT NULL, --状态
OpUserID INT, --操作员ID
OpUserName VARCHAR(32), --操作员名称
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndedx = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
INSERT INTO @tmptable
(
Rid, EMail, Msg, ToUserID, Status, OpUserID, OpUserName, IPAddress, Crdate
)
SELECT
Rid, EMail, Msg, ToUserID, Status, OpUserID, OpUserName, IPAddress, Crdate
FROM
[Feedback]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND Email NOT LIKE N'问卷调查%'
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, EMail, Msg, ToUserID, Status, OpUserID, OpUserName, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.Rid, l.EMail, l.Msg, l.Status, l.OpUserID, l.OpUserName, l.IPAddress,
CONVERT(CHAR(23), l.Crdate, 121) AS Crdate, l.ToUserID, ISNULL(u.NickName, '') AS ToNickName
FROM
[List] l LEFT JOIN [AllUser] u ON l.ToUserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndedx AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Feedback_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Feedback_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 反馈修改
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Feedback_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@Rid INT, --标识
@Status TINYINT --状态
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
UPDATE
[Feedback]
SET
Status = @Status, OpUserID = @OpUserID, OpUserName = @OpUserName
WHERE
Rid = @Rid AND Status = 0
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_FlashOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_FlashOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2022-11-07
-- Description: FlashPay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_FlashOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[FlashOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[FlashOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_FlashWithdraw_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_FlashWithdraw_GetLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 提现日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_FlashWithdraw_GetLog]
@UserID INT, --用户ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@TotalAmount BIGINT OUTPUT --提现总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) PRIMARY KEY, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
Amount INT NOT NULL, --金额
RealAmount INT NOT NULL, --实际扣除金额
DfTransactionId VARCHAR(32) NOT NULL, --平台代付单号,32字符以内
GetStatus TINYINT NOT NULL, --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核) 11=拒绝
--251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
DfDesc VARCHAR(256) NOT NULL, --代付状态描述
Balance INT NOT NULL, --余额
NotifyTime DATETIME NOT NULL, --通知时间
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--查询某个账号
IF(@UserID > 0)
BEGIN
--查询
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
)
SELECT
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
FROM
[FlashWithdraw]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT
END
--查询所有
ELSE
BEGIN
--查询
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
)
SELECT
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
FROM
[FlashWithdraw]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT
END
--统计总额
SELECT @TotalAmount = ISNULL(SUM(Amount), 0) FROM @tmptable WHERE GetStatus IN (3, 4)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId,
GetStatus, DfDesc, Balance, NotifyTime, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.Amount, l.RealAmount, l.DfTransactionId,
l.GetStatus, l.DfDesc, l.Balance, CONVERT(CHAR(23), l.NotifyTime, 120) AS NotifyTime,
CONVERT(CHAR(23), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ForbidUser_Add] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ForbidUser_Add]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @UserID = 1,
-- @Memo = '',
-- @Days = 1,
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-24
-- Mendor: wolf
-- Alter Date: 2016-04-11
-- Description: 后台管理--封杀玩家
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ForbidUser_Add]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@Memo NVARCHAR(128), --备注
@Days INT, --封杀天数
@IPAddress VARCHAR(16), --IP地址
@GameIDs VARCHAR(128), --游戏ID集(以逗号分隔)
@RetCode TINYINT OUTPUT --操作结果 1 成功 2已经封杀
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @CurrTime = GETDATE()
SET @RetCode = 0
--判断是否已经封杀
IF EXISTS(SELECT UserID FROM [ForbidUser] WHERE UserID = @UserID)
BEGIN
SET @RetCode = 2
RETURN
END
--添加封杀
INSERT INTO [ForbidUser]
(
UserID, Memo, BeginTime, EndTime, GameIDs
)
VALUES
(
@UserID, @Memo, @CurrTime, @CurrTime + @Days, @GameIDs
)
--消息
SET @Msg = N'Prohibit account(' + LTRIM(STR(@UserID)) + '), Prohibit cause:' + @Memo +
',Prohibit ' + LTRIM(STR(@Days)) + ' Days,GameIDs = ' + @GameIDs
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ForbidUser_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ForbidUser_Del]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @UserID = 1,
-- @Memo = '',
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-24
-- Mendor: wolf
-- Alter Date: 2016-04-08
-- Description: 后台管理--解除封杀
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ForbidUser_Del]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@Memo VARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@GameIDs VARCHAR(128) OUTPUT --游戏ID集
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @GameIDs = ''
--封杀账号信息
SELECT @GameIDs = GameIDs FROM [ForbidUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
RETURN
--解除
DELETE FROM [ForbidUser] WHERE UserID = @UserID
--消息
SET @Msg = N'Release prohibit(' + LTRIM(STR(@UserID)) + '), Cause for release:' + @Memo
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ForbidUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_EasouPay_GetList]
-- @UserID = 1,
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-25
-- Mendor: wolf
-- Alter Date: 2015-09-07
-- Description: 后台管理--获取列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ForbidUser_GetList]
@UserID INT, --用户ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmptable TABLE(
Rid INT NOT NULL IDENTITY(1, 1), --标识
UserID INT NOT NULL, --用户ID
Memo NVARCHAR(128) NOT NULL, --备注
BeginTime DATETIME NOT NULL, --开始时间
EndTime DATETIME NOT NULL, --结束时间
GameIDs VARCHAR(128) NOT NULL --游戏ID集
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @CurrTime = GETDATE()
--某个账号
IF(@UserID > 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
UserID, Memo, BeginTime, EndTime, GameIDs
)
SELECT TOP 500
UserID, Memo, BeginTime, EndTime, GameIDs
FROM
[ForbidUser]
WHERE
UserID = @UserID
ORDER BY
UserID DESC
END
--所有账号
ELSE
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
UserID, Memo, BeginTime, EndTime, GameIDs
)
SELECT TOP 500
UserID, Memo, BeginTime, EndTime, GameIDs
FROM
[ForbidUser]
ORDER BY
UserID DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, UserID, Memo, BeginTime, EndTime, GameIDs
FROM
@tmptable
)
--返回信息:标识(Rid)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、备注(Memo)(varchar(128))、
-- 开始时间(BeginTime)(varchar(16))、截止时间(EndTime)(varchar(16))
SELECT
l.Rid, l.UserID, u.NickName, l.Memo,
CONVERT(CHAR(20), l.BeginTime, 120) AS BeginTime,
CONVERT(CHAR(20), l.EndTime, 120) AS EndTime,
l.GameIDs
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Game_GetBetDetail] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Game_GetBetDetail]
-- =============================================
-- Author: wolf
-- Create Date: 2014-04-23
-- Mendor: wolf
-- Alter Date: 2015-10-12
-- Description: 后台管理--投注详情
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Game_GetBetDetail]
@UserID INT, --账号ID
@RecordID VARCHAR(32), --标识
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --结束时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
RecordID VARCHAR(32) NOT NULL, --记录ID
ResultZone VARCHAR(1024) NOT NULL --结果描述
)
--查询某账号
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
--查询用户的所有应用
ELSE IF(LEN(@RecordID) > 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[Bet]
WHERE
RecordID = @RecordID
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[BetInfo]
WHERE
RecordID = @RecordID
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[BetInfoHistory]
WHERE
RecordID = @RecordID
END
--所有记录
ELSE
BEGIN
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
INSERT INTO @tmptable
(
RecordID, ResultZone
)
SELECT
RecordID, ResultZone
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
END
--返回信息
SELECT RecordID, ResultZone FROM @tmptable ORDER BY RecordID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Game_GetBetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Game_GetBetLog]
-- =============================================
-- Author: wolf
-- Create Date: 2014-04-23
-- Mendor: wolf
-- Alter Date: 2015-10-12
-- Description: 后台管理--投注日志
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Game_GetBetLog]
@UserID INT, --账号ID
@GameID INT, --游戏ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT, --总记录数
@WinAmount BIGINT OUTPUT --输赢
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmptable TABLE(
RecordID VARCHAR(32) NOT NULL, --标识
UserID INT NOT NULL, --用户ID
GameID INT NOT NULL, --游戏ID
BetAmount BIGINT NOT NULL, --下注金额
BetTime DATETIME NOT NULL, --下注时间
BetZone VARCHAR(128) NOT NULL, --下注区域
Odds DECIMAL(10, 2) NOT NULL, --赔率
ResultAmount BIGINT NOT NULL, --结算金额
ResultTime DATETIME NOT NULL, --结算时间
ResultZone VARCHAR(1024) NOT NULL, --结果描述
StillAmount BIGINT NOT NULL, --剩余金额
Status TINYINT NOT NULL, --状态 0=下注 1=结算
Tax BIGINT NOT NULL --台费
)
DECLARE @tmpRecord TABLE(
RecordID VARCHAR(32) NOT NULL
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @WinAmount = 0
--查询某账号某游戏
IF(@UserID > 0 AND @GameID >= 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--查询用户的所有应用
ELSE IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--查询用户的某个应用
ELSE IF(@GameID >= 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--所有记录
ELSE
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--计算输赢
SELECT @WinAmount = ISNULL(SUM(ResultAmount - BetAmount), 0) FROM @tmptable
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY RecordID DESC) AS RowNumber,
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
@tmptable
)
--返回信息
SELECT
l.RecordID, l.UserID, u.NickName, g.EnglishName, l.BetAmount,
CONVERT(CHAR(16), l.BetTime, 120) AS BetTime, l.BetZone, l.Odds, l.ResultAmount,
CONVERT(CHAR(16), l.ResultTime, 120) AS ResultTime, l.ResultZone,
(l.ResultAmount - l.BetAmount) AS WinAmount, l.StillAmount, l.Status, l.Tax,
DATEDIFF(SECOND, l.BetTime, l.ResultTime) AS SubSeconds
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Game_GetChipBetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Game_GetChipBetLog]
-- =============================================
-- Author: wolf
-- Create Date: 2014-04-23
-- Mendor: wolf
-- Alter Date: 2015-10-12
-- Description: 后台管理--投注日志
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Game_GetChipBetLog]
@UserID INT, --账号ID
@GameID INT, --游戏ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT, --总记录数
@WinAmount BIGINT OUTPUT --输赢
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmptable TABLE(
RecordID VARCHAR(32) NOT NULL, --标识
UserID INT NOT NULL, --用户ID
GameID INT NOT NULL, --游戏ID
BetAmount BIGINT NOT NULL, --下注金额
BetTime DATETIME NOT NULL, --下注时间
BetZone VARCHAR(128) NOT NULL, --下注区域
Odds DECIMAL(10, 2) NOT NULL, --赔率
ResultAmount BIGINT NOT NULL, --结算金额
ResultTime DATETIME NOT NULL, --结算时间
ResultZone VARCHAR(1024) NOT NULL, --结果描述
StillAmount BIGINT NOT NULL, --剩余金额
Status TINYINT NOT NULL, --状态 0=下注 1=结算
Tax BIGINT NOT NULL --台费
)
DECLARE @tmpRecord TABLE(
RecordID VARCHAR(32) NOT NULL
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @WinAmount = 0
--查询某账号某游戏
IF(@UserID > 0 AND @GameID >= 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--查询用户的所有应用
ELSE IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--查询用户的某个应用
ELSE IF(@GameID >= 0)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--所有记录
ELSE
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP 10000
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBet]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
)
SELECT TOP (10000 - @RecordCount)
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
[ChipBetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @EndTime
ORDER BY
RecordID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--计算输赢
SELECT @WinAmount = ISNULL(SUM(ResultAmount - BetAmount), 0) FROM @tmptable
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY RecordID DESC) AS RowNumber,
RecordID, UserID, GameID, BetAmount, BetTime, BetZone, Odds,
ResultAmount, ResultTime, ResultZone, StillAmount, Status, Tax
FROM
@tmptable
)
--返回信息
SELECT
l.RecordID, l.UserID, u.NickName, g.ChineseName, l.BetAmount,
CONVERT(CHAR(16), l.BetTime, 120) AS BetTime, l.BetZone, l.Odds, l.ResultAmount,
CONVERT(CHAR(16), l.ResultTime, 120) AS ResultTime, l.ResultZone,
(l.ResultAmount - l.BetAmount) AS WinAmount, l.StillAmount, l.Status, l.Tax,
DATEDIFF(SECOND, l.BetTime, l.ResultTime) AS SubSeconds
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GameDailyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GameDailyStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 游戏日常统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GameDailyStat_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
DateFlag DATETIME NOT NULL, --时间
GameID INT NOT NULL, --游戏ID
ServerName NVARCHAR(32) NOT NULL, --服务器名称
AvgOnlineCount INT NOT NULL, --平均在线
MaxOnlineCount INT NOT NULL, --最高在线
ActiveCount INT NOT NULL, --活跃用户(指有消耗的用户数)
BetAmount BIGINT NOT NULL, --下注金额
ResultAmount BIGINT NOT NULL --结算金额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
INSERT INTO @tmptable
(
DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
)
SELECT
DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
FROM
[GameDailyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, GameID, ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
FROM
@tmptable
)
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlg,
CASE
WHEN ServerName = 'EmperorCrab' THEN N'浅水滩'
WHEN ServerName = 'AlmightyOctopus' THEN N'深海寻宝'
WHEN ServerName = 'AncientCrocodile' THEN N'海底密藏'
WHEN ServerName = 'DarknessMonster' THEN N'深海沉船'
ELSE ''
END AS ServerName, AvgOnlineCount, MaxOnlineCount, BetAmount, ResultAmount, ActiveCount
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GameRecord_GetReport] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GameRecord_GetReport]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 游戏记录报表(局数、时长)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GameRecord_GetReport]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@GameID INT, --游戏ID
@PartnerID INT --渠道ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
TotalCount INT NOT NULL, --总局数
WinCount INT NOT NULL, --赢局数
PlaySeconds INT NOT NULL, --游戏时长(秒)
Players INT NOT NULL, --游戏用户数
TaxAmount BIGINT NOT NULL --台费
)
--获取某款游戏
IF(@GameID > 0)
BEGIN
--某个渠道
IF(@PartnerID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
)
SELECT
d.DateFlag, SUM(d.TotalCount), SUM(d.WinCount), SUM(d.PlaySeconds), COUNT(DISTINCT d.UserID), SUM(d.TaxAmount)
FROM
[DailyBetStat] d INNER JOIN [AllUser] u ON d.UserID = u.UserID AND u.PartnerID = @PartnerID
WHERE
d.DateFlag BETWEEN @BeginTime AND @EndTime AND d.GameID = @GameID AND d.UserID > 0
GROUP BY
d.DateFlag
END
--所有渠道
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
)
SELECT
DateFlag, SUM(TotalCount), SUM(WinCount), SUM(PlaySeconds), COUNT(DISTINCT UserID), SUM(TaxAmount)
FROM
[DailyBetStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND UserID > 0
GROUP BY
DateFlag
END
END
--获取所有游戏
ELSE
BEGIN
IF(@PartnerID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
)
SELECT
d.DateFlag, SUM(d.TotalCount), SUM(d.WinCount), SUM(d.PlaySeconds), COUNT(DISTINCT d.UserID), SUM(d.TaxAmount)
FROM
[DailyBetStat] d INNER JOIN [AllUser] u ON d.UserID = u.UserID AND u.PartnerID = @PartnerID
WHERE
d.DateFlag BETWEEN @BeginTime AND @EndTime AND d.UserID > 0
GROUP BY
d.DateFlag
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, TotalCount, WinCount, PlaySeconds, Players, TaxAmount
)
SELECT
DateFlag, SUM(TotalCount), SUM(WinCount), SUM(PlaySeconds), COUNT(DISTINCT UserID), SUM(TaxAmount)
FROM
[DailyBetStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID > 0
GROUP BY
DateFlag
END
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, TotalCount, WinCount,
PlaySeconds, Players, TaxAmount
FROM
@tmptable
ORDER BY
DateFlag ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GameRecord_ReportDetail] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GameRecord_ReportDetail]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 游戏记录详情报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GameRecord_ReportDetail]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
GameID INT NOT NULL, --游戏ID
ServerName NVARCHAR(32) NOT NULL, --服务器名称
MoneySum BIGINT NOT NULL, --变化金币
TotalCount INT NOT NULL, --总局数
WinCount INT NOT NULL, --胜局数
PlaySeconds BIGINT NOT NULL, --游戏时长
Players INT NOT NULL --游戏玩家数
)
--初始化表变量
INSERT INTO @tmptable
(
GameID, ServerName, MoneySum, TotalCount, WinCount,
PlaySeconds, Players
)
SELECT
GameID, ServerName, SUM(MoneySum), SUM(TotalCount), SUM(WinCount),
SUM(PlaySeconds), COUNT(DISTINCT UserID)
FROM
[DailyBetStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
GameID, ServerName
--返回信息
SELECT
t.GameID, g.EnglishName, t.ServerName, t.MoneySum, t.TotalCount, t.WinCount,
t.PlaySeconds, t.Players
FROM
@tmptable t INNER JOIN [AllGame] g ON t.GameID = g.GameID
ORDER BY
t.GameID ASC, t.ServerName ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GameReport_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GameReport_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 游戏报表统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GameReport_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
ItemType, ItemName, ItemValue, ItemTag
FROM
[GameReport]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
ORDER BY
DateFlag DESC, ItemType ASC, ItemTag ASC, Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GameRequest_Add] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_GameRequest_Add]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @PartnerID = 1,
-- @PartnerName = '',
-- @VersionCode = 1,
-- @GameName = '',
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2015-06-26
-- Mendor: wolf
-- Alter Date: 2015-06-26
-- Description: 添加游戏审核信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GameRequest_Add]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@PartnerID INT, --渠道ID
@PartnerName NVARCHAR(32), --渠道名称
@VersionCode INT, --版本号
@GameName VARCHAR(32), --游戏名称
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
--判断是否已经存在
IF EXISTS(SELECT PartnerID FROM [GameRequest] WHERE PartnerID = @PartnerID)
BEGIN
SET @RetCode = 11
RETURN
END
--添加审核信息
INSERT INTO [GameRequest]
(
PartnerID, VersionCode, GameName
)
VALUES
(
@PartnerID, @VersionCode, @GameName
)
SET @Msg = N'Add game review, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@VersionCode=' + LTRIM(STR(@VersionCode)) + ',@GameName=' + @GameName
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GameRequest_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_GameRequest_Del]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @PartnerID = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2015-06-26
-- Mendor: wolf
-- Alter Date: 2015-06-26
-- Description: 删除游戏审核信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GameRequest_Del]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerName NVARCHAR(32) --渠道名称
DECLARE @VersionCode INT --版本
DECLARE @GameName VARCHAR(32) --游戏名称
SET @RetCode = 0
--获取审核信息
SELECT
@VersionCode = VersionCode, @GameName = GameName
FROM
[GameRequest]
WHERE
PartnerID = @PartnerID
--判断是否已经存在
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
RETURN
END
--渠道名称
SELECT @PartnerName = PartnerName FROM [Partner] WHERE PartnerID = @PartnerID
--删除游戏审核
DELETE FROM [GameRequest] WHERE PartnerID = @PartnerID
SET @Msg = N'Delete Game Review, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@VersionCode=' + LTRIM(STR(@VersionCode)) + ',@GameName=' + @GameName
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GameRequest_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GameRequest_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-06-26
-- Mendor: wolf
-- Alter Date: 2016-05-31
-- Description: 获取游戏审核列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GameRequest_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
r.PartnerID, p.PartnerName, r.VersionCode, r.GameName, ISNULL(g.ChineseName, r.GameName) AS ChineseName
FROM
[GameRequest] r INNER JOIN [Partner] p ON r.PartnerID = p.PartnerID
LEFT JOIN [AllGame] g ON r.GameName = g.EnglishName
ORDER BY
r.PartnerID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GiftCard_Deal] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GiftCard_Deal]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 礼品卡处理
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GiftCard_Deal]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@Rid INT, --标识
@OperateStatus TINYINT, --操作状态(0=待处理 1=已兑换 2=不予兑换)
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @UserID INT --用户ID
DECLARE @ItemID INT --道具ID
DECLARE @Key VARCHAR(16) --兑换码
SET @RetCode = 0
--修改
UPDATE
[GiftCard]
SET
OperateStatus = @OperateStatus, @UserID = UserID, @ItemID = ItemID, @Key = [Key]
WHERE
Rid = @Rid AND OperateStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--添加日志
SET @Msg = N'礼品卡处理,关联的信息:@Rid=' + LTRIM(STR(@Rid)) + ',@UserID=' + LTRIM(STR(@UserID)) +
',@ItemID=' + LTRIM(STR(@ItemID)) + ',@Key=' + @Key + ',@OperateStatus=' + LTRIM(STR(@OperateStatus))
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GiftCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GiftCard_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取礼品卡记录
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GiftCard_GetList]
@UserID INT, --用户ID
@OperateStatus INT, --状态
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
ItemID INT NOT NULL, --道具ID
[Key] VARCHAR(16) NOT NULL, --兑换码
ActivateTime INT NOT NULL, --激活时间
OperateStatus TINYINT NOT NULL, --操作状态(0=待处理 1=已兑换 2=不予兑换)
Crdate DATETIME NOT NULL
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
)
SELECT
Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
FROM
[GiftCard]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
ELSE IF(@OperateStatus >= 0)
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
)
SELECT
Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
FROM
[GiftCard]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND OperateStatus = @OperateStatus
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
)
SELECT
Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
FROM
[GiftCard]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
Rid, UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.Rid, l.UserID, u.NickName, l.ItemID, l.[Key], l.ActivateTime, l.OperateStatus,
CONVERT(CHAR(16), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_GoogleOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_GooglePayOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: GooglePay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_GoogleOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
PartnerID INT NOT NULL, --渠道ID
Token VARCHAR(256) NOT NULL, --token
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
)
SELECT
UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
FROM
[GoogleLog]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
)
SELECT
UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
FROM
[GoogleLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.Token,
l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_AddMatch] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_AddMatch]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜添加赛事
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_AddMatch]
@Title NVARCHAR(32), --标题
@StartAt VARCHAR(32), --开始时间
@EndAt VARCHAR(32), --结束时间
@ShowStartAt VARCHAR(32), --展示开始时间
@ShowEndAt VARCHAR(32), --展示截止时间
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @SerialNumber VARCHAR(32) --流水号
--表变量
DECLARE @tmptable TABLE(
SerialNumber UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
Title NVARCHAR(32) --标题
)
--生成数据
INSERT INTO @tmptable(Title) VALUES(@Title)
--流水号
SELECT @SerialNumber = REPLACE(SerialNumber, '-', '') FROM @tmptable WHERE Title = @Title
--组装成有序的订单
SET @SerialNumber = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@SerialNumber, 1, 20)
--添加
INSERT INTO [Match]
(
SerialNumber, Title, Status, Result, StartAt, EndAt, ShowStartAt, ShowEndAt
)
VALUES
(
@SerialNumber, @Title, 0, '', @StartAt, @EndAt, @ShowStartAt, @ShowEndAt
)
SET @Msg = N'添加赛事信息, @SerialNumber=' + @SerialNumber + ',@Title=' + @Title + ',@StartAt=' + @StartAt + ',@EndAt=' + @EndAt +
',@ShowStartAt=' + @ShowStartAt + ',@ShowEndAt=' + @ShowEndAt
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
--返回信息
SELECT @SerialNumber AS SerialNumber
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_AddMatchBet] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_AddMatchBet]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜添加赛事投注
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_AddMatchBet]
@SerialNumber VARCHAR(32), --流水号
@BetName NVARCHAR(32), --投注名称
@BetOdds DECIMAL(10, 2), --投注赔率
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--赛事不存在
IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--赛事投注项已存在
IF EXISTS(SELECT BetID FROM [MatchBet] WHERE SerialNumber = @SerialNumber AND BetName = @BetName)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--赛事球队
INSERT INTO [MatchBet]
(
SerialNumber, BetName, BetOdds, BetAmount, IsWin
)
VALUES
(
@SerialNumber, @BetName, @BetOdds, 0, 0
)
SET @Msg = N'添加赛事投注, @SerialNumber=' + @SerialNumber + ',@BetName=' + @BetName + ',@BetOdds=' + CAST(@BetOdds AS VARCHAR(32))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_AddMatchTeam] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_AddMatchTeam]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜添加赛事球队
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_AddMatchTeam]
@SerialNumber VARCHAR(32), --流水号
@TeamID INT, --球队ID
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--赛事不存在
IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--球队不存在
IF NOT EXISTS(SELECT Id FROM [Team] WHERE Id = @TeamID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--赛事球队
INSERT INTO [MatchTeam](SerialNumber, TeamID) VALUES(@SerialNumber, @TeamID)
SET @Msg = N'添加赛事球队, @SerialNumber=' + @SerialNumber + ',@TeamID=' + LTRIM(STR(@TeamID))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_AddTeam] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_AddTeam]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜球队添加
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_AddTeam]
@Name NVARCHAR(32), --球队名称
@Icon VARCHAR(128), --球队图标
@ShortName NVARCHAR(32), --球队简称
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @TeamID INT --球队ID
INSERT INTO [Team]
(
Name, Icon, ShortName
)
VALUES
(
@Name, @Icon, @ShortName
)
--球队ID
SET @TeamID = SCOPE_IDENTITY()
SET @Msg = N'添加球队信息, @Name=' + @Name + ',@Icon=' + @Icon + ',@ShortName=' + @ShortName + ',@TeamID=' + LTRIM(STR(@TeamID))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
--返回信息
SELECT @TeamID AS TeamID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_BetRecordAward] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_BetRecordAward]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 赛事派奖
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_BetRecordAward]
@Rid INT, --标识
@ResultAmount INT, --返奖金额
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
UPDATE
[BetRecord]
SET
ResultAmount = @ResultAmount
WHERE
Rid = @Rid
SET @Msg = N'赛事派奖, @Rid=' + LTRIM(STR(@Rid)) + ',@ResultAmount=' + @ResultAmount
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_SetMatchResult] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_SetMatchResult]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 设置赛事结果
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_SetMatchResult]
@SerialNumber VARCHAR(32), --流水号
@BetID INT, --投注ID
@Result NVARCHAR(32), --赛事结果
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
--设置赛事结果
UPDATE [Match] SET Result = @Result WHERE SerialNumber = @SerialNumber
--设置投注选项
UPDATE
[MatchBet]
SET
IsWin = CASE
WHEN BetID = @BetID THEN 1
ELSE 0
END
WHERE
SerialNumber = @SerialNumber
SET @Msg = N'设置赛事结果, @SerialNumber=' + @SerialNumber + ',@BetID=' + LTRIM(STR(@BetID)) + ',@Result=' + @Result
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateMatch] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_UpdateMatch]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜修改赛事
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_UpdateMatch]
@SerialNumber VARCHAR(32), --流水号
@Title NVARCHAR(32), --标题
@StartAt VARCHAR(32), --开始时间
@EndAt VARCHAR(32), --结束时间
@ShowStartAt VARCHAR(32), --展示开始时间
@ShowEndAt VARCHAR(32), --展示截止时间
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT
SET @RetCode = 0
--修改
UPDATE
[Match]
SET
Title = @Title, StartAt = @StartAt, EndAt = @EndAt,
ShowStartAt = @ShowStartAt, ShowEndAt = @ShowEndAt
WHERE
SerialNumber = @SerialNumber
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
SET @Msg = N'修改赛事信息, @SerialNumber=' + @SerialNumber + ',@Title=' + @Title + ',@StartAt=' + @StartAt + ',@EndAt=' + @EndAt +
',@ShowStartAt=' + @ShowStartAt + ',@ShowEndAt=' + @ShowEndAt
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateMatchBet] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_UpdateMatchBet]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜修改赛事投注
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_UpdateMatchBet]
@BetID INT, --投注ID
@SerialNumber VARCHAR(32), --流水号
@BetName NVARCHAR(32), --投注名称
@BetOdds DECIMAL(10, 2), --投注赔率
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--赛事不存在
IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
/*
--赛事投注项已存在
IF EXISTS(SELECT BetID FROM [MatchBet] WHERE BetName = @BetName)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
*/
--赛事球队
UPDATE
[MatchBet]
SET
SerialNumber = @SerialNumber, BetName = @BetName, BetOdds = @BetOdds
WHERE
BetID = @BetID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
SET @Msg = N'修改赛事投注信息, @BetID=' + LTRIM(STR(@BetID)) + ',@SerialNumber=' + @SerialNumber + ',@BetName=' + @BetName + ',@BetOdds=' + CAST(@BetOdds AS VARCHAR(32))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateMatchTeam] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_UpdateMatchTeam]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜修改赛事球队
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_UpdateMatchTeam]
@Rid INT, --标识
@SerialNumber VARCHAR(32), --流水号
@TeamID INT, --球队ID
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--赛事不存在
IF NOT EXISTS(SELECT SerialNumber FROM [Match] WHERE SerialNumber = @SerialNumber)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--球队不存在
IF NOT EXISTS(SELECT Id FROM [Team] WHERE Id = @TeamID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--赛事球队
UPDATE
[MatchTeam]
SET
SerialNumber = @SerialNumber, TeamID = @TeamID
WHERE
Rid = @Rid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
SET @Msg = N'修改赛事球队信息, @Rid=' + LTRIM(STR(@Rid)) + ',@SerialNumber=' + @SerialNumber + ',@TeamID=' + LTRIM(STR(@TeamID))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Guess_UpdateTeam] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Guess_UpdateTeam]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜球队修改
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Guess_UpdateTeam]
@Id INT, --球队ID
@Name NVARCHAR(32), --球队名称
@Icon VARCHAR(128), --球队图标
@ShortName NVARCHAR(32), --球队简称
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
UPDATE
[Team]
SET
Name = @Name, Icon = @Icon, ShortName = @ShortName
WHERE
Id = @Id
SET @Msg = N'修改球队信息, @Id = ' + LTRIM(STR(@Id)) + ',@Name=' + @Name + ',@Icon=' + @Icon + ',@ShortName=' + @ShortName
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_HuaweiOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_HuaweiOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2022-11-07
-- Description: 华为支付--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_HuaweiOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[huaweiOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[huaweiOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Issue_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Issue_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 发行统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Issue_GetList]
@BeginTime SMALLDATETIME, --开始时间
@EndTime SMALLDATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
ItemType, ItemName, ItemValue
FROM
[IssueStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
ORDER BY
DateFlag DESC, ItemType ASC, Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_KayaOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_KayaOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2022-11-07
-- Description: KayaPay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_KayaOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[KayaOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[KayaOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_LabelLiveStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_LabelLiveStat_GetList]
-- @LabelID = '',
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2015-03-18
-- Description: 获取标签留存统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_LabelLiveStat_GetList]
@LabelID VARCHAR(32), --标签ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
LabelID VARCHAR(32) NOT NULL, --标签ID
RegCount INT NOT NULL, --注册用户数
LiveUsers_1 INT NOT NULL, --次日留存
LiveUsers_3 INT NOT NULL, --3日留存
LiveUsers_5 INT NOT NULL, --5日留存
LiveUsers_7 INT NOT NULL, --7日留存
LiveUsers_15 INT NOT NULL, --15日留存
LiveUsers_30 INT NOT NULL --30日留存
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
INSERT INTO @tmptable
(
DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[LabelLiveStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND LabelID = @LabelID
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, RegCount DESC, LabelID ASC) AS RowNumber,
DateFlag, LabelID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, LabelID, RegCount,
LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[List]
WHERE
RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_LiveStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_LiveStat_GetList]
-- @PartnerID = 100001,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2015-03-18
-- Description: 获取留存统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_LiveStat_GetList]
@PartnerID INT, --合作商ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
PartnerID INT NOT NULL, --合作商ID
RegCount INT NOT NULL, --注册用户数
LiveUsers_1 INT NOT NULL, --次日留存
LiveUsers_3 INT NOT NULL, --3日留存
LiveUsers_5 INT NOT NULL, --5日留存
LiveUsers_7 INT NOT NULL, --7日留存
LiveUsers_15 INT NOT NULL, --15日留存
LiveUsers_30 INT NOT NULL --30日留存
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
--所有合作商
IF(@PartnerID = 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[LiveStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[LiveStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
END
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, RegCount DESC, PartnerID ASC) AS RowNumber,
DateFlag, PartnerID, RegCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag,
CASE
WHEN l.PartnerID = 1 THEN N'所有渠道'
ELSE ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID)))
END AS PartnerName,
RegCount, LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_LiveStat_GetListByPartner] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_LiveStat_GetListByPartner]
-- @PartnerID = 100001,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-27
-- Mendor: wolf
-- Alter Date: 2014-10-27
-- Description: 获取留存统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_LiveStat_GetListByPartner]
@PartnerID INT, --合作商ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
CREATE TABLE #tmptable(
DateFlag SMALLDATETIME NOT NULL, --日期标志
PartnerID INT NOT NULL, --合作商ID
CreateUsers_1 INT NOT NULL, --昨天创建用户数
LiveUsers_1 INT NOT NULL, --昨天创建,今天还登录的用户数
CreateUsers_3 INT NOT NULL, --3天前创建用户数
LiveUsers_3 INT NOT NULL, --3天前创建,今天还登录的用户数
CreateUsers_7 INT NOT NULL, --7天前创建创建用户数
LiveUsers_7 INT NOT NULL, --7天前创建,今天还登录的用户数
CreateUsers_15 INT NOT NULL, --15天前创建用户数
LiveUsers_15 INT NOT NULL, --15天前创建,今天还登录的用户数
CreateUsers_30 INT NOT NULL, --30天前创建用户数
LiveUsers_30 INT NOT NULL --30天前创建,今天还登录的用户数
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
--某个合作商
IF(@PartnerID > 0)
BEGIN
INSERT INTO #tmptable
(
DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
)
SELECT
DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
FROM
[LiveStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
--总记录数
SET @RecordCount = @@ROWCOUNT
END
ELSE
BEGIN
INSERT INTO #tmptable
(
DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
)
SELECT
DateFlag, PartnerID, SUM(CreateUsers_1), SUM(LiveUsers_1),
SUM(CreateUsers_3), SUM(LiveUsers_3), SUM(CreateUsers_7), SUM(LiveUsers_7),
SUM(CreateUsers_15), SUM(LiveUsers_15), SUM(CreateUsers_30), SUM(LiveUsers_30)
FROM
[LiveStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
DateFlag, PartnerID
--总记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, CreateUsers_1 DESC, LiveUsers_1 DESC) AS RowNumber,
DateFlag, PartnerID, CreateUsers_1, LiveUsers_1,
CreateUsers_3, LiveUsers_3, CreateUsers_7, LiveUsers_7,
CreateUsers_15, LiveUsers_15, CreateUsers_30, LiveUsers_30
FROM
#tmptable
)
--返回信息
SELECT
CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.CreateUsers_1, l.LiveUsers_1,
CAST(CAST(l.LiveUsers_1 * 100.00 / CASE WHEN l.CreateUsers_1 = 0 THEN 1 ELSE l.CreateUsers_1 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_1,
l.CreateUsers_3, l.LiveUsers_3, CAST(CAST(l.LiveUsers_3 * 100.00 / CASE WHEN l.CreateUsers_3 = 0 THEN 1 ELSE l.CreateUsers_3 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_3,
l.CreateUsers_7, l.LiveUsers_7, CAST(CAST(l.LiveUsers_7 * 100.00 / CASE WHEN l.CreateUsers_7 = 0 THEN 1 ELSE l.CreateUsers_7 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_7,
l.CreateUsers_15, l.LiveUsers_15, CAST(CAST(l.LiveUsers_15 * 100.00 / CASE WHEN l.CreateUsers_15 = 0 THEN 1 ELSE l.CreateUsers_15 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_15,
l.CreateUsers_30, l.LiveUsers_30, CAST(CAST(l.LiveUsers_30 * 100.00 / CASE WHEN l.CreateUsers_30 = 0 THEN 1 ELSE l.CreateUsers_30 END AS DECIMAL(10, 2)) AS VARCHAR(32)) + '%' AS Ratio_30,
ISNULL(p.PartnerName, N'所有渠道') AS PartnerName
FROM
[List] l INNER JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
l.RowNumber ASC
--删除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MachineUser_Reg] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MachineUser_Reg]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 注册机器人
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MachineUser_Reg]
@NickName NVARCHAR(32), --昵称
@FaceUrl VARCHAR(1024), --头像地址
@Sex TINYINT --性别 0=默认(无) 1=男 2=女
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64) --IMei
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16)
DECLARE @CurrTime DATETIME --System当前时间
DECLARE @Count SMALLINT --计数器
DECLARE @RetCode INT --返回值
DECLARE @Rnd INT --随机数
DECLARE @UserID INT --用户ID
DECLARE @FaceID SMALLINT --脸谱ID(-1=玩家上传头像)
DECLARE @EPassword VARCHAR(32) --MD5密文
DECLARE @Msg NVARCHAR(4000) --消息
SET @CurrTime = GETDATE()
SET @PartnerID = 0
SET @IPAddress = '127.0.0.1'
SET @UserID = 0
SET @FaceID = 0
SET @RetCode = 0
SET @IMei = NEWID()
--用户信息
SELECT @UserID = UserID FROM [AllUser] WHERE NickName = @NickName AND RegIP = '127.0.0.1'
--用户id存在
IF(@UserID > 0)
BEGIN
--自定义头像路径为空信息
IF(LEN(@FaceUrl) = 0)
BEGIN
--1=男
IF(@Sex = 1)
BEGIN
--随机头像,男性头像 1-5=普通头像, 6-10=vip头像
EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 5, @Rnd = @FaceID OUTPUT
END
--2=女
ELSE IF(@Sex = 2)
BEGIN
--随机头像,女性头像 11-15=普通头像, 16-20=vip头像
EXEC [Game_Rand_GetRnd] @Min = 11, @Max = 15, @Rnd = @FaceID OUTPUT
END
END
--头像修改
UPDATE [UserFace] SET FaceID = @FaceID, FaceUrl = @FaceUrl WHERE UserID = @UserID
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
SET @Count = 0
--遍历100次
WHILE(@Count < 100)
BEGIN
--计数器+1
SET @Count = @Count + 1
--生成随机数
EXEC [Game_Rand_GetRnd] @Min = 1000000, @Max = 99999999, @Rnd = @Rnd OUTPUT
--判断是否存在
IF NOT EXISTS(SELECT UserID FROM [UserIdentity] WHERE UserID = @Rnd)
BEGIN
--添加
INSERT INTO [UserIdentity](UserID, IMei) VALUES(@Rnd, @IMei)
--用户ID
SET @UserID = @Rnd
BREAK
END
SET @Msg = N'注册机器人生成帐号异常,UserID重复!关联的信息:@IMei=' + @IMei + ',@NickName=' + @NickName +
',@PartnerID=' + LTRIM(STR(@PartnerID)) + ',@Count=' + LTRIM(STR(@Count))
--添加日志
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
END
--生成MD5密码
SET @EPassword = dbo.fn_MD5('89020BB5-7F1D-499E-B9B4-40B79B3C3EBC')
--昵称为空的情况
IF(LEN(@NickName) <= 0)
BEGIN
SET @NickName = 'Guest' + LTRIM(STR(@UserID))
END
--新昵称(过滤特殊字符: ', <, >)
SET @NickName = Replace(Replace(Replace(@NickName, '<', ''), '''', ''),'>','')
--生成用户信息
INSERT INTO [AllUser]
(
UserID, NickName, PartnerID, IMei, EPassword, RegTime, RegIP,
LoginTime, IPAddress, PayMoney, deviceid, RegPartnerID, UserWords,
DeviceName, Version
)
VALUES
(
@UserID, @NickName, @PartnerID, @IMei, @EPassword, @CurrTime, @IPAddress,
@CurrTime, @IPAddress, 0, @IMei, @PartnerID, '',
'', 0
)
--性别为空,则随机
IF(@Sex IS NULL OR @Sex = 0)
BEGIN
--随机性别
EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 2, @Rnd = @Sex OUTPUT
--随机头像
IF(LEN(@FaceUrl) <= 0)
BEGIN
--1=男
IF(@Sex = 1)
BEGIN
--随机头像,男性头像1-4
EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 4, @Rnd = @FaceID OUTPUT
END
--2=女
ELSE IF(@Sex = 2)
BEGIN
--随机头像,女性头像5-8
EXEC [Game_Rand_GetRnd] @Min = 5, @Max = 8, @Rnd = @FaceID OUTPUT
END
END
END
--头像
INSERT INTO [UserFace](UserID, FaceID, FaceUrl, Sex) VALUES(@UserID, @FaceID, @FaceUrl, @Sex)
--机器人
INSERT INTO [MachineUser]
(
UserID, LoginName, Password, BatchID, WriteTime, Levels1, Levels2, Levels3
)
VALUES
(
@UserID, @NickName, @EPassword, 0, @CurrTime, 1, 2, 3
)
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ManualPay_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ManualPay_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 手动充值列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ManualPay_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
OpUserID INT NOT NULL, --操作员ID
OpUserName VARCHAR(32) NOT NULL, --操作员名称
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
)
SELECT
OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
FROM
[ManualPay]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
)
SELECT
OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
FROM
[ManualPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.UserID, u.NickName, l.ProductID, l.Price, l.OpUserID, l.OpUserName,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MatchCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MatchCard_Gen]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 比赛卡生成
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MatchCard_Gen]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@OpenTime DATETIME, --开始时间
@ExpireTime DATETIME, --过期时间
@TimeMemo NVARCHAR(1024), --时间描述
@SceneMemo NVARCHAR(2048), --场地描述
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CardNo VARCHAR(32) --卡号
DECLARE @Rnd INT --随机数
DECLARE @RetCode TINYINT --操作结果
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
SET @CardNo = 0
WHILE(1=1)
BEGIN
--生成随机数
EXEC [Game_Rand_GetRnd] @Min = 100000, @Max = 999999, @Rnd = @Rnd OUTPUT
--判断是否已生成
IF EXISTS(SELECT CardNo FROM [MatchCard] WHERE CardNo = @Rnd)
BEGIN
CONTINUE
END
--卡号
SET @CardNo = 'M' + LTRIM(STR(@Rnd))
BREAK
END
--生成兑换卡
INSERT INTO [MatchCard]
(
CardNo, OpenTime, ExpireTime, TimeMemo, SceneMemo, UseTimes, Crdate
)
VALUES
(
@CardNo, @OpenTime, @ExpireTime, @TimeMemo, @SceneMemo, 0, GETDATE()
)
--添加日志
SET @Msg = N'比赛卡生成成功,关联的信息:@CardNo=' + @CardNo + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@TimeMemo=' + @TimeMemo + ',@SceneMemo=' + @SceneMemo
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MatchCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MatchCard_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 比赛卡列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MatchCard_GetList]
@CardNo VARCHAR(32) --卡号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--获取某卡号
IF(LEN(@CardNo) > 0)
BEGIN
SELECT
CardNo, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate,
TimeMemo, SceneMemo
FROM
[MatchCard]
WHERE
CardNo = @CardNo
RETURN
END
--比赛卡
SELECT
CardNo, UseTimes, CONVERT(VARCHAR(20), OpenTime, 120) AS OpenTime,
CONVERT(VARCHAR(20), ExpireTime, 120) AS ExpireTime,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate,
TimeMemo, SceneMemo
FROM
[MatchCard]
ORDER BY
ExpireTime DESC, Crdate DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MatchCard_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MatchCard_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 比赛卡修改
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MatchCard_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@CardNo VARCHAR(32), --卡号
@OpenTime DATETIME, --开始时间
@ExpireTime DATETIME, --过期时间
@TimeMemo NVARCHAR(1024), --时间描述
@SceneMemo NVARCHAR(2048), --场地描述
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
UPDATE
[MatchCard]
SET
OpenTime = @OpenTime, ExpireTime = @ExpireTime,
TimeMemo = @TimeMemo, SceneMemo = @SceneMemo
WHERE
CardNO = @CardNo
--修改失败
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'比赛卡修改失败,关联的信息:@CardNo=' + @CardNo + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@TimeMemo=' + @TimeMemo + ',@SceneMemo=' + @SceneMemo
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--操作结果
SET @RetCode = 11
SELECT @RetCode AS RetCode
END
--添加日志
SET @Msg = N'比赛卡修改成功,关联的信息:@CardNo=' + @CardNo + ',@OpenTime=' + CONVERT(VARCHAR(20), @OpenTime, 120) +
',@ExpireTime=' + CONVERT(VARCHAR(20), @ExpireTime, 120) + ',@TimeMemo=' + @TimeMemo + ',@SceneMemo=' + @SceneMemo
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MatchData_GetJoinList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MatchData_GetJoinList]
-- @SerialNumber = '0'
-- @UserID = 0
-- @IsAward = -1
-- @BeginTime = '2023-08-01 00:00:00'
-- @EndTime = '2023-08-31 23:59:59'
-- @PageIndex = 1
-- @PageSize = 50
-- @RecordCount = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 获取加入的名单
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MatchData_GetJoinList]
@SerialNumber VARCHAR(32), --比赛场次
@UserID INT, --用户ID
@IsAward INT, --是否获奖(-1=全部,0=否,1=是)
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
SerialNumber VARCHAR(32) NOT NULL, --比赛场次
GameID INT NOT NULL, --比赛ID
Rank INT NOT NULL, --排名
UserID INT NOT NULL, --用户ID
ItemID INT NOT NULL, --道具ID(报名道具)
ItemCount INT NOT NULL, --报名道具的数量
EnrollTime DATETIME NOT NULL, --报名时间
Score INT NOT NULL, --分数
Prize VARCHAR(128) NOT NULL, --奖品
RobotID INT NOT NULL --机器人ID
)
INSERT INTO @tmptable
(
SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
)
SELECT
SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, 0
FROM
[MatchDataUserList]
WHERE
EnrollTime BETWEEN @BeginTime AND @EndTime
AND SerialNumber = CASE -- 指定赛事场次
WHEN @SerialNumber != '' THEN @SerialNumber
ELSE SerialNumber
END
AND UserID = CASE -- 指定用户ID
WHEN @UserID > 0 THEN @UserID
ELSE UserID
END
AND Prize = CASE -- 指定是否获奖
WHEN @IsAward = 0 THEN '' --没获奖
WHEN @IsAward = 1 THEN CASE --获奖
WHEN Prize != '' THEN Prize
ELSE '0'
END
ELSE Prize END --默认所有
-- 修改临时表变量机器人ID
UPDATE t SET t.RobotID = ISNULL(m.UserID, 0) FROM @tmptable AS t INNER JOIN [MachineUser] AS m ON t.UserID = m.UserID
-- 记录数,过滤掉机器人
SELECT @RecordCount = COUNT(*) FROM @tmptable WHERE RobotID = 0
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY
SerialNumber DESC,
CASE WHEN [Rank] <= 0 THEN 9999 ELSE [Rank] END ASC,
EnrollTime DESC) AS RowNumber,
SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
FROM
@tmptable
WHERE
RobotID = 0
)
-- 返回信息
SELECT
l.SerialNumber, l.Rank, l.UserID, u.NickName, l.ItemID, l.ItemCount, g.ChineseName,
CONVERT(CHAR(20), l.EnrollTime, 120) AS EnrollTime, l.Score, l.Prize, l.RobotID
FROM
[List] AS l
INNER JOIN [AllGame] AS g ON l.GameID = g.GameID
INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MatchData_GetJoinTotalFee] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MatchData_GetJoinTotalFee]
-- @SerialNumber = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 获取加入的总费用
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MatchData_GetJoinTotalFee]
@SerialNumber VARCHAR(32) --比赛场次
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 返回信息
SELECT
ItemID, SUM(ItemCount) AS ItemCount
FROM
[MatchDataUserList]
WHERE
SerialNumber = @SerialNumber
GROUP BY
ItemID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MatchData_GetStatistics] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MatchData_GetStatistics]
-- @SerialNumber = '0'
-- @BeginTime = '2023-08-01 00:00:00'
-- @EndTime = '2023-08-31 23:59:59'
-- @PageIndex = 1
-- @PageSize = 50
-- @RecordCount = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 获取赛事数据统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MatchData_GetStatistics]
@SerialNumber VARCHAR(32), --比赛场次
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
SerialNumber VARCHAR(32) NOT NULL, --比赛场次
GameID INT NOT NULL, --游戏ID
EnrollFee VARCHAR(256) NOT NULL, --报名费(存在多种报名方式)[ItemId, Count]
MaxUserCount INT NOT NULL, --最多报名人数
TableUserCount INT NOT NULL, --每张桌子人数
JoinUserCount INT NOT NULL, --加入的用户数
StartTime DATETIME NOT NULL, --开始时间
EndTime DATETIME NOT NULL --结束时间
)
--临时表变量用户参与记录
DECLARE @participateTable TABLE(
SerialNumber VARCHAR(32) NOT NULL, --比赛场次
UserCount INT NOT NULL --用户数量
)
INSERT INTO @tmptable
(
SerialNumber, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
)
SELECT
SerialNumber, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
FROM
[MatchDataStatistics]
WHERE
StartTime BETWEEN @BeginTime AND @EndTime
AND SerialNumber = CASE -- 指定某个场次的赛事
WHEN @SerialNumber != '' THEN @SerialNumber
ELSE SerialNumber
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
INSERT INTO @participateTable
(
SerialNumber, UserCount
)
SELECT
ms.SerialNumber, count(mul.UserID) AS UserCount
FROM
[MatchDataStatistics] AS ms
INNER JOIN [MatchDataUserList] AS mul ON ms.SerialNumber = mul.SerialNumber
LEFT JOIN [MachineUser] AS mu ON mul.UserID = mu.UserID
where
mu.UserID IS NULL
GROUP BY
ms.SerialNumber
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY StartTime DESC) AS RowNumber,
SerialNumber, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
FROM
@tmptable
)
-- 返回信息
SELECT
l.SerialNumber, ChineseName, EnrollFee, pt.UserCount, TableUserCount, pt.UserCount,
CONVERT(CHAR(20), StartTime, 120) AS StartTime, CONVERT(CHAR(20), EndTime, 120) AS EndTime
FROM
[List] AS l INNER JOIN [AllGame] AS g ON l.GameID = g.GameID
INNER JOIN @participateTable AS pt ON l.SerialNumber = pt.SerialNumber
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MatchData_GetTypeList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MatchData_GetTypeList]
-- @SerialNumber = '0'
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 获取类型的名单
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MatchData_GetTypeList]
@SerialNumber VARCHAR(32) --比赛场次
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
SerialNumber VARCHAR(32) NOT NULL, --比赛场次
Rank INT NOT NULL, --排名
UserID INT NOT NULL, --用户ID
ItemID INT NOT NULL, --道具ID(报名道具)
ItemCount INT NOT NULL, --报名道具的数量
EnrollTime DATETIME NOT NULL, --报名时间
Score INT NOT NULL, --分数
Prize VARCHAR(128) NOT NULL, --奖品
RobotID INT NOT NULL --机器人ID
)
-- 查询某个场次的赛事
INSERT INTO @tmptable
(
SerialNumber, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
)
SELECT
SerialNumber, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, 0
FROM
[MatchDataUserList]
WHERE
SerialNumber = @SerialNumber
-- 修改临时表变量机器人ID
UPDATE t SET t.RobotID = ISNULL(m.UserID, 0) FROM @tmptable AS t INNER JOIN [MachineUser] AS m ON t.UserID = m.UserID
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY
CASE WHEN [Rank] <= 0 THEN 9999 ELSE [Rank] END ASC,
EnrollTime DESC) AS RowNumber,
SerialNumber, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize, RobotID
FROM
@tmptable
)
-- 返回信息
SELECT
l.SerialNumber, l.Rank, l.UserID, u.NickName, l.ItemID, l.ItemCount,
CONVERT(CHAR(20), l.EnrollTime, 120) AS EnrollTime, l.Score, l.Prize, l.RobotID
FROM
[List] AS l INNER JOIN [AllUser] AS u ON l.UserID = u.UserID
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MidwayStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MidwayStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 中途退出统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MidwayStat_GetList]
@GameID INT, --游戏ID
@TypeID INT, --类型ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
GameID INT NOT NULL, --游戏ID
SourceName NVARCHAR(32) NOT NULL, --服务器名称
PlayUserCount INT NOT NULL, --游戏人数
PlayCount INT NOT NULL, --游戏局数
MidwayUserCount INT NOT NULL, --中途退出人数
MidwayTimes INT NOT NULL --中途退出次数
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@TypeID > 0)
BEGIN
IF(@GameID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
FROM
[GameMidwayStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = @TypeID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
FROM
[GameMidwayStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = @TypeID
END
END
ELSE
BEGIN
IF(@GameID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
FROM
[GameMidwayStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = 0
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
)
SELECT
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
FROM
[GameMidwayStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND TypeID = 0
END
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, GameID ASC) AS RowNumber,
DateFlag, GameID, SourceName, PlayUserCount, PlayCount,
MidwayUserCount, MidwayTimes
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.GameID, g.EnglishName,
l.SourceName, l.PlayUserCount, l.PlayCount,
l.MidwayUserCount, l.MidwayTimes
FROM
[List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Money_GetCashLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Money_GetCashLog]
-- =============================================
-- Author: wolf
-- Create Date: 2014-04-23
-- Mendor: wolf
-- Alter Date: 2015-10-12
-- Description: 后台管理--金币日志列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Money_GetCashLog]
@UserID INT, --账号ID
@PartnerID INT, --渠道ID
@SourceName NVARCHAR(32), --应用名称
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmptable TABLE(
LogID INT NOT NULL, --标识
SourceName NVARCHAR(32) NOT NULL, --应用
MoneyType VARCHAR(8) NOT NULL, --货币类型
UserID INT NOT NULL, --用户ID
CurrentAmount BIGINT NOT NULL, --当前数量
ModifyAmount BIGINT NOT NULL, --修改数量
StillAmount BIGINT NOT NULL, --剩余数量
Remark NVARCHAR(128) NOT NULL, --备注
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL, --时间
TaxAmount BIGINT NOT NULL --台费
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--应用
IF(LEN(@SourceName) > 0)
BEGIN
--查询应用下的某个账号
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
--查询应用下的所有账号
ELSE
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND SourceName = @SourceName
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
--查询用户的某个应用
ELSE IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
--查询某个渠道
ELSE IF(@PartnerID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
FROM
[MoneyLog] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
ORDER BY
l.LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
l.LogID, l.SourceName, l.MoneyType, l.UserID, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
l.Remark, l.IPAddress, l.Crdate, l.TaxAmount
FROM
[MoneyLog_bak] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.Crdate BETWEEN @BeginTime AND @EndTime AND u.PartnerID = @PartnerID
ORDER BY
l.LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
--查询所有应用
ELSE
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP 10000
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
)
SELECT TOP (10000 - @RecordCount)
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
[MoneyLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID > 100
ORDER BY
LogID DESC
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
LogID, SourceName, MoneyType, UserID, CurrentAmount, ModifyAmount, StillAmount,
Remark, IPAddress, Crdate, TaxAmount
FROM
@tmptable
)
--返回信息
SELECT
l.LogID, l.SourceName, l.MoneyType, l.UserID, u.NickName, l.CurrentAmount, l.ModifyAmount, l.StillAmount,
l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName, l.TaxAmount
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MoneyFlow_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MoneyFlow_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-08-27
-- Mendor: wolf
-- Alter Date: 2015-09-08
-- Description: 金币流量(游戏)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MoneyFlow_GetList]
@GameID INT, --游戏ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --时间标识
GameID INT NOT NULL, --游戏ID
Amount BIGINT NOT NULL, --金币
Tax BIGINT NOT NULL --台费
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--某个游戏
IF(@GameID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, Amount, Tax
)
SELECT
DateFlag, GameID, Amount, Tax
FROM
[MoneyFlow]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
END
--所有游戏
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, GameID, Amount, Tax
)
SELECT
DateFlag, GameID, Amount, Tax
FROM
[MoneyFlow]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, GameID, Amount, Tax
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(CHAR(16), l.DateFlag, 120) AS DateFlag, g.ChineseName, l.Amount, l.Tax
FROM
[List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MoneyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MoneyStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 金币统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MoneyStat_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@Send BIGINT OUTPUT, --总发行
@Consume BIGINT OUTPUT, --总消耗
@GameSend BIGINT OUTPUT, --游戏发行
@GameConsume BIGINT OUTPUT, --游戏消耗
@GameDiff BIGINT OUTPUT, --游戏差额
@Cash BIGINT OUTPUT, --金币总额
@Bank BIGINT OUTPUT, --保险柜总额
@YesterdayAmount BIGINT OUTPUT, --前日总额
@CurrAmount BIGINT OUTPUT --当前总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Yesterday SMALLDATETIME --前日日期
DECLARE @Today SMALLDATETIME --当前日期
--表变量
DECLARE @tmptable TABLE(
LogType INT NOT NULL, --日志类型
LogTypeName NVARCHAR(32) NOT NULL, --日志类型名称
GameID INT NOT NULL, --游戏ID
Amount BIGINT NOT NULL, --金额
SendAmount BIGINT NOT NULL, --发行
DelAmount BIGINT NOT NULL, --消耗
DiffAmount BIGINT NOT NULL --游戏总额
)
--申请表变量
DECLARE @tmpSum TABLE(
GameID INT NOT NULL, --游戏ID
SendAmount BIGINT NOT NULL, --发行
DelAmount BIGINT NOT NULL, --消耗
DiffAmount BIGINT NOT NULL --游戏总额
)
SET @Yesterday = CONVERT(CHAR(10), @BeginTime, 120)
SET @Today = CONVERT(CHAR(10), @EndTime + 1, 120)
--金币统计
INSERT INTO @tmptable
(
LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
)
SELECT
LogType, '', 0, SUM(MoneySum), 0, 0, 0
FROM
[MoneyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
LogType
--获取类型名称、游戏ID
UPDATE
t
SET
t.LogTypeName = m.LogTypeName, t.GameID = m.GameID
FROM
@tmptable t INNER JOIN [MoneyLogType] m ON t.LogType = m.LogType
--按游戏统计总额
INSERT INTO @tmpSum
(
GameID, SendAmount, DelAmount, DiffAmount
)
SELECT
GameID, ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), ISNULL(SUM(Amount), 0)
FROM
@tmptable
GROUP BY
GameID
--获取游戏总计
UPDATE
l
SET
l.SendAmount = s.SendAmount, l.DelAmount = s.DelAmount, l.DiffAmount = s.DiffAmount
FROM
@tmptable l INNER JOIN @tmpSum s ON l.GameID = s.GameID
--统计
SELECT
@Send = ISNULL(SUM(CASE WHEN Amount > 0 THEN Amount ELSE 0 END), 0), --总发行
@Consume = ISNULL(SUM(CASE WHEN Amount < 0 THEN Amount ELSE 0 END), 0), --总消耗
@GameSend = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount > 0 THEN Amount ELSE 0 END), 0), --游戏发行
@GameConsume = ISNULL(SUM(CASE WHEN GameID > 0 AND Amount < 0 THEN Amount ELSE 0 END), 0), --游戏消耗
@GameDiff = ISNULL(SUM(CASE WHEN GameID > 0 THEN Amount ELSE 0 END), 0) --游戏差额
FROM
@tmptable
--今天数据,实时统计
IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
BEGIN
--金币总额、存款总额
SELECT @Cash = ISNULL(SUM(Amount), 0), @Bank = ISNULL(SUM(Bank), 0) FROM [Money] WHERE UserID NOT IN (SELECT UserID FROM [MachineUser])
END
--历史数据,取存量统计数据
ELSE
BEGIN
--金币总额
SELECT
@Cash = TotalAmount, @Bank = TotalBank
FROM
[MoneyStatTotal]
WHERE
Crdate = @Today
END
--当前总存量
SET @CurrAmount = @Cash + @Bank
--前日总存量
SELECT @YesterdayAmount = TotalAmount + TotalBank FROM [MoneyStatTotal] WHERE Crdate = @Yesterday
--金币统计
INSERT INTO @tmptable
(
LogType, LogTypeName, GameID, Amount, SendAmount, DelAmount, DiffAmount
)
SELECT
(LogType / 100) * 100 + 24, N'游戏台费', LogType / 100, SUM(-TaxSum), 0, 0, 0
FROM
[MoneyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser]) AND TaxSum > 0 AND LogType > 100
GROUP BY
LogType / 100
--返回信息
SELECT
t.LogType, t.LogTypeName, t.GameID, t.Amount,
CASE WHEN t.GameID = 0 THEN N'游戏大厅' ELSE ISNULL(g.EnglishName, ISNULL(t.GameID, 0)) END AS ChineseName,
t.SendAmount, t.DelAmount, t.DiffAmount
FROM
@tmptable t LEFT JOIN [AllGame] g ON t.GameID = g.GameID
ORDER BY
t.GameID ASC, t.Amount DESC, t.LogType ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MoneyStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_MoneyStatTotal_GetList]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-11-06
-- Description: 获取游戏库存量
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MoneyStatTotal_GetList]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--总记录数
SELECT @RecordCount = (SELECT COUNT(Crdate) FROM [MoneyStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
Crdate, TotalAmount, TotalBank
FROM
[MoneyStatTotal]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
)
--返回信息:
SELECT
RowNumber, CONVERT(CHAR(16), Crdate, 120) AS Crdate, TotalAmount, TotalBank
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MoneyStatTotal_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_MoneyStatTotal_GetListByDay]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-04-03
-- Description: 获取游戏库存量
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MoneyStatTotal_GetListByDay]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--申请表变量
DECLARE @tmptable TABLE(
Crdate SMALLDATETIME NOT NULL,
TotalAmount BIGINT NOT NULL, --当前总存量
TotalBank BIGINT NOT NULL --当前保险柜存量
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--初始化表变量
INSERT INTO @tmptable
(
Crdate, TotalAmount, TotalBank
)
SELECT
Crdate, TotalAmount, TotalBank
FROM
[MoneyStatTotal]
WHERE
Crdate IN (SELECT MAX(Crdate) FROM [MoneyStatTotal] WHERE Crdate BETWEEN @BeginTime AND @EndTime GROUP BY CONVERT(CHAR(10), Crdate, 120))
--总记录数
SELECT @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
Crdate, TotalAmount, TotalBank, (TotalAmount + TotalBank) AS Total
FROM
@tmptable
)
--返回信息:
SELECT
RowNumber, CONVERT(CHAR(10), Crdate, 120) AS Crdate, TotalAmount, TotalBank, Total
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_MyMatch_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_MyMatch_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户比赛列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_MyMatch_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmpTable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
MatchName NVARCHAR(32) NOT NULL, --比赛名称
Rank INT NOT NULL, --名次
Items VARCHAR(128) NOT NULL, --道具
Status SMALLINT NOT NULL, --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
Crdate VARCHAR(16) NOT NULL -- 时间
)
IF(@UserID > 0)
BEGIN
INSERT INTO @tmpTable
(
Rid, UserID, MatchName, Rank, Items, Status, Crdate
)
SELECT
Rid, UserID, MatchName, Rank, Items, Status, Crdate
FROM
[MyMatch]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
ELSE
BEGIN
INSERT INTO @tmpTable
(
Rid, UserID, MatchName, Rank, Items, Status, Crdate
)
SELECT
Rid, UserID, MatchName, Rank, Items, Status, Crdate
FROM
[MyMatch]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, UserID, MatchName, Rank, Items, Status, Crdate
FROM
@tmpTable
)
--返回信息
SELECT
l.Rid, l.UserID, u.NickName, l.MatchName, l.Rank, l.Items, l.Status,
CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_NewUser_ConvertReport] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_NewUser_ConvertReport]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 注册用户转化报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_NewUser_ConvertReport]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RegUsers INT --注册用户数
DECLARE @LoginUsers INT --登录用户数
DECLARE @PlayUsers INT --游戏用户数
DECLARE @VideoReqUsers INT --广告请求用户数
DECLARE @VideoPlayUsers INT --广告播放用户数
DECLARE @PayUsers INT --付费用户数
DECLARE @RegBeginTime DATETIME --注册开始时间
DECLARE @RegEndTime DATETIME --注册截止时间
DECLARE @ActiveBeginTime DATETIME --活跃开始时间
DECLARE @ActiveEndTime DATETIME --活跃截止时间
DECLARE @tmptable TABLE(
UserID INT NOT NULL --用户ID
)
SET @RegBeginTime = CONVERT(CHAR(10), @BeginTime, 120)
SET @RegEndTime = CONVERT(CHAR(11), @BeginTime, 120) + '23:59:59'
SET @ActiveBeginTime = CONVERT(CHAR(10), @EndTime, 120)
SET @ActiveEndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
INSERT INTO @tmptable(UserID)
SELECT UserID FROM [AllUser] WHERE RegTime BETWEEN @RegBeginTime AND @RegEndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--1、注册用户数
SET @RegUsers = @@ROWCOUNT
IF(@RegUsers <= 0)
RETURN
--2、登录用户数
--3、游戏用户数
SELECT
@LoginUsers = COUNT(DISTINCT u.UserID),
@PlayUsers = COUNT(DISTINCT(CASE WHEN u.PlaySeconds > 0 THEN u.UserID ELSE 0 END))
FROM
[UserDailyStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
/*
SELECT
@PlayUsers = COUNT(DISTINCT d.UserID)
FROM
[DailyBetStat] d INNER JOIN @tmptable t ON d.UserID = t.UserID
WHERE
d.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
*/
--4、广告请求用户数、广告播放用户数
SELECT
@VideoReqUsers = COUNT(DISTINCT (CASE WHEN ReqTimes > 0 THEN UserID ELSE 0 END)),
@VideoPlayUsers = COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END))
FROM
(
SELECT
u.UserID, u.ReqTimes, u.PlayTimes
FROM
[UserVideoStat] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
UNION
SELECT
u.UserID, u.ReqTimes, u.PlayTimes
FROM
[UserVideoStatHistory] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
) t
--5、付费用户数
SELECT
@PayUsers = COUNT(DISTINCT u.UserID)
FROM
[UserPayLog] u INNER JOIN @tmptable t ON u.UserID = t.UserID
WHERE
u.DateFlag BETWEEN @ActiveBeginTime AND @ActiveEndTime
--返回信息
SELECT
ISNULL(@RegUsers, 0) AS RegUsers, ISNULL(@LoginUsers, 0) AS LoginUsers,
ISNULL(@PlayUsers, 0) AS PlayUsers, ISNULL(@VideoReqUsers, 0) AS VideoReqUsers,
ISNULL(@PayUsers , 0) AS PayUsers, ISNULL(@VideoPlayUsers, 0) AS VideoPlayUsers
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetHourList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_OnlineStat_GetHourList]
-- =============================================
-- Author: wolf
-- Create Date: 2016-09-23
-- Mendor: wolf
-- Alter Date: 2016-09-23
-- Description: 后台管理--在线统计(小时)
-- =============================================
CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetHourList]
@GameID INT, --游戏ID
@StartTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--在线统计(小时)
DECLARE @tmpStat TABLE(
GameID INT NOT NULL, --游戏ID
Hour_0 INT NOT NULL, -- 0点
Hour_1 INT NOT NULL, -- 1点
Hour_2 INT NOT NULL, -- 2点
Hour_3 INT NOT NULL, -- 3点
Hour_4 INT NOT NULL, -- 4点
Hour_5 INT NOT NULL, -- 5点
Hour_6 INT NOT NULL, -- 6点
Hour_7 INT NOT NULL, -- 7点
Hour_8 INT NOT NULL, -- 8点
Hour_9 INT NOT NULL, -- 9点
Hour_10 INT NOT NULL, -- 10点
Hour_11 INT NOT NULL, -- 11点
Hour_12 INT NOT NULL, -- 12点
Hour_13 INT NOT NULL, -- 13点
Hour_14 INT NOT NULL, -- 14点
Hour_15 INT NOT NULL, -- 15点
Hour_16 INT NOT NULL, -- 16点
Hour_17 INT NOT NULL, -- 17点
Hour_18 INT NOT NULL, -- 18点
Hour_19 INT NOT NULL, -- 19点
Hour_20 INT NOT NULL, -- 20点
Hour_21 INT NOT NULL, -- 21点
Hour_22 INT NOT NULL, -- 22点
Hour_23 INT NOT NULL -- 23点
)
--查询某个游戏
IF(@GameID > 0)
BEGIN
--统计在线
INSERT INTO @tmpStat
(
GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
SELECT
GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
FROM
[OnlineStatHour]
WHERE
DateFlag BETWEEN @StartTime AND @EndTime AND GameID = @GameID
GROUP BY
GameID
--返回信息
SELECT
g.EnglishName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
FROM
@tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
RETURN
END
--统计在线
INSERT INTO @tmpStat
(
GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
SELECT
GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
FROM
[OnlineStatHour]
WHERE
DateFlag BETWEEN @StartTime AND @EndTime
GROUP BY
GameID
--返回信息
SELECT
g.EnglishName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
FROM
@tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
ORDER BY
Hour_0 + Hour_1 + Hour_2 + Hour_3 + Hour_4 + Hour_5 + Hour_6 + Hour_7 + Hour_8 + Hour_9 + Hour_10 +
Hour_11 + Hour_12 + Hour_13 + Hour_14 + Hour_15 + Hour_16 + Hour_17 + Hour_18 + Hour_19 + Hour_20 +
Hour_21 + Hour_22 + Hour_23
DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- DECLARE @MaxCount INT
-- DECLARE @MinCount INT
-- DECLARE @AvgCount INT
-- EXEC [Manage_OnlineStat_GetList]
-- @PartnerID = 10001,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT,
-- @MaxCount = @MaxCount OUTPUT,
-- @MinCount = @MinCount OUTPUT,
-- @AvgCount = @AvgCount OUTPUT
-- SELECT @RecordCount AS RecordCount, @MaxCount AS MaxCount, @MinCount AS MinCount, @AvgCount AS AvgCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-11-02
-- Description: 在线人数统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetList]
@PartnerID INT, --合作商ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@MaxCount INT OUTPUT, --最高数
@MinCount INT OUTPUT, --最低数
@AvgCount INT OUTPUT --平均数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
CREATE TABLE #tmptable(
DateFlag SMALLDATETIME NOT NULL, --日期标志
OnlineUserCount INT NOT NULL, --在线人数
PartnerID INT NOT NULL, --合作商ID
LastOnlineUserCount INT NOT NULL --昨天在线人数
)
--创建临时表
CREATE TABLE #tmpLast(
DateFlag SMALLDATETIME NOT NULL, --日期标志
OnlineUserCount INT NOT NULL, --在线人数
PartnerID INT NOT NULL --合作商ID
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
SET @RecordCount = 0
SET @MaxCount = 0
SET @MinCount = 0
SET @AvgCount = 0
--某个合作商
IF(@PartnerID > 0)
BEGIN
--初始化临时表
INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, LastOnlineUserCount)
SELECT TOP 1000
DateFlag, OnlineUserCount, PartnerID, 0
FROM
[OnlineStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
--总记录数
SET @RecordCount = @@ROWCOUNT
--初始化临时表
INSERT INTO #tmpLast(DateFlag, OnlineUserCount, PartnerID)
SELECT TOP 1000
DateFlag + 1, OnlineUserCount, PartnerID
FROM
[OnlineStat]
WHERE
DateFlag BETWEEN @BeginTime - 1 AND @EndTime - 1 AND PartnerID = @PartnerID
END
ELSE
BEGIN
--初始化临时表
INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, LastOnlineUserCount)
SELECT TOP 1000
DateFlag, SUM(OnlineUserCount), 0, 0
FROM
[OnlineStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
GROUP BY
DateFlag
--总记录数
SET @RecordCount = @@ROWCOUNT
--初始化临时表
INSERT INTO #tmpLast(DateFlag, OnlineUserCount, PartnerID)
SELECT TOP 1000
DateFlag + 1, SUM(OnlineUserCount), 0
FROM
[OnlineStat]
WHERE
DateFlag BETWEEN @BeginTime - 1 AND @EndTime - 1 AND PartnerID = -1
GROUP BY
DateFlag
END
--计算最高人数、最低人数、平均人数
SELECT
@MaxCount = MAX(OnlineUserCount), @MinCount = MIN(OnlineUserCount), @AvgCount = AVG(OnlineUserCount)
FROM
#tmptable
--获取昨天的人数统计
UPDATE
t
SET
t.LastOnlineUserCount = l.OnlineUserCount
FROM
#tmptable t INNER JOIN #tmpLast l ON t.DateFlag = l.DateFlag AND t.PartnerID = l.PartnerID
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, OnlineUserCount, PartnerID, LastOnlineUserCount
FROM
#tmptable
)
--返回信息:日期标志(DateFlag)(datetime)、在线人数(OnlineUserCount)(int)
SELECT
DateFlag, l.OnlineUserCount, ISNULL(p.PartnerName, 'All channels') AS PartnerName, LastOnlineUserCount
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
l.RowNumber
--删除临时表
DROP TABLE #tmptable
DROP TABLE #tmpLast
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- DECLARE @MaxCount INT
-- DECLARE @MinCount INT
-- DECLARE @AvgCount INT
-- EXEC [Manage_OnlineStat_GetListByDay]
-- @PartnerID = 10001,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT,
-- @MaxCount = @MaxCount OUTPUT,
-- @MinCount = @MinCount OUTPUT,
-- @AvgCount = @AvgCount OUTPUT
-- SELECT @RecordCount AS RecordCount, @MaxCount AS MaxCount, @MinCount AS MinCount, @AvgCount AS AvgCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每天在线人数统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetListByDay]
@PartnerID INT, --合作商ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@MaxCount INT OUTPUT, --最高数
@MinCount INT OUTPUT, --最低数
@AvgCount INT OUTPUT --平均数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
CREATE TABLE #tmptable(
DateFlag DATETIME NOT NULL, --日期标志
OnlineUserCount INT NOT NULL, --在线人数
PartnerID INT NOT NULL, --合作商ID
TimeFlag CHAR(5) NOT NULL --时间标志
)
CREATE TABLE #tmp(
DateFlag DATETIME NOT NULL, --日期标志
OnlineUserCount INT NOT NULL --在线标志
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
SET @RecordCount = 0
SET @MaxCount = 0
SET @MinCount = 0
SET @AvgCount = 0
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
--某个合作商
IF(@PartnerID > 0)
BEGIN
--某个时间段的合作商在线人数加在一起
INSERT INTO #tmp(DateFlag, OnlineUserCount)
SELECT
DateFlag, OnlineUserCount
FROM
[OnlineStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
--初始化临时表
INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
SELECT
CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), @PartnerID, MAX(a.TimeFlag)
FROM
(
SELECT
DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
FROM
#tmp AS t
WHERE
OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
) AS a
GROUP BY
CONVERT(CHAR(10), a.DateFlag, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
END
ELSE
BEGIN
--某个时间段的合作商在线人数加在一起
INSERT INTO #tmp(DateFlag, OnlineUserCount)
SELECT
DateFlag, SUM(OnlineUserCount) AS OnlineUserCount
FROM
[OnlineStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
GROUP BY
DateFlag
--初始化临时表
INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
SELECT
CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), 0, MAX(a.TimeFlag)
FROM
(
SELECT
DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
FROM
#tmp AS t
WHERE
OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
) AS a
GROUP BY
CONVERT(CHAR(10), a.DateFlag, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--删除临时表
DROP TABLE #tmp
--计算最高人数、最低人数、平均人数
SELECT
@MaxCount = MAX(OnlineUserCount), @MinCount = MIN(OnlineUserCount), @AvgCount = AVG(OnlineUserCount)
FROM
#tmptable
SET @MaxCount = ISNULL(@MaxCount, 0)
SET @MinCount = ISNULL(@MinCount, 0)
SET @AvgCount = ISNULL(@AvgCount, 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, OnlineUserCount, PartnerID, TimeFlag
FROM
#tmptable
)
--返回信息:日期标志(DateFlag)(datetime)、在线人数(OnlineUserCount)(int)
SELECT
CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.OnlineUserCount,
ISNULL(p.PartnerName, N'所有渠道') AS PartnerName, l.TimeFlag
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
l.RowNumber
--删除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineStat_GetReport] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_OnlineStat_GetReport]
-- @BeginTime = '',
-- @EndTime = '',
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每天在线人数统计报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OnlineStat_GetReport]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --结束时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
Hour_0 INT NOT NULL, --0点
Hour_1 INT NOT NULL, --1点
Hour_2 INT NOT NULL, --2点
Hour_3 INT NOT NULL, --3点
Hour_4 INT NOT NULL, --4点
Hour_5 INT NOT NULL, --5点
Hour_6 INT NOT NULL, --6点
Hour_7 INT NOT NULL, --7点
Hour_8 INT NOT NULL, --8点
Hour_9 INT NOT NULL, --9点
Hour_10 INT NOT NULL, --10点
Hour_11 INT NOT NULL, --11点
Hour_12 INT NOT NULL, --12点
Hour_13 INT NOT NULL, --13点
Hour_14 INT NOT NULL, --14点
Hour_15 INT NOT NULL, --15点
Hour_16 INT NOT NULL, --16点
Hour_17 INT NOT NULL, --17点
Hour_18 INT NOT NULL, --18点
Hour_19 INT NOT NULL, --19点
Hour_20 INT NOT NULL, --20点
Hour_21 INT NOT NULL, --21点
Hour_22 INT NOT NULL, --22点
Hour_23 INT NOT NULL --23点
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
--初始化表变量
INSERT INTO @tmptable
(
DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10,
Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21,
Hour_22, Hour_23
)
SELECT
CONVERT(CHAR(10), DateFlag, 120),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 0 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 1 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 2 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 3 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 4 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 5 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 6 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 7 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 8 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 9 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 10 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 11 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 12 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 13 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 14 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 15 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 16 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 17 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 18 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 19 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 20 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 21 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 22 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 23 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0)
FROM
[OnlineStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10, Hour_11,
Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
FROM
@tmptable
ORDER BY
DateFlag ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineStatChip_GetHourList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_OnlineStatChip_GetHourList]
-- =============================================
-- Author: wolf
-- Create Date: 2016-09-23
-- Mendor: wolf
-- Alter Date: 2016-09-23
-- Description: 后台管理--在线统计(小时)
-- =============================================
CREATE PROCEDURE [dbo].[Manage_OnlineStatChip_GetHourList]
@GameID INT, --游戏ID
@StartTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--在线统计(小时)
DECLARE @tmpStat TABLE(
GameID INT NOT NULL, --游戏ID
Hour_0 INT NOT NULL, -- 0点
Hour_1 INT NOT NULL, -- 1点
Hour_2 INT NOT NULL, -- 2点
Hour_3 INT NOT NULL, -- 3点
Hour_4 INT NOT NULL, -- 4点
Hour_5 INT NOT NULL, -- 5点
Hour_6 INT NOT NULL, -- 6点
Hour_7 INT NOT NULL, -- 7点
Hour_8 INT NOT NULL, -- 8点
Hour_9 INT NOT NULL, -- 9点
Hour_10 INT NOT NULL, -- 10点
Hour_11 INT NOT NULL, -- 11点
Hour_12 INT NOT NULL, -- 12点
Hour_13 INT NOT NULL, -- 13点
Hour_14 INT NOT NULL, -- 14点
Hour_15 INT NOT NULL, -- 15点
Hour_16 INT NOT NULL, -- 16点
Hour_17 INT NOT NULL, -- 17点
Hour_18 INT NOT NULL, -- 18点
Hour_19 INT NOT NULL, -- 19点
Hour_20 INT NOT NULL, -- 20点
Hour_21 INT NOT NULL, -- 21点
Hour_22 INT NOT NULL, -- 22点
Hour_23 INT NOT NULL -- 23点
)
--查询某个游戏
IF(@GameID > 0)
BEGIN
--统计在线
INSERT INTO @tmpStat
(
GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
SELECT
GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
FROM
[OnlineStatHourChip]
WHERE
DateFlag BETWEEN @StartTime AND @EndTime AND GameID = @GameID
GROUP BY
GameID
--返回信息
SELECT
g.ChineseName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
FROM
@tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
RETURN
END
--统计在线
INSERT INTO @tmpStat
(
GameID, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
SELECT
GameID, SUM(Hour_0) AS Hour_0, SUM(Hour_1) AS Hour_1, SUM(Hour_2) AS Hour_2, SUM(Hour_3) AS Hour_3,
SUM(Hour_4) AS Hour_4, SUM(Hour_5) AS Hour_5, SUM(Hour_6) AS Hour_6, SUM(Hour_7) AS Hour_7, SUM(Hour_8) AS Hour_8,
SUM(Hour_9) AS Hour_9, SUM(Hour_10) AS Hour_10, SUM(Hour_11) AS Hour_11, SUM(Hour_12) AS Hour_12, SUM(Hour_13) AS Hour_13,
SUM(Hour_14) AS Hour_14, SUM(Hour_15) AS Hour_15, SUM(Hour_16) AS Hour_16, SUM(Hour_17) AS Hour_17, SUM(Hour_18) AS Hour_18,
SUM(Hour_19) AS Hour_19, SUM(Hour_20) AS Hour_20, SUM(Hour_21) AS Hour_21, SUM(Hour_22) AS Hour_22, SUM(Hour_23) AS Hour_23
FROM
[OnlineStatHourChip]
WHERE
DateFlag BETWEEN @StartTime AND @EndTime
GROUP BY
GameID
--返回信息
SELECT
g.ChineseName, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8,
Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
FROM
@tmpStat t INNER JOIN [AllGame] g ON t.GameID = g.GameID
ORDER BY
Hour_0 + Hour_1 + Hour_2 + Hour_3 + Hour_4 + Hour_5 + Hour_6 + Hour_7 + Hour_8 + Hour_9 + Hour_10 +
Hour_11 + Hour_12 + Hour_13 + Hour_14 + Hour_15 + Hour_16 + Hour_17 + Hour_18 + Hour_19 + Hour_20 +
Hour_21 + Hour_22 + Hour_23
DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineStatChip_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- DECLARE @MaxCount INT
-- DECLARE @MinCount INT
-- DECLARE @AvgCount INT
-- EXEC [Manage_OnlineStatChip_GetListByDay]
-- @PartnerID = 10001,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT,
-- @MaxCount = @MaxCount OUTPUT,
-- @MinCount = @MinCount OUTPUT,
-- @AvgCount = @AvgCount OUTPUT
-- SELECT @RecordCount AS RecordCount, @MaxCount AS MaxCount, @MinCount AS MinCount, @AvgCount AS AvgCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每天在线人数统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OnlineStatChip_GetListByDay]
@PartnerID INT, --合作商ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@MaxCount INT OUTPUT, --最高数
@MinCount INT OUTPUT, --最低数
@AvgCount INT OUTPUT --平均数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
CREATE TABLE #tmptable(
DateFlag DATETIME NOT NULL, --日期标志
OnlineUserCount INT NOT NULL, --在线人数
PartnerID INT NOT NULL, --合作商ID
TimeFlag CHAR(5) NOT NULL --时间标志
)
CREATE TABLE #tmp(
DateFlag DATETIME NOT NULL, --日期标志
OnlineUserCount INT NOT NULL --在线标志
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
SET @RecordCount = 0
SET @MaxCount = 0
SET @MinCount = 0
SET @AvgCount = 0
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
--某个合作商
IF(@PartnerID > 0)
BEGIN
--某个时间段的合作商在线人数加在一起
INSERT INTO #tmp(DateFlag, OnlineUserCount)
SELECT
DateFlag, OnlineUserCount
FROM
[OnlineStatChip]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
--初始化临时表
INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
SELECT
CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), @PartnerID, MAX(a.TimeFlag)
FROM
(
SELECT
DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
FROM
#tmp AS t
WHERE
OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
) AS a
GROUP BY
CONVERT(CHAR(10), a.DateFlag, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
END
ELSE
BEGIN
--某个时间段的合作商在线人数加在一起
INSERT INTO #tmp(DateFlag, OnlineUserCount)
SELECT
DateFlag, SUM(OnlineUserCount) AS OnlineUserCount
FROM
[OnlineStatChip]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
GROUP BY
DateFlag
--初始化临时表
INSERT INTO #tmptable(DateFlag, OnlineUserCount, PartnerID, TimeFlag)
SELECT
CONVERT(CHAR(10), a.DateFlag, 120), MAX(a.OnlineUserCount), 0, MAX(a.TimeFlag)
FROM
(
SELECT
DateFlag, OnlineUserCount, CONVERT(CHAR(5), DateFlag, 108) AS TimeFlag
FROM
#tmp AS t
WHERE
OnlineUserCount = (SELECT MAX(OnlineUserCount) FROM #tmp WHERE CONVERT(CHAR(10), DateFlag, 120) = CONVERT(CHAR(10), t.DateFlag, 120))
) AS a
GROUP BY
CONVERT(CHAR(10), a.DateFlag, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--删除临时表
DROP TABLE #tmp
--计算最高人数、最低人数、平均人数
SELECT
@MaxCount = MAX(OnlineUserCount), @MinCount = MIN(OnlineUserCount), @AvgCount = AVG(OnlineUserCount)
FROM
#tmptable
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, OnlineUserCount, PartnerID, TimeFlag
FROM
#tmptable
)
--返回信息:日期标志(DateFlag)(datetime)、在线人数(OnlineUserCount)(int)
SELECT
CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.OnlineUserCount,
ISNULL(p.PartnerName, N'所有渠道') AS PartnerName, l.TimeFlag
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
l.RowNumber
--删除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineStatChip_GetReport] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_OnlineStatChip_GetReport]
-- @BeginTime = '',
-- @EndTime = '',
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 每天在线人数统计报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OnlineStatChip_GetReport]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --结束时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
Hour_0 INT NOT NULL, --0点
Hour_1 INT NOT NULL, --1点
Hour_2 INT NOT NULL, --2点
Hour_3 INT NOT NULL, --3点
Hour_4 INT NOT NULL, --4点
Hour_5 INT NOT NULL, --5点
Hour_6 INT NOT NULL, --6点
Hour_7 INT NOT NULL, --7点
Hour_8 INT NOT NULL, --8点
Hour_9 INT NOT NULL, --9点
Hour_10 INT NOT NULL, --10点
Hour_11 INT NOT NULL, --11点
Hour_12 INT NOT NULL, --12点
Hour_13 INT NOT NULL, --13点
Hour_14 INT NOT NULL, --14点
Hour_15 INT NOT NULL, --15点
Hour_16 INT NOT NULL, --16点
Hour_17 INT NOT NULL, --17点
Hour_18 INT NOT NULL, --18点
Hour_19 INT NOT NULL, --19点
Hour_20 INT NOT NULL, --20点
Hour_21 INT NOT NULL, --21点
Hour_22 INT NOT NULL, --22点
Hour_23 INT NOT NULL --23点
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59'
--初始化表变量
INSERT INTO @tmptable
(
DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10,
Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21,
Hour_22, Hour_23
)
SELECT
CONVERT(CHAR(10), DateFlag, 120),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 0 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 1 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 2 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 3 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 4 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 5 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 6 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 7 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 8 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 9 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 10 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 11 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 12 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 13 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 14 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 15 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 16 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 17 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 18 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 19 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 20 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 21 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 22 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN DATEPART(HOUR, DateFlag) = 23 AND DATEPART(MINUTE, DateFlag) BETWEEN 0 AND 9 THEN OnlineUserCount ELSE 0 END), 0)
FROM
[OnlineStatChip]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = -1
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7, Hour_8, Hour_9, Hour_10, Hour_11,
Hour_12, Hour_13, Hour_14, Hour_15, Hour_16, Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
FROM
@tmptable
ORDER BY
DateFlag ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineUser_GetReport] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_OnlineUser_GetReport]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 同时在线人数统计报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OnlineUser_GetReport]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --结束时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120),
SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
FROM
[OnlineStatMin]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OnlineUserChip_GetReport] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_OnlineUserChip_GetReport]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 同时在线人数统计报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OnlineUserChip_GetReport]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --结束时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120),
SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
FROM
[OnlineStatMinChip]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_OOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_OOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2022-11-07
-- Description: CrushPay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_OOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[OOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[OOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Partner_Add] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_Partner_Add]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @PartnerID = 1,
-- @PartnerName = '',
-- @PrePartnerID = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2015-06-26
-- Mendor: wolf
-- Alter Date: 2016-04-22
-- Description: 添加渠道
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Partner_Add]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@PartnerID INT, --渠道ID
@PartnerName NVARCHAR(32), --渠道名称
@PrePartnerID INT, --父渠道ID
@IPAddress VARCHAR(16), --IP地址
@EnglishName VARCHAR(32), --游戏英文名
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @RetCode = 0
--判断是否存在
IF EXISTS(SELECT PartnerID FROM [Partner] WHERE PartnerID = @PartnerID)
BEGIN
SET @RetCode = 11
RETURN
END
--添加渠道
INSERT INTO [Partner]
(
PartnerID, PartnerName, PrePartnerID, EnglishName
)
VALUES
(
@PartnerID, @PartnerName, @PrePartnerID, @EnglishName
)
SET @Msg = N'Add channel successfully, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@PrePartnerID=' + LTRIM(STR(@PrePartnerID))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Partner_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Manage_Partner_Del]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @PartnerID = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2015-06-26
-- Mendor: wolf
-- Alter Date: 2016-04-08
-- Description: 删除渠道
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Partner_Del]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerName NVARCHAR(32) --渠道名称
DECLARE @PrePartnerID INT --父渠道ID
SET @RetCode = 0
--渠道信息
SELECT @PartnerName = PartnerName, @PrePartnerID = PrePartnerID FROM [Partner] WHERE PartnerID = @PartnerID
--判断是否存在
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
RETURN
END
--删除渠道
DELETE FROM [Partner] WHERE PartnerID = @PartnerID
SET @Msg = N'Delete channel succeeded, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@PartnerName=' + @PartnerName + ',@PrePartnerID=' + LTRIM(STR(@PrePartnerID))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Partner_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Partner_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-12
-- Mendor: wolf
-- Alter Date: 2016-04-22
-- Description: 合作商列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Partner_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息;合作商ID(PartnerID)(int)、合作商名称(PartnerName)(varchar(32))
SELECT PartnerID, PartnerName, PrePartnerID, EnglishName FROM [Partner] ORDER BY PartnerID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetChannelList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- DECLARE @TotalRMBMoney DECIMAL(10, 2)
-- DECLARE @UserCount INT
-- DECLARE @CurrRMBMoney DECIMAL(10, 2)
-- EXEC [Manage_Pay_GetChannelList]
-- @PartnerID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT,
-- @TotalRMBMoney = @TotalRMBMoney OUTPUT,
-- @UserCount = @UserCount OUTPUT,
-- @CurrRMBMoney = @CurrRMBMoney OUTPUT
-- SELECT @RecordCount AS RecordCount, @TotalRMBMoney AS TotalRMBMoney,
-- @UserCount AS UserCount, @CurrRMBMoney AS CurrRMBMoney
-- ==============================================
-- Author: wolf
-- Create Date: 2014-11-13
-- Mendor: wolf
-- Alter Date: 2016-08-05
-- Description: 游戏充值--获取各渠道充值列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetChannelList]
@PartnerID INT, --合作商ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney DECIMAL(18, 2) OUTPUT, --成功充值数
@UserCount INT OUTPUT, --充值用户数
@CurrRMBMoney DECIMAL(18, 2) OUTPUT --今天充值总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmpPay TABLE(
PartnerID INT NOT NULL, --合作商ID
DateFlag VARCHAR(10) NOT NULL, --日期标志
TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
TotalUserCount INT NOT NULL --充值用户数(除去重复的)
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
SET @UserCount = 0
SET @RecordCount = 0
SET @CurrRMBMoney = 0
--创建临时表
CREATE TABLE #tmptable(
PartnerID INT NOT NULL, --合作商ID
Crdate DATETIME NOT NULL, --充值时间
UserID INT NOT NULL, --用户ID
Price DECIMAL(18, 2) NOT NULL --交易金额
)
--根据渠道统计
IF(@PartnerID > 0)
BEGIN
INSERT INTO #tmptable
(
PartnerID, Crdate, UserID, Price
)
--AppStore
SELECT
PartnerID, Crdate, UserID, Price
FROM
[VerifySuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID AND IsSandBox = 0
UNION ALL
--GooglePay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[GoogleSuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
UNION ALL
--croPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[CroPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
UNION ALL
--DingpeiPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[DingpeiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
UNION ALL
--CrushPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[CrushPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
UNION ALL
--PayerMaxPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[PayerMaxPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
UNION ALL
--OPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[OPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
UNION ALL
--huaweiPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[huaweiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
END
--所有
ELSE
BEGIN
INSERT INTO #tmptable
(
PartnerID, Crdate, UserID, Price
)
--苹果充值
SELECT
PartnerID, Crdate, UserID, Price
FROM
[VerifySuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
UNION ALL
--GooglePay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[GoogleSuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
--croPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[CroPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
--DingpeiPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[DingpeiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
--CrushPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[CrushPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
--PayerMaxPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[PayerMaxPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
--OPay
SELECT
PartnerID, Crdate, UserID, Price
FROM
[OPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
--ManualPay
SELECT
0, Crdate, UserID, Price
FROM
[ManualPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
--huawei
SELECT
PartnerID, Crdate, UserID, Price
FROM
[huaweiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable), 0)
SET @TotalRMBMOney = CAST(@TotalRMBMOney / 1.00 AS DECIMAL(18, 2))
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM #tmptable), 0)
SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable WHERE Crdate >= CONVERT(CHAR(10), GETDATE(), 120)), 0)
SET @CurrRMBMoney = CAST(@CurrRMBMoney / 1.00 AS DECIMAL(18, 2))
--初始化表变量
INSERT INTO @tmpPay
(
PartnerID, DateFlag, TotalRMBMoney, TotalUserCount
)
SELECT
PartnerID, CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
FROM
#tmptable
GROUP BY
PartnerID, CONVERT(CHAR(10), Crdate, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
PartnerID, DateFlag, TotalRMBMoney, TotalUserCount
FROM
@tmpPay
)
--返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
-- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
SELECT
l.DateFlag, CAST(l.TotalRMBMoney / 1.00 AS DECIMAL(10, 2)) AS RMBMoney,
l.TotalUserCount AS PayUserCount, CAST(l.TotalRMBMoney / 1.00 / l.TotalUserCount AS DECIMAL(10, 2)) AS ARPU,
ISNULL(p.PartnerName, N'所有渠道') AS PartnerName
FROM
[List] l LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
--删除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetChipListByDay] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_Pay_GetChipListByDay]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 游戏充值--日充值总额
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetChipListByDay]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney BIGINT OUTPUT, --成功充值数
@UserCount INT OUTPUT, --充值用户数
@CurrRMBMoney BIGINT OUTPUT --今天充值总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmpPay TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
TotalUserCount INT NOT NULL --充值用户数(除去重复的)
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @UserCount = 0
SET @RecordCount = 0
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--创建临时表
CREATE TABLE #tmptable(
Crdate SMALLDATETIME NOT NULL, --充值时间
UserID INT NOT NULL, --用户ID
Price DECIMAL(18, 2) NOT NULL --交易金额
)
--微信充值
INSERT INTO #tmptable
(
Crdate, UserID, Price
)
SELECT
g.Crdate, g.UserID, g.Price
FROM
[GoogleSuccessLog] g INNER JOIN [DiamondMall] d ON g.ProductID = d.ProductID AND d.ShopType = 2
WHERE
g.Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[Flashpay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[Kayapay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
m.Crdate, m.UserID, m.Price
FROM
[ManualPay] m INNER JOIN [DiamondMall] d ON m.ProductID = d.ProductID AND d.ShopType = 2
WHERE
m.Crdate BETWEEN @BeginTime AND @EndTime
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM #tmptable), 0)
SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable WHERE Crdate >= CONVERT(CHAR(10), @EndTime, 120)), 0)
--初始化表变量
INSERT INTO @tmpPay
(
DateFlag, TotalRMBMoney, TotalUserCount
)
SELECT
CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
FROM
#tmptable
GROUP BY
CONVERT(CHAR(10), Crdate, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
DateFlag, TotalRMBMoney, TotalUserCount
FROM
@tmpPay
)
--返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
-- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, TotalRMBMoney AS RMBMoney,
TotalUserCount AS PayUserCount, CAST(TotalRMBMoney / 1.00 / TotalUserCount AS DECIMAL(10, 2)) AS ARPU
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--删除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetChipLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Pay_GetChipLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: google充值日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetChipLog]
@PayID INT, --充值渠道ID
@UserID INT, --用户ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@TotalAmount BIGINT OUTPUT --充值总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
OrderID VARCHAR(256) NOT NULL, --订单
PayChannel VARCHAR(16) NOT NULL, --充值渠道
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --充值金额
Crdate DATETIME NOT NULL, --时间
IPAddress VARCHAR(16) NOT NULL --IP地址
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--查询某个账号
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
g.Token, 'GooglePay', g.UserID, g.ProductID, g.Price, g.Crdate, g.IPAddress
FROM
[GoogleSuccessLog] g INNER JOIN [DiamondMall] d ON g.ProductID = d.ProductID AND d.ShopType = 2
WHERE
g.Crdate BETWEEN @BeginTime AND @EndTime AND g.UserID = @UserID
END
--查询所有
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
g.Token, 'GooglePay', g.UserID, g.ProductID, g.Price, g.Crdate, g.IPAddress
FROM
[GoogleSuccessLog] g INNER JOIN [DiamondMall] d ON g.ProductID = d.ProductID AND d.ShopType = 2
WHERE
g.Crdate BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
--统计总额
SELECT @TotalAmount = ISNULL(SUM(Price), 0) FROM @tmptable
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.PayChannel, l.UserID, u.NickName, l.ProductID, l.Price,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.IPAddress
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_Pay_GetList]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-04-23
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 游戏充值--获取各渠道充值列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetList]
@PayID INT, --充值渠道ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney DECIMAL(18, 2) OUTPUT, --成功充值数
@UserCount INT OUTPUT, --充值用户数
@CurrRMBMoney DECIMAL(18, 2) OUTPUT --今天充值总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmpPay TABLE(
PayID INT NOT NULL, --充值渠道ID
DateFlag SMALLDATETIME NOT NULL, --日期标志
TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
TotalUserCount INT NOT NULL --充值用户数(除去重复的)
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @UserCount = 0
SET @RecordCount = 0
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--表变量
DECLARE @tmptable TABLE(
PayID INT NOT NULL, --充值渠道ID
Crdate DATETIME NOT NULL, --充值时间
UserID INT NOT NULL, --用户ID
Price DECIMAL(18, 2) NOT NULL --交易金额
)
--1=Google
IF(@PayID IN (0, 1))
BEGIN
INSERT INTO @tmptable(
PayID, Crdate, UserID, Price
)
SELECT
1, Crdate, UserID, Price
FROM
[GoogleSuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--2=AppStore
IF(@PayID IN (0, 2))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
2, Crdate, UserID, Price
FROM
[VerifySuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
END
--3=CroPay
IF(@PayID IN (0, 3))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
3, Crdate, UserID, Price
FROM
[CroPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--6=DingpeiPay
IF(@PayID IN (0, 6))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
6, Crdate, UserID, Price
FROM
[DingpeiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--7=CrushPay
IF(@PayID IN (0, 7))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
7, Crdate, UserID, Price
FROM
[CrushPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--8=PayerMaxPay
IF(@PayID IN (0, 8))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
8, Crdate, UserID, Price
FROM
[PayerMaxPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--9=OPay
IF(@PayID IN (0, 9))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
9, Crdate, UserID, Price
FROM
[OPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--10=华为
IF(@PayID IN (0, 10))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
10, Crdate, UserID, Price
FROM
[huaweiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--99=手动补单
IF(@PayID IN (0, 99))
BEGIN
INSERT INTO @tmptable
(
PayID, Crdate, UserID, Price
)
SELECT
99, Crdate, UserID, Price
FROM
[ManualPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE Crdate >= CONVERT(CHAR(10), @EndTime, 120)), 0)
--初始化表变量
INSERT INTO @tmpPay
(
PayID, DateFlag, TotalRMBMoney, TotalUserCount
)
SELECT
PayID, CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
FROM
@tmptable
GROUP BY
PayID, CONVERT(CHAR(10), Crdate, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
PayID, DateFlag, TotalRMBMoney, TotalUserCount
FROM
@tmpPay
)
--返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
-- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
SELECT
CASE
WHEN PayID = 0 THEN N'所有渠道'
WHEN PayID = 1 THEN N'GooglePay'
WHEN PayID = 2 THEN N'AppStore'
WHEN PayID = 3 THEN N'CroPay'
WHEN PayID = 6 THEN N'Dingpei'
WHEN PayID = 7 THEN N'CrushPay'
WHEN PayID = 8 THEN N'PayerMaxPay'
WHEN PayID = 9 THEN N'OPay'
WHEN PayID = 10 THEN N'华为支付'
WHEN PayID = 99 THEN N'手动补单'
ELSE ''
END AS PayName, CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
TotalRMBMoney AS RMBMoney, TotalUserCount AS PayUserCount,
CAST(TotalRMBMoney / 1.00 / TotalUserCount AS DECIMAL(10, 2)) AS ARPU
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetListByDay] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_Pay_GetListByDay]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 游戏充值--日充值总额
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetListByDay]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney DECIMAL(18, 2) OUTPUT, --成功充值数
@UserCount INT OUTPUT, --充值用户数
@CurrRMBMoney DECIMAL(18, 2) OUTPUT --今天充值总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmpPay TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
TotalRMBMoney DECIMAL(18, 2) NOT NULL, --充值总额
TotalUserCount INT NOT NULL --充值用户数(除去重复的)
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @UserCount = 0
SET @RecordCount = 0
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--创建临时表
CREATE TABLE #tmptable(
Crdate SMALLDATETIME NOT NULL, --充值时间
UserID INT NOT NULL, --用户ID
Price DECIMAL(18, 2) NOT NULL --交易金额
)
--微信充值
INSERT INTO #tmptable
(
Crdate, UserID, Price
)
SELECT
Crdate, UserID, Price
FROM
[VerifySuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[GoogleSuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[CroPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[DingpeiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[CrushPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[PayerMaxPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[OPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[huaweiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Crdate, UserID, Price
FROM
[ManualPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM #tmptable), 0)
SET @CurrRMBMoney = ISNULL((SELECT SUM(Price) FROM #tmptable WHERE Crdate >= CONVERT(CHAR(10), @EndTime, 120)), 0)
--初始化表变量
INSERT INTO @tmpPay
(
DateFlag, TotalRMBMoney, TotalUserCount
)
SELECT
CONVERT(CHAR(10), Crdate, 120), SUM(Price), COUNT(DISTINCT UserID)
FROM
#tmptable
GROUP BY
CONVERT(CHAR(10), Crdate, 120)
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, TotalRMBMoney DESC) AS RowNumber,
DateFlag, TotalRMBMoney, TotalUserCount
FROM
@tmpPay
)
--返回信息:充值渠道名称(PayName)(varchar)、日期(DateFlag)(smalldatetime)、充值额度(RMBMoney)(decimal)、
-- 下订单用户数(UserCount)(int)、付费用户数(PayUserCount)(int)
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, TotalRMBMoney AS RMBMoney,
TotalUserCount AS PayUserCount, CAST(TotalRMBMoney / 1.00 / TotalUserCount AS DECIMAL(10, 2)) AS ARPU
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--删除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Pay_GetLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 充值日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetLog]
@PayID INT, --充值渠道ID
@UserID INT, --用户ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@TotalAmount DECIMAL(18, 2) OUTPUT --充值总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
OrderID VARCHAR(256) NOT NULL, --订单
PayChannel NVARCHAR(32) NOT NULL, --充值渠道
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --充值金额
Crdate DATETIME NOT NULL, --时间
IPAddress VARCHAR(16) NOT NULL --IP地址
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--查询某个账号
IF(@UserID > 0)
BEGIN
--1=GooglePay
IF(@PayID IN (0, 1))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
Token, N'GooglePay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[GoogleSuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--2=AppStore
IF(@PayID IN (0, 2))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TransactionID, N'AppStore', UserID, ProductID, Price, Crdate, IPAddress
FROM
[VerifySuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND IsSandBox = 0
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--3=CroPay
IF(@PayID IN (0, 3))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'CroPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[CroPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--6=DingpeiPay
IF(@PayID IN (0, 6))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'DingpeiPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[DingpeiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--7=CrushPay
IF(@PayID IN (0, 7))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'CrushPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[CrushPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--8=PayerMaxPay
IF(@PayID IN (0, 8))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'PayerMaxPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[PayerMaxPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--9=OPay
IF(@PayID IN (0, 9))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'OPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[OPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--10=华为
IF(@PayID IN (0, 10))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'华为支付', UserID, ProductID, Price, Crdate, IPAddress
FROM
[huaweiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--99=手动补单
IF(@PayID IN (0, 99))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
OrderID, N'手动补单', UserID, ProductID, Price, Crdate, '127.0.0.1'
FROM
[ManualPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
END
--查询所有
ELSE
BEGIN
--1=GooglePay
IF(@PayID IN (0, 1))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
Token, N'GooglePay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[GoogleSuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--2=AppStore
IF(@PayID IN (0, 2))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TransactionID, N'AppStore', UserID, ProductID, Price, Crdate, IPAddress
FROM
[VerifySuccessLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND IsSandBox = 0
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--3=CroPay
IF(@PayID IN (0, 3))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'CroPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[CroPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--6=DingpeiPay
IF(@PayID IN (0, 6))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'DingpeiPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[DingpeiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--7=CrushPay
IF(@PayID IN (0, 7))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'CrushPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[CrushPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--8=PayerMaxPay
IF(@PayID IN (0, 8))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'PayerMaxPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[PayerMaxPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--9=OPay
IF(@PayID IN (0, 9))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'OPay', UserID, ProductID, Price, Crdate, IPAddress
FROM
[OPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--10=华为支付
IF(@PayID IN (0, 10))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
TradeID, N'华为支付', UserID, ProductID, Price, Crdate, IPAddress
FROM
[huaweiPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
--99=手动补单
IF(@PayID IN (0, 99))
BEGIN
INSERT INTO @tmptable
(
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
)
SELECT
OrderID, N'手动补单', UserID, ProductID, Price, Crdate, '127.0.0.1'
FROM
[ManualPay]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
END
--统计总额
SELECT @TotalAmount = ISNULL(SUM(Price), 0) FROM @tmptable
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, PayChannel, UserID, ProductID, Price, Crdate, IPAddress
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.PayChannel, l.UserID, u.NickName, l.ProductID, l.Price,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.IPAddress
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetRank] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Pay_GetRank]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 充值排行
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetRank]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
TotalAmount DECIMAL(18, 2) NOT NULL --金额
)
--初始化表变量
INSERT INTO @tmptable(UserID, TotalAmount)
SELECT
UserID, SUM(RMBMoney)
FROM
[UserPayLog]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
UserID
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY TotalAmount DESC) AS RowNumber,
UserID, TotalAmount
FROM
@tmptable
)
--返回信息
SELECT
t.RowNumber, t.UserID, u.NickName, t.TotalAmount
FROM
[List] t INNER JOIN [AllUser] u ON t.UserID = u.UserID
WHERE
t.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
t.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Pay_GetUserList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Pay_GetUserList]
-- =============================================
-- Author: wolf
-- Create Date: 2016-10-21
-- Mendor: wolf
-- Alter Date: 2016-10-21
-- Description: 后台用户充值列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_Pay_GetUserList]
@DateFlag SMALLDATETIME, --日期标识
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--创建临时表
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
Amount BIGINT NOT NULL, --金币
VipLevel INT NOT NULL, --VIP等级
RMBMoney DECIMAL(18, 2) NOT NULL --充值金额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--初始化表变量
INSERT INTO @tmptable
(
UserID, Amount, VipLevel, RMBMoney
)
SELECT
UserID, 0, 0, RMBMoney
FROM
[UserPayLog]
WHERE
DateFlag = @DateFlag
--记录数
SET @RecordCount = @@ROWCOUNT
--获取金豆信息
UPDATE t SET t.Amount = m.Amount FROM @tmptable t INNER JOIN [Money] m ON t.UserID = m.UserID
--获取vip
UPDATE t SET t.VipLevel = v.VipLevel FROM @tmptable t INNER JOIN [UserVip] v ON t.UserID = v.UserID
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY RMBMoney DESC) AS RowNumber,
UserID, Amount, VIPLevel, RMBMoney
FROM
@tmptable
)
--返回信息
SELECT
l.RowNumber, l.UserID, u.NickName, l.Amount, l.VIPLevel, l.RMBMoney, u.PayMoney,
CONVERT(CHAR(23), u.RegTime, 120) AS RegTime, u.RegIP,
CONVERT(CHAR(23), u.LoginTime, 120) AS LoginTime
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PayerMaxOrder_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_PayerMaxOrder_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2022-11-07
-- Description: PayerMaxPay--获取订单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PayerMaxOrder_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@TotalRMBMoney INT OUTPUT, --成功充值数
@UserCount INT OUTPUT --下订单用户数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) NOT NULL, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
ProductID VARCHAR(32) NOT NULL, --产品ID
Price DECIMAL(18, 2) NOT NULL, --价格
GetStatus TINYINT NOT NULL, --状态
PartnerID INT NOT NULL, --渠道ID
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
--用户ID查询
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[PayerMaxOrder]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--所有订单
ELSE
BEGIN
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
)
SELECT
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
[PayerMaxOrder]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
END
--总记录数
SET @RecordCount = @@ROWCOUNT
--成功充值总额
SET @TotalRMBMoney = ISNULL((SELECT SUM(Price) FROM @tmptable WHERE GetStatus = 1), 0)
SET @UserCount = ISNULL((SELECT COUNT(DISTINCT UserID) FROM @tmptable), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, ProductID, Price, GetStatus, PartnerID, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.ProductID, l.Price, l.GetStatus,
ISNULL(p.PartnerName, LTRIM(STR(l.PartnerID))) AS PartnerName, l.IPAddress,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PayStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_PayStat_GetList]
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2016-11-17
-- Mendor: wolf
-- Alter Date: 2016-11-17
-- Description: 充值统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PayStat_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
CREATE TABLE #tmptable(
DateFlag SMALLDATETIME NOT NULL, --日期标志
RMBMoney DECIMAL(18, 2) NOT NULL, --充值金额
UserCount INT NOT NULL, --充值用户数(除去重复的)
LastRMBMoney DECIMAL(18, 2) NOT NULL, --昨天充值金额
LastUserCount INT NOT NULL --昨天充值用户数(除去重复的)
)
--创建临时表
CREATE TABLE #tmpLast(
DateFlag SMALLDATETIME NOT NULL, --日期标志
RMBMoney DECIMAL(18, 2) NOT NULL, --充值金额
UserCount INT NOT NULL --充值用户数(除去重复的)
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--初始化临时表
INSERT INTO #tmptable(DateFlag, RMBMoney, UserCount, LastRMBMoney, LastUserCount)
SELECT
DateFlag, SUM(RMBMoney), SUM(UserCount), 0, 0
FROM
[PayStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
DateFlag
--总记录数
SET @RecordCount = @@ROWCOUNT
--初始化临时表
INSERT INTO #tmpLast(DateFlag, RMBMoney, UserCount)
SELECT
DateFlag, SUM(RMBMoney), SUM(UserCount)
FROM
[PayStat]
WHERE
DateFlag BETWEEN @BeginTime - 1 AND @EndTime - 1
GROUP BY
DateFlag
--获取昨天的充值统计
UPDATE
t
SET
t.LastRMBMoney = l.RMBMoney, t.LastUserCount = l.UserCount
FROM
#tmptable t INNER JOIN #tmpLast l ON t.DateFlag = l.DateFlag + 1
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, RMBMoney, UserCount, LastRMBMoney, LastUserCount
FROM
#tmptable
)
--返回信息:日期标志(DateFlag)(datetime)
SELECT
CONVERT(CHAR(16), DateFlag, 120) AS DateFlag,
RMBMoney, UserCount, LastRMBMoney, LastUserCount
FROM
[List]
WHERE
RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
RowNumber
--删除临时表
DROP TABLE #tmptable
DROP TABLE #tmpLast
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PlatformConfig_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_PlatformConfig_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 获取平台配置信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PlatformConfig_GetInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RegGoldSend, DailyTransferAmount, BindFacebook, BindMobile, UpgradeAPK, IsCouponTask
FROM
[PlatformConfig]
WHERE
ConfigID = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PlatformConfig_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_PlatformConfig_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 修改平台配置信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PlatformConfig_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@RegGoldSend INT, --注册赠送金币
@DailyTransferAmount BIGINT, --日转账限额
@BindFacebook INT, --绑定Facebook
@BindMobile INT, --绑定手机号
@UpgradeAPK INT, --升级APK
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @CurrRegGoldSend INT
SET @RetCode = 0
--更新
UPDATE
[PlatformConfig]
SET
RegGoldSend = @RegGoldSend, DailyTransferAmount = @DailyTransferAmount, BindFacebook = @BindFacebook,
BindMobile = @BindMobile, UpgradeAPK = @UpgradeAPK,
@CurrRegGoldSend = RegGoldSend
WHERE
ConfigID = 1
SET @Msg = N'修改平台配置信息,RegGoldSend=' + CAST(@RegGoldSend AS VARCHAR(32))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PlatformInfo_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_PlatformInfo_GetList]
-- @PartnerID = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2015-09-07
-- Mendor: wolf
-- Alter Date: 2015-11-12
-- Description: 获取平台信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PlatformInfo_GetList]
@PartnerID INT --渠道
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--获取某渠道信息
IF(@PartnerID >= 0)
BEGIN
--返回信息:渠道ID(PartnerID)(int)、版本(Version)(varchar(16))、下载(Download)(varchar(128))
SELECT
PartnerID, Version, Download, ApplePartnerID, ProductStart
FROM
[PlatformInfo]
WHERE
PartnerID = @PartnerID
RETURN
END
--返回信息:渠道ID(PartnerID)(int)、版本(Version)(varchar(16))、下载(Download)(varchar(128))
SELECT
PartnerID, Version, Download, ApplePartnerID, ProductStart
FROM
[PlatformInfo]
ORDER BY
PartnerID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PlatformInfo_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_PlatformInfo_Update]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @PartnerID = 1,
-- @Version = '',
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2015-09-07
-- Mendor: wolf
-- Alter Date: 2015-09-07
-- Description: 平台信息修改
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PlatformInfo_Update]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员
@PartnerID INT, --渠道
@Version VARCHAR(16), --版本号
@IPAddress VARCHAR(16), --IP地址
@Download VARCHAR(128) --下载地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
--修改当前游戏版本号
UPDATE
[PlatformInfo]
SET
Version = @Version, Download = @Download
WHERE
PartnerID = @PartnerID
SET @Msg = N'Modify platform information, @PartnerID=' + LTRIM(STR(@PartnerID)) + ',@Version=' + @Version + ',@Download=' + @Download
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PrivateRoom_GetChairHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_PrivateRoom_GetChairHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 私人场椅子历史
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PrivateRoom_GetChairHistory]
@RoomID BIGINT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
c.ChairNo, c.UserID, u.NickName, c.Fee, c.Tax, c.AwardAmount, c.Score
FROM
[ChairHistory] c LEFT JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.RoomID = @RoomID
ORDER BY
c.ChairNo ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_PrivateRoom_GetHistoryList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_PrivateRoom_GetHistoryList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 私人场历史
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_PrivateRoom_GetHistoryList]
@UserID INT, --用户ID
@OwnerUserID INT, --创建者
@GameID INT, --游戏ID
@RoomNo VARCHAR(32), --房间号
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--变量用户
DECLARE @tmpRoom TABLE(
RoomID BIGINT NOT NULL --房间ID
)
--表变量
DECLARE @tmptable TABLE(
RoomID BIGINT NOT NULL, --标识
RoomNo VARCHAR(32) NOT NULL, --房间号
GameID INT NOT NULL, --游戏ID
OwnerUserID INT NOT NULL, --创建者
BeginTime DATETIME NOT NULL, --开始时间
EndTime DATETIME NOT NULL, --结束时间
TotalAwardAmount BIGINT NOT NULL, --奖金
TotalFee BIGINT NOT NULL, --总费用(报名)
TotalTax BIGINT NOT NULL, --总税收
ExtInfo VARCHAR(1024) NOT NULL, --扩展信息
Crdate DATETIME NOT NULL --创建时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--查询某个用户
IF(@UserID > 0)
BEGIN
INSERT INTO @tmpRoom(RoomID)
SELECT DISTINCT
RoomID
FROM
[ChairHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
INSERT INTO @tmptable
(
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
)
SELECT
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
FROM
[RoomHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND RoomID IN (SELECT RoomID FROM @tmpRoom)
END
--查询创建者
ELSE IF(@OwnerUserID > 0)
BEGIN
INSERT INTO @tmptable
(
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
)
SELECT
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
FROM
[RoomHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND OwnerUserID = @OwnerUserID
END
--查询某个游戏
ELSE IF(@GameID > 0)
BEGIN
INSERT INTO @tmptable
(
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
)
SELECT
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
FROM
[RoomHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
END
--查询房间号
ELSE IF(@RoomNo != '')
BEGIN
INSERT INTO @tmptable
(
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
)
SELECT
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
FROM
[RoomHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND RoomNo = @RoomNo
END
ELSE
BEGIN
INSERT INTO @tmptable
(
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
)
SELECT
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
FROM
[RoomHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
RoomID, RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.RoomID, l.RoomNo, l.GameID, g.EnglishName, l.OwnerUserID, ISNULL(u.NickName, N'比赛创建') AS OwnerNickName,
CONVERT(VARCHAR(20), l.BeginTime, 120) AS BeginTime, CONVERT(VARCHAR(20), l.EndTime, 120) AS EndTime,
l.TotalAwardAmount, l.TotalFee, l.TotalTax, l.ExtInfo, CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate,
DATEDIFF(SECOND, l.BeginTime, l.EndTime) AS PlaySeconds,
DATEDIFF(SECOND, l.Crdate, l.BeginTime) AS WaitSeconds
FROM
[List] l LEFT JOIN [AllUser] u ON l.OwnerUserID = u.UserID
INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Rank_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Rank_GetList]
-- @UserID = 0
-- @NickName = '0'
-- @RankType = 1
-- @BeginTime = '2023-08-01 00:00:00'
-- @EndTime = '2023-08-31 23:59:59'
-- @PageIndex = 1
-- @PageSize = 50
-- @RecordCount = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 获取排行榜榜单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Rank_GetList]
@UserID INT, -- 用户ID
@NickName NVARCHAR(32), -- 用户昵称
@RankType INT, -- 榜单类型
@BeginTime DATETIME, -- 开始时间
@EndTime DATETIME, -- 结束时间
@PageIndex INT, -- 页索引
@PageSize INT, -- 页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT -- 起始行索引
DECLARE @EndRowIndex INT -- 截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmptable TABLE(
RankType INT NOT NULL, --榜单类型
Rank INT NOT NULL, --排名
UserID INT NOT NULL, --用户ID
Amount BIGINT NOT NULL, --赢得金币数
Crdate DATETIME NOT NULL, --时间
IsGift TINYINT NOT NULL, --是否领取
NickName NVARCHAR(32) NOT NULL --用户昵称
)
IF(@RankType = 1)
BEGIN
-- 财富榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.Amount) DESC, MAX(t.RefreshTime) ASC) AS Rank,
t.UserID, SUM(t.Amount), MAX(t.RefreshTime), 1, u.NickName
FROM
[Money] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
WHERE
t.RefreshTime BETWEEN @BeginTime AND @EndTime
AND t.UserID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.UserID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
GROUP BY
t.UserID, u.NickName
END
ELSE IF(@RankType IN (2, 3, 4))
BEGIN
-- 每日(周、月)赚金榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.WinAmount) DESC, MAX(t.DateFlag) ASC) AS Rank,
t.UserID, SUM(t.WinAmount), MAX(t.DateFlag), 1, u.NickName
FROM
[DailyBetStat] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
WHERE
t.DateFlag BETWEEN @BeginTime AND @EndTime
AND t.UserID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.UserID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
AND t.WinAmount > 0
GROUP BY
t.UserID, u.NickName
END
ELSE IF(@RankType = 5)
BEGIN
-- 徽章榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.Points) DESC, MAX(t.Crdate) ASC) AS Rank,
t.UserID, SUM(t.Points), MAX(t.Crdate), 1, u.NickName
FROM
[UserBadge] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
WHERE
t.Crdate BETWEEN @BeginTime AND @EndTime
AND t.UserID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.UserID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
AND t.Points > 0
GROUP BY
t.UserID, u.NickName
END
ELSE IF(@RankType IN (6, 7))
BEGIN
-- 语聊房上(本)周榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.Exps) DESC, MAX(t.DateFlag) ASC) AS Rank,
t.RoomID, SUM(t.Exps), MAX(t.DateFlag), 1, u.NickName
FROM
[AudioRoomExpLog] AS t INNER JOIN [AllUser] AS u ON t.RoomID = u.UserID
WHERE
t.DateFlag BETWEEN @BeginTime AND @EndTime
AND t.RoomID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.RoomID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
AND t.Exps > 0
GROUP BY
t.RoomID, u.NickName
END
ELSE IF(@RankType IN (8, 9, 10))
BEGIN
-- 魅力日(周、月)榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.Charm) DESC, MAX(t.DateFlag) ASC) AS Rank,
t.UserID, SUM(t.Charm), MAX(t.DateFlag), 1, u.NickName
FROM
[UserCharmHistory] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
WHERE
t.DateFlag BETWEEN @BeginTime AND @EndTime
AND t.UserID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.UserID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
AND t.Charm > 0
GROUP BY
t.UserID, u.NickName
END
ELSE IF(@RankType IN (11, 12, 13))
BEGIN
-- 语聊房赠送礼物日(周、月)榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.DiamondAmount) DESC, MAX(t.Crdate) ASC) AS Rank,
t.Sender, SUM(t.DiamondAmount), MAX(t.Crdate), 1, u.NickName
FROM
[AudioRoomGiftHistory] AS t INNER JOIN [AllUser] AS u ON t.Sender = u.UserID
WHERE
t.Crdate BETWEEN @BeginTime AND @EndTime
AND t.Sender = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.Sender
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
GROUP BY
t.Sender, u.NickName
END
ELSE IF(@RankType IN (14, 15, 16))
BEGIN
-- 语聊房接收礼物日(周、月)榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.DiamondAmount) DESC, MAX(t.Crdate) ASC) AS Rank,
t.Receiver, SUM(t.DiamondAmount), MAX(t.Crdate), 1, u.NickName
FROM
[AudioRoomGiftHistory] AS t INNER JOIN [AllUser] AS u ON t.Receiver = u.UserID
WHERE
t.Crdate BETWEEN @BeginTime AND @EndTime
AND t.Receiver = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.Receiver
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
GROUP BY
t.Receiver, u.NickName
END
ELSE IF(@RankType IN (17, 18, 19))
BEGIN
-- 语聊房房间消耗钻石日(周、月)榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.DiamondAmount) DESC, MAX(t.Crdate) ASC) AS Rank,
t.RoomID, SUM(t.DiamondAmount), MAX(t.Crdate), 1, u.NickName
FROM
[AudioRoomGiftHistory] AS t INNER JOIN [AllUser] AS u ON t.RoomID = u.UserID
WHERE
t.Crdate BETWEEN @BeginTime AND @EndTime
AND t.RoomID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.RoomID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
GROUP BY
t.RoomID, u.NickName
END
ELSE IF(@RankType IN (20, 21))
BEGIN
-- 好友房赢局数日(周)榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
@RankType,
ROW_NUMBER() OVER(ORDER BY SUM(t.WinCount) DESC, MAX(t.DateFlag) ASC) AS Rank,
t.UserID, SUM(t.WinCount), MAX(t.DateFlag), 1, u.NickName
FROM
[DailyBetStat] AS t INNER JOIN [AllUser] AS u ON t.UserID = u.UserID
WHERE
t.DateFlag BETWEEN @BeginTime AND @EndTime
AND t.UserID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE t.UserID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
AND t.WinCount > 0
AND t.ServerName = 'PrivateRoom'
GROUP BY
t.UserID, u.NickName
END
ELSE
BEGIN
-- 所有排行榜
INSERT INTO @tmptable
(
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
)
SELECT
r.RankType, r.Rank, r.UserID, r.Amount, r.Crdate, r.IsGift, u.NickName
FROM
[AllRank] AS r INNER JOIN [AllUser] AS u ON r.UserID = u.UserID
WHERE
r.UserID = CASE -- 指定某个用户ID
WHEN @UserID > 0 THEN @UserID
ELSE r.UserID
END
AND u.NickName = CASE -- 指定某个用户昵称
WHEN @NickName != '' then @NickName
ELSE u.NickName
END
END
-- 记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY RankType ASC, Rank ASC) AS RowNumber,
RankType, Rank, UserID, Amount, Crdate, IsGift, NickName
FROM
@tmptable
)
-- 返回信息
SELECT
RankType, Rank, UserID, Amount, CONVERT(CHAR(20), Crdate, 120) AS Crdate, IsGift, NickName
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RechargeCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_RechargeCard_Gen]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 充值卡生成
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RechargeCard_Gen]
@GoldAmount BIGINT, --金币
@CardNum INT --卡数量
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CardNo VARCHAR(32) --卡号
DECLARE @Count INT --计数器
SET @Count = 0
--遍历生成
WHILE(@Count <= @CardNum)
BEGIN
SET @CardNo = 'P' + SUBSTRING(REPLACE(NEWID(), '-', ''), 1, 7)
--判断是否已经存在
IF EXISTS(SELECT CardNo FROM [RechargeCard] WHERE CardNo = @CardNo)
BEGIN
PRINT N'计数器=' + LTRIM(STR(@Count)) + N',卡号=' + @CardNo + N',已存在......!'
CONTINUE
END
--计数器+1
SET @Count = @Count + 1
--生成数据
INSERT INTO [RechargeCard]
(
CardNo, GoldAmount, UserID, UseTime, Crdate
)
VALUES
(
@CardNo, @GoldAmount, 0, '2022-01-01', GETDATE()
)
PRINT N'计数器=' + LTRIM(STR(@Count)) + N',卡号=' + @CardNo + N',已成功生成!'
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RechargeCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_RechargeCard_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 充值卡列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RechargeCard_GetList]
@UserID INT, --用户ID
@Status SMALLINT, --状态 (-1=所有 0=未使用 1=使用)
@CardNo VARCHAR(32), --卡号
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@ErrorTimes INT OUTPUT, --错误次数
@Crdate VARCHAR(32) OUTPUT --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
DECLARE @tmptable TABLE(
CardNo VARCHAR(32) PRIMARY KEY, --卡号
GoldAmount BIGINT NOT NULL, --金币
UserID INT NOT NULL, --用户ID
UseTime DATETIME NOT NULL, --使用时间
Crdate DATETIME NOT NULL --时间
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
SET @ErrorTimes = 0
SET @Crdate = '2022-01-01'
--查询某张卡号
IF(@CardNo != '')
BEGIN
INSERT INTO @tmptable
(
CardNo, GoldAmount, UserID, UseTime, Crdate
)
SELECT
CardNo, GoldAmount, UserID, UseTime, Crdate
FROM
[RechargeCard]
WHERE
CardNo = @CardNo
END
--查询某个用户
ELSE IF(@UserID > 0)
BEGIN
--充值卡记录
SELECT
@ErrorTimes = ErrorTimes, @Crdate = CONVERT(VARCHAR(20), Crdate, 120)
FROM
[RechargeCardLog]
WHERE
UserID = @UserID
INSERT INTO @tmptable
(
CardNo, GoldAmount, UserID, UseTime, Crdate
)
SELECT
CardNo, GoldAmount, UserID, UseTime, Crdate
FROM
[RechargeCard]
WHERE
UserID = @UserID
END
--查询未使用情况
ELSE IF(@Status = 0)
BEGIN
INSERT INTO @tmptable
(
CardNo, GoldAmount, UserID, UseTime, Crdate
)
SELECT
CardNo, GoldAmount, UserID, UseTime, Crdate
FROM
[RechargeCard]
WHERE
UserID = @Status
END
--查询使用情况
ELSE IF(@Status > 0)
BEGIN
INSERT INTO @tmptable
(
CardNo, GoldAmount, UserID, UseTime, Crdate
)
SELECT
CardNo, GoldAmount, UserID, UseTime, Crdate
FROM
[RechargeCard]
WHERE
UserID > 0
END
--查询所有
ELSE
BEGIN
INSERT INTO @tmptable
(
CardNo, GoldAmount, UserID, UseTime, Crdate
)
SELECT
CardNo, GoldAmount, UserID, UseTime, Crdate
FROM
[RechargeCard]
END
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY CardNo ASC) AS RowNumber,
CardNo, GoldAmount, UserID, UseTime, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.RowNumber, l.CardNo, l.GoldAmount, l.UserID, ISNULL(u.NickName, '') AS NickName,
CONVERT(VARCHAR(20), l.UseTime, 120) AS UseTime,
CONVERT(VARCHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RegStat_GetListByHour] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_RegStat_GetListByHour]
-- ==============================================
-- Author: wolf
-- Create Date: 2017-01-04
-- Mendor: wolf
-- Alter Date: 2017-01-04
-- Description: 注册统计每小时
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RegStat_GetListByHour]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@UserType TINYINT --用户类型(0=所有用户 1=游客 2=Facebook)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
UserCount INT NOT NULL, --总人数
Hour_0 INT NOT NULL, --0点钟
Hour_1 INT NOT NULL, --1点钟
Hour_2 INT NOT NULL, --2点钟
Hour_3 INT NOT NULL, --3点钟
Hour_4 INT NOT NULL, --4点钟
Hour_5 INT NOT NULL, --5点钟
Hour_6 INT NOT NULL, --6点钟
Hour_7 INT NOT NULL, --7点钟
Hour_8 INT NOT NULL, --8点钟
Hour_9 INT NOT NULL, --9点钟
Hour_10 INT NOT NULL, --10点钟
Hour_11 INT NOT NULL, --11点钟
Hour_12 INT NOT NULL, --12点钟
Hour_13 INT NOT NULL, --13点钟
Hour_14 INT NOT NULL, --14点钟
Hour_15 INT NOT NULL, --15点钟
Hour_16 INT NOT NULL, --16点钟
Hour_17 INT NOT NULL, --17点钟
Hour_18 INT NOT NULL, --18点钟
Hour_19 INT NOT NULL, --19点钟
Hour_20 INT NOT NULL, --20点钟
Hour_21 INT NOT NULL, --21点钟
Hour_22 INT NOT NULL, --22点钟
Hour_23 INT NOT NULL --23点钟
)
--1=游客
IF(@UserType = 1)
BEGIN
INSERT INTO @tmptable
(
DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
SELECT
CONVERT(CHAR(10), RegTime, 120), COUNT(UserID),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 0 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 1 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 2 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 3 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 4 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 5 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 6 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 7 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 8 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 9 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 10 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 11 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 12 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 13 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 14 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 15 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 16 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 17 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 18 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 19 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 20 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 21 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 22 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 23 THEN 1 ELSE 0 END)
FROM
[AllUser]
WHERE
RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei NOT LIKE 'fb%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
CONVERT(CHAR(10), RegTime, 120)
END
--2=Facebook
ELSE IF(@UserType = 2)
BEGIN
INSERT INTO @tmptable
(
DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
SELECT
CONVERT(CHAR(10), RegTime, 120), COUNT(UserID),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 0 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 1 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 2 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 3 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 4 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 5 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 6 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 7 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 8 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 9 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 10 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 11 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 12 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 13 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 14 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 15 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 16 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 17 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 18 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 19 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 20 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 21 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 22 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 23 THEN 1 ELSE 0 END)
FROM
[AllUser]
WHERE
RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei LIKE 'fb%'
GROUP BY
CONVERT(CHAR(10), RegTime, 120)
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
)
SELECT
CONVERT(CHAR(10), RegTime, 120), COUNT(UserID),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 0 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 1 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 2 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 3 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 4 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 5 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 6 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 7 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 8 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 9 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 10 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 11 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 12 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 13 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 14 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 15 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 16 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 17 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 18 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 19 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 20 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 21 THEN 1 ELSE 0 END),
SUM(CASE WHEN DATEPART(HOUR, RegTime) = 22 THEN 1 ELSE 0 END), SUM(CASE WHEN DATEPART(HOUR, RegTime) = 23 THEN 1 ELSE 0 END)
FROM
[AllUser]
WHERE
RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
CONVERT(CHAR(10), RegTime, 120)
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, UserCount, Hour_0, Hour_1, Hour_2, Hour_3, Hour_4, Hour_5, Hour_6, Hour_7,
Hour_8, Hour_9, Hour_10, Hour_11, Hour_12, Hour_13, Hour_14, Hour_15, Hour_16,
Hour_17, Hour_18, Hour_19, Hour_20, Hour_21, Hour_22, Hour_23
FROM
@tmptable
ORDER BY
DateFlag ASC
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RegStat_GetSourceList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_RegStat_GetSourceList]
-- ==============================================
-- Author: wolf
-- Create Date: 2017-01-04
-- Mendor: wolf
-- Alter Date: 2017-01-04
-- Description: 注册来源统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RegStat_GetSourceList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
SourceName NVARCHAR(32) NOT NULL, --源名名称
UserCount INT NOT NULL --用户数
)
--FaceBook
INSERT INTO @tmptable
(
DateFlag, SourceName, UserCount
)
SELECT
CONVERT(CHAR(10), RegTime, 120), N'Facebook', COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei LIKE 'fb%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
CONVERT(CHAR(10), RegTime, 120)
--Google
INSERT INTO @tmptable
(
DateFlag, SourceName, UserCount
)
SELECT
CONVERT(CHAR(10), RegTime, 120), N'Google', COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei LIKE 'gg%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
CONVERT(CHAR(10), RegTime, 120)
--游客
INSERT INTO @tmptable
(
DateFlag, SourceName, UserCount
)
SELECT
CONVERT(CHAR(10), RegTime, 120), N'游客', COUNT(UserID)
FROM
[AllUser]
WHERE
RegTime >= @BeginTime AND RegTime < @EndTime + 1 AND IMei NOT LIKE 'fb%' AND IMei NOT LIKE 'gg%' AND UserID NOT IN (SELECT UserID FROM [MachineUser])
GROUP BY
CONVERT(CHAR(10), RegTime, 120)
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, SourceName, UserCount
FROM
@tmptable
ORDER BY
DateFlag ASC, SourceName ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RegStat_GetSubsistList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_RegStat_GetSubsistList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 注册统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RegStat_GetSubsistList]
@PartnerID INT, --渠道ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@TotalRegCount INT OUTPUT --总注册人数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @TotalUserCount INT --总注册人数
--用户信息
DECLARE @tmpUser TABLE(
PartnerID INT NOT NULL, --渠道ID
UserID INT NOT NULL, --用户ID
RegTime SMALLDATETIME NOT NULL, --注册时间
PayMoney DECIMAL(18, 2) NOT NULL --充值
)
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
PartnerID INT NOT NULL, --渠道ID
RegUserCount INT NOT NULL, --注册用户数
TotalPayMoney DECIMAL(18, 2) NOT NULL, --充值总额
TotalUserCount INT NOT NULL --注册总人数
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SET @TotalRegCount = 0
--查询用户
INSERT INTO @tmpUser
(
PartnerID, UserID, RegTime, PayMoney
)
SELECT
RegPartnerID, UserID, CONVERT(CHAR(10), RegTime, 120), 0
FROM
[AllUser]
WHERE
RegTime BETWEEN @BeginTime AND @EndTime AND UserID NOT IN (SELECT UserID FROM [MachineUser])
--获取充值
UPDATE
@tmpUser
SET
t.PayMoney = p.RMBMoney
FROM
@tmpUser t INNER JOIN [UserPayLog] p ON t.UserID = p.UserID AND t.RegTime = p.DateFlag
--查询某个渠道
IF(@PartnerID > 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
PartnerID, DateFlag, RegUserCount, TotalPayMoney, TotalUserCount
)
SELECT
@PartnerID, RegTime, COUNT(UserID), SUM(PayMoney), 0
FROM
@tmpUser
WHERE
PartnerID = @PartnerID
GROUP BY
RegTime
END
ELSE
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
PartnerID, DateFlag, RegUserCount, TotalPayMoney, TotalUserCount
)
SELECT
0, RegTime, COUNT(UserID), SUM(PayMoney), 0
FROM
@tmpUser
GROUP BY
RegTime
END
--总注册数
SELECT @TotalRegCount = ISNULL(SUM(RegUserCount), 0) FROM @tmptable
--获取总注册人数
UPDATE t SET t.TotalUserCount = s.TotalCount FROM @tmptable t INNER JOIN [RegStat] s ON t.DateFlag = s.DateFlag - 1
--今天
SELECT TOP 1 @TotalUserCount = TotalCount FROM [RegStat] WHERE DateFlag = @DateFlag ORDER BY DateFlag DESC
IF(@@ROWCOUNT > 0)
BEGIN
UPDATE @tmptable SET TotalUserCount = RegUserCount + @TotalUserCount WHERE DateFlag = @DateFlag
END
--返回信息
SELECT
CONVERT(CHAR(10), t.DateFlag, 120) AS DateFlag, t.RegUserCount, t.TotalPayMoney,
ISNULL(p.PartnerName, 'All Channels') AS PartnerName, t.TotalUserCount
FROM
@tmptable t LEFT JOIN [Partner] p ON t.PartnerID = p.PartnerID
ORDER BY
t.DateFlag DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RetentionStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_RetentionStat_GetList]
-- @PartnerID = 100001,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2015-03-18
-- Description: 获取留存统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RetentionStat_GetList]
@Item VARCHAR(32), --事项(如:全体用户、付费用户、Facebook用户、Google用户)
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
--创建临时表
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
Item VARCHAR(32) NOT NULL, --事项
UserCount INT NOT NULL, --用户数
LiveUsers_1 INT NOT NULL, --次日留存
LiveUsers_3 INT NOT NULL, --3日留存
LiveUsers_5 INT NOT NULL, --5日留存
LiveUsers_7 INT NOT NULL, --7日留存
LiveUsers_15 INT NOT NULL, --15日留存
LiveUsers_30 INT NOT NULL --30日留存
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
--所有合作商
IF(LEN(@Item) > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[RetentionStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND Item = @Item
END
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
)
SELECT
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[RetentionStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
END
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, UserCount DESC) AS RowNumber,
DateFlag, Item, UserCount, LiveUsers_1, LiveUsers_3,
LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, Item, UserCount,
LiveUsers_1, LiveUsers_3, LiveUsers_5, LiveUsers_7, LiveUsers_15, LiveUsers_30
FROM
[List]
WHERE
RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Robot_CreateData] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Robot_CreateData]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-27
-- Mendor: wolf
-- Alter Date: 2023-07-27
-- Description: 创建机器人数据
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Robot_CreateData]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 删除道具数据记录
DELETE FROM [UserItem]
WHERE ItemID IN (
SELECT
ItemID
FROM
[UserItemLog]
WHERE
Remark = '系统添加道具' AND
IPAddress = '127.0.0.1'
GROUP BY
ItemID
) AND UserID IN ( SELECT UserID FROM [MachineUser] )
-- 删除用户道具记录
DELETE FROM [UserItemLog]
WHERE LogID IN (
SELECT
LogID
FROM
UserItemLog
WHERE
Remark = '系统添加道具' AND
IPAddress = '127.0.0.1'
)
-- 生成机器人类型
EXEC [Manage_Robot_GenerateType]
DECLARE @RefreshTime DATETIME -- 创建日期变量
DECLARE @Rid INT -- 自增ID
DECLARE @RobotID INT -- 机器人ID
DECLARE @RobotType TINYINT -- 机器人类型(0=普通,1=小R,2=中R,3=大R,4=超R)
DECLARE @AvatarFrame INT -- 头像框
DECLARE @CardBack INT -- 牌背
DECLARE @Dice INT -- 骰子
DECLARE @VipLevel INT -- vip等级
DECLARE @Gold BIGINT -- 金币
DECLARE @Charm INT -- 魅力值
DECLARE @Level INT -- 游戏等级
DECLARE @Counter INT -- 初始化计数器
DECLARE @RowCount INT -- 获取待处理数据的总行数
SET @Counter = 1
SET @RefreshTime = GETDATE()
-- 创建临时表变量:记录机器人类型
DECLARE @tmptable TABLE(
RowNum INT NOT NULL, -- Rid 正序排序标识
RobotID INT NOT NULL, -- 机器人ID
RobotType TINYINT NOT NULL -- 机器人类型(0=普通,1=小R,2=中R,3=大R,4=超R)
)
-- 创建临时表变量:记录需要更新的数据
DECLARE @tempUpdates TABLE(
RobotID INT NOT NULL, -- 机器人ID
AvatarFrame INT NOT NULL, -- 头像框
CardBack INT NOT NULL, -- 牌背
Dice INT NOT NULL, -- 骰子
VipLevel INT NOT NULL, -- vip等级
Gold BIGINT NOT NULL, -- 金币
Charm INT NOT NULL, -- 魅力值
Level INT NOT NULL -- 游戏等级
)
-- 插入待处理数据到临时表变量
INSERT INTO @tmptable
(
RowNum, RobotID, RobotType
)
SELECT
ROW_NUMBER() OVER (ORDER BY Rid ASC) AS RowNum, RobotID, RobotType
FROM
[RobotClassification]
SET @RowCount = @@ROWCOUNT
-- 循环处理数据
WHILE @Counter <= @RowCount
BEGIN
-- 获取当前行的数据
SELECT
@RobotID = RobotID, @RobotType = RobotType
FROM
@tmptable
WHERE
RowNum = @Counter
-- 执行存储过程,获取结果
EXEC Manage_Robot_GetItemsByRobotType
@RobotType = @RobotType,
@AvatarFrame = @AvatarFrame OUTPUT,
@CardBack = @CardBack OUTPUT,
@Dice = @Dice OUTPUT,
@VipLevel = @VipLevel OUTPUT,
@Gold = @Gold OUTPUT,
@Charm = @Charm OUTPUT,
@Level = @Level OUTPUT;
-- 将需要更新的数据插入到临时表变量中
INSERT INTO @tempUpdates
(
RobotID, AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, [Level]
)
VALUES
(
@RobotID, @AvatarFrame, @CardBack, @Dice, @VipLevel, @Gold, @Charm, @Level
)
-- 增加计数器
SET @Counter = @Counter + 1
END
-- 批量更新其他表
-- 道具
INSERT INTO [UserItem]
(
UserID, ItemID, ItemCount, EnegyPoint, Start, Duration
)
-- 头像框
SELECT
RobotID, AvatarFrame, 1, 0, 0, 0
FROM
@tempUpdates
WHERE
AvatarFrame > 0
UNION ALL
-- 牌背
SELECT
RobotID, CardBack, 1, 0, 0, 0
FROM
@tempUpdates
WHERE
CardBack > 0
UNION ALL
-- 骰子
SELECT
RobotID, Dice, 1, 0, 0, 0
FROM
@tempUpdates
WHERE
Dice > 0
-- 道具记录
INSERT INTO [UserItemLog]
(
UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
-- 头像框
SELECT
RobotID, AvatarFrame, 1, 1, 1, '系统添加道具', '127.0.0.1', @RefreshTime
FROM
@tempUpdates
WHERE
AvatarFrame > 0
UNION ALL
-- 牌背
SELECT
RobotID, CardBack, 1, 1, 1, '系统添加道具', '127.0.0.1', @RefreshTime
FROM
@tempUpdates
WHERE
CardBack > 0
UNION ALL
-- 骰子
SELECT
RobotID, Dice, 1, 1, 1, '系统添加道具', '127.0.0.1', @RefreshTime
FROM
@tempUpdates
WHERE
Dice > 0
-- 佩戴:头像框
MERGE INTO
[UserDecoration] AS target
USING
@tempUpdates AS source ON target.UserID = source.RobotID AND target.DecorationType = 1
WHEN MATCHED THEN
UPDATE SET target.ItemID = source.AvatarFrame
WHEN NOT MATCHED THEN
INSERT (UserID, DecorationType, ItemID)
VALUES (source.RobotID, 1, source.AvatarFrame);
-- 佩戴:牌背
MERGE INTO
[UserDecoration] AS target
USING
@tempUpdates AS source ON target.UserID = source.RobotID AND target.DecorationType = 6
WHEN MATCHED THEN
UPDATE SET target.ItemID = source.CardBack
WHEN NOT MATCHED THEN
INSERT (UserID, DecorationType, ItemID)
VALUES (source.RobotID, 6, source.CardBack);
-- 佩戴:骰子
MERGE INTO
[UserDecoration] AS target
USING
@tempUpdates AS source ON target.UserID = source.RobotID AND target.DecorationType = 8
WHEN MATCHED THEN
UPDATE SET target.ItemID = source.Dice
WHEN NOT MATCHED THEN
INSERT (UserID, DecorationType, ItemID)
VALUES (source.RobotID, 8, source.Dice);
-- vip等级
MERGE INTO
[UserVip] AS target
USING
@tempUpdates AS source ON target.UserID = source.RobotID
WHEN MATCHED THEN
UPDATE SET target.VipLevel = source.VipLevel
WHEN NOT MATCHED THEN
INSERT (UserID, VipLevel, VipPoint, Expire, DailyPackageClaimDay)
VALUES (source.RobotID, source.VipLevel, 0, 0, 0);
-- 金币
MERGE INTO
[Money] AS target
USING
@tempUpdates AS source ON target.UserID = source.RobotID
WHEN MATCHED THEN
UPDATE SET target.Amount = source.Gold
WHEN NOT MATCHED THEN
INSERT (UserID, Amount, Bank, RegisterTime, RefreshTime)
VALUES (source.RobotID, source.Gold, 0, @RefreshTime, @RefreshTime);
-- 魅力值
MERGE INTO
[UserCharm] AS target
USING
@tempUpdates AS source ON target.UserID = source.RobotID
WHEN MATCHED THEN
UPDATE SET target.Charm = source.Charm
WHEN NOT MATCHED THEN
INSERT (UserID, Charm)
VALUES (source.RobotID, source.Charm);
-- 游戏等级
MERGE INTO
[UserLevel] AS target
USING
@tempUpdates AS source ON target.UserID = source.RobotID
WHEN MATCHED THEN
UPDATE SET target.Lv = source.Level
WHEN NOT MATCHED THEN
INSERT (UserID, Lv, Exp, LoginAward)
VALUES (source.RobotID, source.Level, 0, 0);
-- 更新机器人分类(方便查看记录)
UPDATE rc
SET
rc.AvatarFrame = tu.AvatarFrame,
rc.CardBack = tu.CardBack,
rc.Dice = tu.Dice,
rc.VipLevel = tu.VipLevel,
rc.Gold = tu.Gold,
rc.Charm = tu.Charm,
rc.Level = tu.Level
FROM [RobotClassification] AS rc
JOIN @tempUpdates AS tu ON rc.RobotID = tu.RobotID
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Robot_GenerateType] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Robot_GenerateType]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-27
-- Mendor: wolf
-- Alter Date: 2023-07-27
-- Description: 生成机器人类型
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Robot_GenerateType]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 截断表数据:机器人分类
TRUNCATE TABLE [RobotClassification]
DECLARE @Crdate DATETIME -- 创建日期变量
DECLARE @RowCount INT -- 总记录数
DECLARE @Counter INT -- 计数器
DECLARE @Rnd INT -- 随机数
SET @Rnd = 0 -- 随机数
SET @Counter = 1 -- 计数器
SET @Crdate = GETDATE() -- 当前日期
-- 创建临时表变量
DECLARE @tmptable TABLE(
Rid INT IDENTITY NOT NULL, -- 自增
RobotID INT NOT NULL, -- 机器人ID
RobotType TINYINT NOT NULL, -- 机器人类型(0=普通,1=小R,2=中R,3=大R,4=超R)
RobotDesc NVARCHAR(256) NOT NULL, -- 机器人描述
AvatarFrame INT NOT NULL, -- 头像框
CardBack INT NOT NULL, -- 牌背
Dice INT NOT NULL, -- 骰子
VipLevel INT NOT NULL, -- vip等级
Gold BIGINT NOT NULL, -- 金币
Charm INT NOT NULL, -- 魅力值
Level INT NOT NULL -- 游戏等级
)
-- 插入机器人数据
INSERT INTO @tmptable(
RobotID, RobotType, RobotDesc, AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, Level
)
SELECT
UserID, 0, '', 0, 0, 0, 0, 0, 0, 0
FROM
[MachineUser]
-- 总记录数
SET @RowCount = @@ROWCOUNT
WHILE @Counter <= @RowCount
BEGIN
EXEC [Game_Rand_GetRnd] 1, 100, @Rnd OUTPUT
UPDATE @tmptable
SET RobotType =
CASE
WHEN @Rnd < 10 THEN 0 -- 普通 10%
WHEN @Rnd < 45 THEN 1 -- 小R 35%
WHEN @Rnd < 79 THEN 2 -- 中R 34%
WHEN @Rnd < 95 THEN 3 -- 大R 16%
ELSE 4 -- 超R 5%
END
WHERE Rid = @Counter
SET @Counter = @Counter + 1
END
-- 插入数据
INSERT INTO [RobotClassification](
RobotID, RobotType, RobotDesc, AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, Level, Crdate
)
SELECT
RobotID, RobotType,
CASE
WHEN RobotType = 0 THEN '金币不多、整体看着简单'
WHEN RobotType = 1 THEN '金币不多、整体看着比普通好一点'
WHEN RobotType = 2 THEN '金币中等、整体看着稍微高贵一点'
WHEN RobotType = 3 THEN '金币不多不少、整体看着高贵'
ELSE '金币很多、整体看着很炫'
END AS RobotDesc,
AvatarFrame, CardBack, Dice, VipLevel, Gold, Charm, Level,
@Crdate
FROM
@tmptable
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Robot_GetItemsByRobotType] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Robot_GetItemsByRobotType]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-27
-- Mendor: wolf
-- Alter Date: 2023-07-27
-- Description: 按机器人类型获取道具
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Robot_GetItemsByRobotType]
@RobotType INT, -- 机器人类型
@AvatarFrame INT OUTPUT, -- 头像框
@CardBack INT OUTPUT, -- 牌背
@Dice INT OUTPUT, -- 骰子
@VipLevel INT OUTPUT, -- vip等级
@Gold BIGINT OUTPUT, -- 金额
@Charm INT OUTPUT, -- 魅力值
@Level INT OUTPUT -- 游戏等级
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Min INT --最小值
DECLARE @Max INT --最大值
DECLARE @Rnd INT -- 随机数
SET @AvatarFrame = 0 -- 头像框
SET @CardBack = 0 -- 牌背
SET @Dice = 0 -- 骰子
SET @VipLevel = 0 -- vip等级
SET @Gold = 0 -- 金额
SET @Charm = 0 -- 魅力值
SET @Level = 0 -- 游戏等级
SET @Min = 1 -- 最小值
SET @Max = 100 -- 最大值
SET @Rnd = 0 -- 随机数
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
-- 小R
IF(@RobotType = 1)
BEGIN
-- 头像获得概率
IF(@Rnd <= 50)
BEGIN
SET @AvatarFrame = 401050 --C头像框
END
ELSE IF(@Rnd <= 90)
BEGIN
SET @AvatarFrame = 401020 --B头像框
END
ELSE IF(@Rnd <= 95)
BEGIN
SET @AvatarFrame = 401030 --D头像框
END
ELSE
BEGIN
SET @AvatarFrame = 401040 --E头像框
END
-- 牌背获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 65)
BEGIN
SET @CardBack = 406050 --C牌背
END
ELSE IF(@Rnd <= 75)
BEGIN
SET @CardBack = 406030 --B牌背
END
ELSE IF(@Rnd <= 85)
BEGIN
SET @CardBack = 406020 --D牌背
END
ELSE IF(@Rnd <= 90)
BEGIN
SET @CardBack = 406010 --E牌背
END
ELSE
BEGIN
SET @CardBack = 406040 --F牌背
END
-- 骰子获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 30)
BEGIN
SET @Dice = 408010 --骰子B
END
ELSE IF(@Rnd <= 60)
BEGIN
SET @Dice = 408020 --骰子C
END
ELSE IF(@Rnd <= 90)
BEGIN
SET @Dice = 408040 --骰子D
END
ELSE
BEGIN
SET @Dice = 408030 --骰子E
END
EXEC [Game_Rand_GetRnd] 0, 5, @VipLevel OUTPUT -- vip等级0-5
EXEC [Game_Rand_GetRnd] 35000, 300000, @Gold OUTPUT -- 金币35k-300k
EXEC [Game_Rand_GetRnd] 0, 40, @Charm OUTPUT -- 魅力值0-40
EXEC [Game_Rand_GetRnd] 5, 15, @Level OUTPUT -- 等级5-15
END
-- 中R
ELSE IF(@RobotType = 2)
BEGIN
-- 头像获得概率
IF(@Rnd <= 30)
BEGIN
SET @AvatarFrame = 401050 --C头像框
END
ELSE IF(@Rnd <= 55)
BEGIN
SET @AvatarFrame = 401030 --D头像框
END
ELSE IF(@Rnd <= 80)
BEGIN
SET @AvatarFrame = 401040 --E头像框
END
ELSE
BEGIN
SET @AvatarFrame = 401020 --B头像框
END
-- 牌背获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 45)
BEGIN
SET @CardBack = 406050 --C牌背
END
ELSE IF(@Rnd <= 60)
BEGIN
SET @CardBack = 406030 --B牌背
END
ELSE IF(@Rnd <= 75)
BEGIN
SET @CardBack = 406020 --D牌背
END
ELSE IF(@Rnd <= 90)
BEGIN
SET @CardBack = 406010 --E牌背
END
ELSE
BEGIN
SET @CardBack = 406040 --F牌背
END
-- 骰子获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 25)
BEGIN
SET @Dice = 408010 --骰子B
END
ELSE IF(@Rnd <= 50)
BEGIN
SET @Dice = 408020 --骰子C
END
ELSE IF(@Rnd <= 75)
BEGIN
SET @Dice = 408040 --骰子D
END
ELSE
BEGIN
SET @Dice = 408030 --骰子E
END
EXEC [Game_Rand_GetRnd] 3, 8, @VipLevel OUTPUT -- vip等级3-8
EXEC [Game_Rand_GetRnd] 200000, 600000, @Gold OUTPUT -- 金币200k-600k
EXEC [Game_Rand_GetRnd] 20, 60, @Charm OUTPUT -- 魅力值20-60
EXEC [Game_Rand_GetRnd] 10, 30, @Level OUTPUT -- 等级10-30
END
-- 大R
ELSE IF(@RobotType = 3)
BEGIN
-- 头像获得概率
IF(@Rnd <= 25)
BEGIN
SET @AvatarFrame = 401020 --B头像框
END
ELSE IF(@Rnd <= 50)
BEGIN
SET @AvatarFrame = 401050 --C头像框
END
ELSE IF(@Rnd <= 75)
BEGIN
SET @AvatarFrame = 401030 --D头像框
END
ELSE
BEGIN
SET @AvatarFrame = 401040 --E头像框
END
-- 牌背获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 35)
BEGIN
SET @CardBack = 406050 --C牌背
END
ELSE IF(@Rnd <= 70)
BEGIN
SET @CardBack = 406040 --F牌背
END
ELSE IF(@Rnd <= 80)
BEGIN
SET @CardBack = 406030 --B牌背
END
ELSE IF(@Rnd <= 90)
BEGIN
SET @CardBack = 406020 --D牌背
END
ELSE
BEGIN
SET @CardBack = 406010 --E牌背
END
-- 骰子获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 55)
BEGIN
SET @Dice = 408030 --骰子E
END
ELSE IF(@Rnd <= 70)
BEGIN
SET @Dice = 408010 --骰子B
END
ELSE IF(@Rnd <= 85)
BEGIN
SET @Dice = 408020 --骰子C
END
ELSE
BEGIN
SET @Dice = 408040 --骰子D
END
EXEC [Game_Rand_GetRnd] 6, 9, @VipLevel OUTPUT -- vip等级6-9
EXEC [Game_Rand_GetRnd] 500000, 1000000, @Gold OUTPUT -- 金币500k-1m
EXEC [Game_Rand_GetRnd] 20, 200, @Charm OUTPUT -- 魅力值20-200
EXEC [Game_Rand_GetRnd] 20, 50, @Level OUTPUT -- 等级20-50
END
-- 超R
ELSE IF(@RobotType = 4)
BEGIN
-- 头像获得概率
IF(@Rnd <= 25)
BEGIN
SET @AvatarFrame = 401020 --B头像框
END
ELSE IF(@Rnd <= 50)
BEGIN
SET @AvatarFrame = 401050 --C头像框
END
ELSE IF(@Rnd <= 75)
BEGIN
SET @AvatarFrame = 401030 --D头像框
END
ELSE
BEGIN
SET @AvatarFrame = 401040 --E头像框
END
-- 牌背获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 20)
BEGIN
SET @CardBack = 406030 --B牌背
END
ELSE IF(@Rnd <= 40)
BEGIN
SET @CardBack = 406050 --C牌背
END
ELSE IF(@Rnd <= 60)
BEGIN
SET @CardBack = 406020 --D牌背
END
ELSE IF(@Rnd <= 80)
BEGIN
SET @CardBack = 406010 --E牌背
END
ELSE
BEGIN
SET @CardBack = 406040 --F牌背
END
-- 骰子获得概率
SET @Rnd = RAND()
IF(@Rnd <= 70)
BEGIN
SET @Dice = 408030 --骰子E
END
ELSE IF(@Rnd <= 80)
BEGIN
SET @Dice = 408010 --骰子B
END
ELSE IF(@Rnd <= 90)
BEGIN
SET @Dice = 408020 --骰子C
END
ELSE
BEGIN
SET @Dice = 408030 --骰子E
END
EXEC [Game_Rand_GetRnd] 7, 10, @VipLevel OUTPUT -- vip等级7-10
EXEC [Game_Rand_GetRnd] 900000, 3000000, @Gold OUTPUT -- 金币900k-3m
EXEC [Game_Rand_GetRnd] 40, 400, @Charm OUTPUT -- 魅力值40-400
EXEC [Game_Rand_GetRnd] 40, 80, @Level OUTPUT -- 等级40-80
END
-- 普通
ELSE
BEGIN
-- 头像获得概率
IF(@Rnd <= 95)
BEGIN
SET @AvatarFrame = 0 --默认头像框
END
ELSE
BEGIN
SET @AvatarFrame = 401020 --B头像框
END
-- 牌背、骰子获得概率
-- 随机数调用
EXEC [Game_Rand_GetRnd] @Min, @Max, @Rnd OUTPUT
IF(@Rnd <= 97)
BEGIN
SET @CardBack = 0 --默认牌背
SET @Dice = 0 --默认骰子
END
ELSE IF(@Rnd <= 98)
BEGIN
SET @CardBack = 406030 --B牌背
SET @Dice = 408010 --骰子B
END
ELSE IF(@Rnd <= 99)
BEGIN
SET @CardBack = 406020 --D牌背
SET @Dice = 408020 --骰子C
END
ELSE
BEGIN
SET @CardBack = 406010 --E牌背
SET @Dice = 408030 --骰子D
END
EXEC [Game_Rand_GetRnd] 0, 1, @VipLevel OUTPUT -- vip等级0-1
EXEC [Game_Rand_GetRnd] 30000, 70000, @Gold OUTPUT -- 金币30k-70k
EXEC [Game_Rand_GetRnd] 0, 20, @Charm OUTPUT -- 魅力值0-20
EXEC [Game_Rand_GetRnd] 1, 10, @Level OUTPUT -- 等级1-10
END
-- SELECT @AvatarFrame AS AvatarFrame, @CardBack AS CardBack, @Dice AS Dice, @VipLevel AS VipLevel, @Gold AS Gold, @Charm AS Charm, @Level AS [Level]
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ROI_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ROI_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 投入产出项删除
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ROI_Del]
@Rid INT --标识
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Crdate DATETIME --时间
SET @RetCode = 0
--信息
SELECT @Crdate = Crdate FROM [ROI] WHERE Rid = @Rid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--只能删除7天内数据
IF(@Crdate <= GETDATE() - 7)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--删除
DELETE FROM [ROI] WHERE Rid = @Rid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ROI_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ROI_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 投入产出项列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ROI_GetList]
@DateFlag SMALLDATETIME --日期
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
ItemType, ItemName, ItemValue
FROM
[ROI]
WHERE
DateFlag = @DateFlag
ORDER BY
DateFlag DESC, ItemType ASC, ItemName DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ROI_GetListByMonth] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ROI_GetListByMonth]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 投入产出项列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ROI_GetListByMonth]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
CONVERT(VARCHAR(7), DateFlag, 120) AS DateFlag,
ItemType, ItemName, SUM(ItemValue) AS ItemValue
FROM
[ROI]
GROUP BY
CONVERT(VARCHAR(7), DateFlag, 120), ItemType, ItemName
ORDER BY
DateFlag DESC, ItemType ASC, ItemName DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ROI_Insert] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ROI_Insert]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 投入产出项录入
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ROI_Insert]
@DateFlag SMALLDATETIME, --日期标识
@ItemType TINYINT, --项类型(1=计数 2=计价)
@ItemName NVARCHAR(32), --项名称
@ItemValue DECIMAL(18, 2) --项值
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [ROI]
(
DateFlag, ItemType, ItemName, ItemValue, Crdate
)
VALUES
(
@DateFlag, @ItemType, @ItemName, @ItemValue, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RoleUser_AddUser] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_RoleUser_AddUser]
-- @OpUserID = 1001,
-- @OpUserName = '',
-- @AdminUserID = 1,
-- @AdminRoleIDs = '1,2,3,',
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-09
-- Mendor: wolf
-- Alter Date: 2013-07-10
-- Description: 添加角色用户
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RoleUser_AddUser]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@AdminUserID INT, --管理用户ID
@AdminRoleIDs VARCHAR(1024), --管理角色ID集 (格式如:1,2,3,)
@IPAddress VARCHAR(15) -- IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
DECLARE @AdminRoleID INT --角色ID
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @AdminUserName VARCHAR(32) --管理用户名称
DECLARE @RoleList NVARCHAR(1024) --角色列表
DECLARE @CurrTime DATETIME --系统当前时间
--申请表变量
DECLARE @tmptable TABLE(
AdminRoleID INT NOT NULL, --管理角色ID
AdminRoleName NVARCHAR(32) NOT NULL --管理角色名称
)
SET @StartIndex = 0
SET @EndIndex = 0
SET @CurrTime = GETDATE()
WHILE(1=1)
BEGIN
--截止索引
SET @EndIndex = CHARINDEX(',', @AdminRoleIDs, @StartIndex)
IF(@EndIndex <= 0)
BREAK
--角色ID
SET @AdminRoleID = CAST(SUBSTRING(@AdminRoleIDs, @StartIndex, @EndIndex - @StartIndex) AS INT)
--初始化表变量
INSERT INTO @tmptable(AdminRoleID, AdminRoleName) VALUES(@AdminRoleID, '')
--起始索引
SET @StartIndex = @EndIndex + 1
END
--角色名称
UPDATE t SET t.AdminRoleName = r.RoleName FROM @tmptable t INNER JOIN [Role] r ON t.AdminRoleID = r.RoleID
--删除当前角色用户
DELETE FROM [RoleUser] WHERE AdminUserID = @AdminUserID
--添加角色用户
INSERT INTO [RoleUser]
(
AdminUserID, RoleID, Crdate
)
SELECT
@AdminUserID, AdminRoleID, @CurrTime
FROM
@tmptable
--管理用户名称
SET @AdminUserName = (SELECT AdminUserName FROM [AdminUser] WHERE AdminUserID = @AdminUserID)
SET @Msg = N'Set role permissions for administrators(' + @AdminUserName + ')'
--有数据
IF(@StartIndex > 0)
BEGIN
SET @Msg = @Msg + N' current role permissions:'
SET @RoleList = ''
--角色名称
SELECT @RoleList = @RoleList + ',' + AdminRoleName FROM @tmptable
SET @Msg = @Msg + STUFF(@RoleList, 1, 1, '')
END
ELSE
BEGIN
SET @Msg = @Msg + N' all role permissions removed'
END
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_RoleUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_RoleUser_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-09
-- Mendor: wolf
-- Alter Date: 2013-07-22
-- Description: 获取角色用户列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_RoleUser_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息:用户ID(AdminUserID)(int)、用户名称(AdminUserName)(varchar(32))、
-- 角色ID(AdminRoleID)(int)、角色名称(AdminRoleName)(varchar(32))、创建时间(Crdate)(datetime)
SELECT
ISNULL(u.AdminUserID, 0) AS AdminUserID, ISNULL(u.AdminUserName, '') AS AdminUserName,
ISNULL(r.RoleID, 0) AS AdminRoleID, ISNULL(r.RoleName, '') AS AdminRoleName,
CONVERT(CHAR(20), ISNULL(ur.Crdate, '2020-01-01'), 120) AS Crdate
FROM
[AdminUser] u FULL JOIN [RoleUser] ur ON ur.AdminUserID = u.AdminUserID
FULL JOIN [Role] r ON ur.RoleID = r.RoleID
ORDER BY
r.RoleID ASC, u.AdminUserID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetDetailList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_ServiceMessage_GetList]
-- @UserID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 获取用户详细信息列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetDetailList]
@UserID INT, --用户ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --总记录数
@OpUserID INT --操作员ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --行起始索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @NickName NVARCHAR(32) --昵称
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
CREATE TABLE #tmptable(
MessageID INT NOT NULL, --留言板ID
UserID INT NOT NULL, --用户ID
Msg NVARCHAR(512) NOT NULL, --消息
IsRead TINYINT NOT NULL, --是否已读
Crdate DATETIME NOT NULL, --创建时间
OpUserID INT NOT NULL, --操作员ID
OpUserName VARCHAR(32) NOT NULL, --操作员名称
TransMsg NVARCHAR(512) NOT NULL, --译文
TagID INT NOT NULL --标签ID
)
--置为已读
UPDATE [ServiceMessage] SET IsRead = 1 WHERE UserID = @UserID AND IsRead = 0
--初始化临时表
INSERT INTO #tmptable
(
MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
)
SELECT
MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
FROM
[ServiceMessage]
WHERE
ToUserID = @UserID AND UserID = -1 AND Crdate BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
FROM
[ServiceMessage]
WHERE
UserID = @UserID AND ToUserID = -1 AND Crdate BETWEEN @BeginTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
--获取昵称
IF(@RecordCount > 0)
BEGIN
SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY MessageID ASC) AS RowNumber,
MessageID, UserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
FROM
#tmptable
)
--返回信息:
SELECT
l.MessageID, l.UserID,
CASE
WHEN l.UserID = -1 THEN l.OpUserName + '(ID:' + LTRIM(STR(l.OpUserID)) + ')'
ELSE @NickName + '(ID:' + LTRIM(STR(l.UserID)) + ')'
END AS NickName,
l.Msg, l.IsRead,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
ISNULL(f.FaceUrl, '') AS FaceUrl, l.TransMsg,
ISNULL(m.TagName, '') AS TagName
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [UserFace] f ON l.UserID = f.UserID
LEFT JOIN [MsgTag] m ON l.TagID = m.TagID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
--删除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ServiceMessage_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 获取客服留言信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetInfo]
@MessageID INT --留言ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
s.UserID, ISNULL(u.NickName, '') AS NickName, s.Msg,
CONVERT(CHAR(16), s.Crdate, 120) AS Crdate, s.TransMsg, s.TagID
FROM
[ServiceMessage] s LEFT JOIN [AllUser] u ON s.UserID = u.UserID
WHERE
s.MessageID = @MessageID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_ServiceMessage_GetList]
-- @UserID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-11-18
-- Description: 获取用户邮件列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@Sort TINYINT, --排序(0=最新 1=最早)
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--创建邮箱列表
DECLARE @tmpMailList TABLE(
Rid INT IDENTITY,
UserID INT NOT NULL, --用户ID
MessageID INT NOT NULL, --用户邮件ID
IsRead TINYINT NOT NULL
)
--创建临时表
DECLARE @tmptable TABLE(
Rid INT IDENTITY NOT NULL,
UserID INT NOT NULL,
MailCount INT NOT NULL,
MessageID INT NOT NULL,
IsRead TINYINT NOT NULL
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--查询某个用户ID
IF(@UserID > 0)
BEGIN
INSERT INTO @tmpMailList
(
UserID, MessageID, IsRead
)
SELECT
@UserID, MessageID, CASE WHEN UserID > 0 AND IsRead = 0 THEN 0 ELSE 1 END
FROM
[ServiceMessage]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND ((ToUserID = @UserID AND UserID = -1) OR (ToUserID = -1 AND UserID = @UserID))
ORDER BY
IsRead ASC
END
--查询所有用户
ELSE
BEGIN
INSERT INTO @tmpMailList
(
UserID, MessageID, IsRead
)
SELECT
CASE WHEN ToUserID = -1 THEN UserID ELSE ToUserID END, MessageID, CASE WHEN UserID > 0 AND IsRead = 0 THEN 0 ELSE 1 END
FROM
[ServiceMessage]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND (ToUserID = -1 OR UserID = -1)
ORDER BY
IsRead ASC
END
--分组统计
INSERT INTO @tmptable(UserID, MailCount, MessageID, IsRead)
SELECT
UserID, COUNT(UserID), MAX(MessageID), MIN(IsRead)
FROM
@tmpMailList
GROUP BY
UserID
--总记录数
SET @RecordCount = @@ROWCOUNT
--最新排序(默认排序)
IF(@Sort = 0)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY IsRead ASC, MessageID DESC) AS RowNumber,
UserID, MailCount, MessageID
FROM
@tmptable
)
--返回信息:序号(RowNumber)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar)、邮件数(MailCount)(int)、
-- 时间(Crdate)(varchar)
SELECT
l.RowNumber, l.UserID, u.NickName, l.MailCount,
CONVERT(CHAR(20), um.Crdate, 120) AS Crdate,
CASE WHEN um.OpUserID > 0 THEN 'Customer service reply:' ELSE 'Game player news:' END +
CASE
WHEN um.IsRead = 0 AND um.OpUserID > 0 THEN '' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + ''
WHEN um.IsRead = 0 AND um.OpUserID <= 0 THEN '' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + ''
ELSE CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END
END AS Msg
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
INNER JOIN [ServiceMessage] um ON l.MessageID = um.MessageID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
--最早排序
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY IsRead ASC, MessageID ASC) AS RowNumber,
UserID, MailCount, MessageID
FROM
@tmptable
)
--返回信息:序号(RowNumber)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar)、邮件数(MailCount)(int)、
-- 时间(Crdate)(varchar)
SELECT
l.RowNumber, l.UserID, u.NickName, l.MailCount,
CONVERT(CHAR(20), um.Crdate, 120) AS Crdate,
CASE WHEN um.OpUserID > 0 THEN 'Customer service reply:' ELSE 'Game player news:' END +
CASE
WHEN um.IsRead = 0 AND um.OpUserID > 0 THEN '' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + ''
WHEN um.IsRead = 0 AND um.OpUserID <= 0 THEN '' + CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END + ''
ELSE CASE WHEN um.TransMsg != '' THEN um.TransMsg ELSE um.Msg END
END AS Msg
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
INNER JOIN [ServiceMessage] um ON l.MessageID = um.MessageID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetListByTag] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ServiceMessage_GetListByTag]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-11-18
-- Description: 根据标签获取列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetListByTag]
@TagID INT, --TagID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndEx INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --行起始索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
DECLARE @tmptable TABLE(
MessageID INT NOT NULL, --留言板ID
UserID INT NOT NULL, --用户ID
Msg NVARCHAR(512) NOT NULL, --消息
Crdate DATETIME NOT NULL, --创建时间
TransMsg NVARCHAR(512) NOT NULL --译文
)
--初始化临时表
INSERT INTO @tmptable
(
MessageID, UserID, Msg, Crdate, TransMsg
)
SELECT
MessageID, UserID, Msg, Crdate, TransMsg
FROM
[ServiceMessage]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND TagID = @TagID
--总记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY MessageID ASC) AS RowNumber,
MessageID, UserID, Msg, Crdate, TransMsg
FROM
@tmptable
)
--返回信息:
SELECT
l.MessageID, l.UserID, u.NickName, l.Msg, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
ISNULL(f.FaceUrl, '') AS FaceUrl, l.TransMsg
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [UserFace] f ON l.UserID = f.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetTagList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ServiceMessage_GetTagList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-11-18
-- Description: 获取标签列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetTagList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT TagID, TagName FROM [MsgTag] ORDER BY TagID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_GetTagStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ServiceMessage_GetTagStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 客服留言标签统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_GetTagStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
TagID INT NOT NULL, --标签ID
MsgCount INT NOT NULL --消息数
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120)
--初始化表变量
INSERT INTO @tmptable
(
DateFlag, TagID, MsgCount
)
SELECT
CONVERT(CHAR(10), Crdate, 120), TagID, COUNT(MessageID)
FROM
[ServiceMessage]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
GROUP BY
CONVERT(CHAR(10), Crdate, 120), TagID
--返回信息
SELECT
CONVERT(CHAR(10), t.DateFlag, 120) AS DateFlag, t.TagID, m.TagName, t.MsgCount
FROM
@tmptable t INNER JOIN [MsgTag] m ON t.TagID = m.TagID
ORDER BY
t.DateFlag ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ServiceMessage_Send]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @ToUserID = 1,
-- @Msg = '',
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2014-11-18
-- Description: 客服回复
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_Send]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@ToUserID INT, --对方用户ID
@Msg NVARCHAR(512), --留言内容
@TransMsg NVARCHAR(512), --译文
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--插入客服留言信息
INSERT INTO [ServiceMessage]
(
UserID, Title, ToUserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
)
VALUES
(
-1, '',@ToUserID, @Msg, 0, GETDATE(), @OpUserID, @OpUserName, @TransMsg, 0
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_TagStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ServiceMessage_TagStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-11-18
-- Description: 邮件标签统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_TagStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
TagID INT NOT NULL, --标签ID
MsgCount INT NOT NULL --数量
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--初始化表变量
INSERT INTO @tmptable
(
DateFlag, TagID, MsgCount
)
SELECT
CONVERT(CHAR(10), Crdate, 120), TagID, COUNT(TagID)
FROM
[ServiceMessage]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND TagID > 0
GROUP BY
CONVERT(CHAR(10), Crdate, 120), TagID
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC) AS RowNumber,
DateFlag, TagID, MsgCount
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(VARCHAR(10), l.DateFlag, 120) AS DateFlag, l.TagID, m.TagName, l.MsgCount
FROM
[List] l INNER JOIN [MsgTag] m ON l.TagID = m.TagID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_ServiceMessage_Translate] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_ServiceMessage_Translate]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-11-18
-- Description: 客服留言翻译
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_ServiceMessage_Translate]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@MessageID INT, --留言ID
@TransMsg NVARCHAR(512), --译文
@TagID INT --标签ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[ServiceMessage]
SET
TagID = @TagID,
TransMsg = CASE WHEN @TransMsg != '' THEN @TransMsg ELSE TransMsg END,
OpUserID = CASE WHEN @OpUserID > 0 THEN @OpUserID ELSE OpUserID END,
OpUserName = CASE WHEN @OpUserName != '' THEN @OpUserName ELSE OpUserName END
WHERE
MessageID = @MessageID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Slot_GetStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Slot_GetStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: Slot游戏统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Slot_GetStat]
@GameID INT, --游戏ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
InvestAmount, SUM(BetAmount) AS BetAmount, SUM(BetTimes) AS BetTimes,
SUM(ResultAmount) AS ResultAmount, SUM(WinTimes) AS WinTimes, SUM(WinAmount) AS WinAmount,
SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
FROM
[SlotStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
GROUP BY
InvestAmount
ORDER BY
InvestAmount ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Slot_GetStatDetail] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Slot_GetStatDetail]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: Slot游戏统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Slot_GetStatDetail]
@GameID INT, --游戏ID
@InvestAmount BIGINT, --下注额
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@InvestAmount > 0)
BEGIN
--返回信息
SELECT
CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag, BetAmount, BetTimes, ResultAmount,
WinTimes, WinAmount, Tax, MaxResultAmount
FROM
[SlotStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND InvestAmount = @InvestAmount
ORDER BY
DateFlag ASC
RETURN
END
--返回信息
SELECT
CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag,
SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetAmount ELSE 0 END) AS BetAmount,
SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetTimes ELSE 0 END) AS BetTimes,
SUM(ResultAmount) AS ResultAmount,
SUM(CASE WHEN InvestAmount % 100 = 0 THEN WinTimes ELSE 0 END) AS WinTimes,
SUM(WinAmount) AS WinAmount, SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
FROM
[SlotStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
GROUP BY
DateFlag
ORDER BY
DateFlag ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SlotChip_GetStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_SlotChip_GetStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: Slot游戏统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_SlotChip_GetStat]
@GameID INT, --游戏ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
InvestAmount, SUM(BetAmount) AS BetAmount, SUM(BetTimes) AS BetTimes,
SUM(ResultAmount) AS ResultAmount, SUM(WinTimes) AS WinTimes, SUM(WinAmount) AS WinAmount,
SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
FROM
[SlotChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
GROUP BY
InvestAmount
ORDER BY
InvestAmount ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SlotChip_GetStatDetail] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_SlotChip_GetStatDetail]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-08
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: Slot游戏统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_SlotChip_GetStatDetail]
@GameID INT, --游戏ID
@InvestAmount BIGINT, --下注额
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@InvestAmount > 0)
BEGIN
--返回信息
SELECT
CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag, BetAmount, BetTimes, ResultAmount,
WinTimes, WinAmount, Tax, MaxResultAmount
FROM
[SlotChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID AND InvestAmount = @InvestAmount
ORDER BY
DateFlag ASC
RETURN
END
--返回信息
SELECT
CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag,
SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetAmount ELSE 0 END) AS BetAmount,
SUM(CASE WHEN InvestAmount % 100 = 0 THEN BetTimes ELSE 0 END) AS BetTimes,
SUM(ResultAmount) AS ResultAmount,
SUM(CASE WHEN InvestAmount % 100 = 0 THEN WinTimes ELSE 0 END) AS WinTimes,
SUM(WinAmount) AS WinAmount, SUM(Tax) AS Tax, SUM(MaxResultAmount) AS MaxResultAmount
FROM
[SlotChipStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
GROUP BY
DateFlag
ORDER BY
DateFlag ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SNGMatch_GetChairHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_SNGMatch_GetChairHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: SNG比赛场椅子历史
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_SNGMatch_GetChairHistory]
@SerialNumber BIGINT --流水号ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
c.UserID, u.NickName, c.RankId, c.Score, c.ItemId, c.Fee
FROM
[SNGMatchChairHistory] c LEFT JOIN [AllUser] u ON c.UserID = u.UserID
WHERE
c.SerialNumber = @SerialNumber
ORDER BY
c.Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SNGMatch_GetHistoryList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_SNGMatch_GetHistoryList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: SNG比赛场历史
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_SNGMatch_GetHistoryList]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--变量用户
DECLARE @tmpRoom TABLE(
SerialNumber BIGINT NOT NULL --流水号
)
--表变量
DECLARE @tmptable TABLE(
SerialNumber BIGINT NOT NULL, --流水号
MatchID INT NOT NULL, --比赛ID
MatchNo VARCHAR(32) NOT NULL, --比赛号
MatchName VARCHAR(32) NOT NULL, --比赛名称
GameID INT NOT NULL, --游戏ID
GameName VARCHAR(32) NOT NULL, --游戏名称
StartTime DATETIME NOT NULL, --开始时间
EndTime DATETIME NOT NULL --结束时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--查询某个用户
IF(@UserID > 0)
BEGIN
INSERT INTO @tmpRoom(SerialNumber)
SELECT DISTINCT
SerialNumber
FROM
[SNGMatchChairHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
INSERT INTO @tmptable
(
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
)
SELECT
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
FROM
[SNGMatchHistory]
WHERE
StartTime BETWEEN @BeginTime AND @EndTime AND SerialNumber IN (SELECT SerialNumber FROM @tmpRoom)
END
--查询某个游戏
ELSE IF(@GameID > 0)
BEGIN
INSERT INTO @tmptable
(
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
)
SELECT
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
FROM
[SNGMatchHistory]
WHERE
StartTime BETWEEN @BeginTime AND @EndTime AND GameID = @GameID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
)
SELECT
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
FROM
[SNGMatchHistory]
WHERE
StartTime BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY StartTime DESC) AS RowNumber,
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
FROM
@tmptable
)
--返回信息
SELECT
SerialNumber, MatchID, MatchNo, MatchName, GameID, GameName,
CONVERT(VARCHAR(20), StartTime, 120) AS StartTime, CONVERT(VARCHAR(20), EndTime, 120) AS EndTime,
DATEDIFF(SECOND, StartTime, EndTime) AS PlaySeconds
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SNGMatchReport_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_SNGMatchReport_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 挑战赛报表列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_SNGMatchReport_GetList]
@BeginTime SMALLDATETIME, --开始时间
@EndTime SMALLDATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag,
ItemType, ItemName, ItemValue, ItemTag
FROM
[SNGMatchReport]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
ORDER BY
DateFlag DESC, ItemType ASC, ItemTag ASC, Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SysLog_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_SysLog_GetList]
-- @OpUserID = 0,
-- @StartTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- =============================================
-- Author: wolf
-- Create Date: 2016-10-21
-- Mendor: wolf
-- Alter Date: 2016-10-21
-- Description: 系统日志列表
-- =============================================
CREATE PROCEDURE [dbo].[Manage_SysLog_GetList]
@OpUserID INT, --操作员ID
@StartTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始索引
DECLARE @EndRowIndex INT --终止索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--创建临时表
CREATE TABLE #tmpLog(
SysLogID INT NOT NULL,
OpUserID INT NOT NULL,
OpUserName VARCHAR(32) NOT NULL,
IPAddress VARCHAR(15) NOT NULL,
Msg NVARCHAR(4000) NOT NULL,
Crdate DATETIME NOT NULL
)
--查询某个操作员日志
IF(@OpUserID > 0)
BEGIN
INSERT INTO #tmpLog
(
SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
)
SELECT
SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
FROM
[SysLog]
WHERE
OpUserID = @OpUserID AND Crdate BETWEEN @StartTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
END
--查询所有操作员日志
ELSE
BEGIN
INSERT INTO #tmpLog
(
SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
)
SELECT
SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
FROM
[SysLog]
WHERE
Crdate BETWEEN @StartTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY SysLogID DESC) AS RowNumber,
SysLogID, OpUserID, OpUserName, IPAddress, Msg, Crdate
FROM
#tmpLog
)
--返回信息:日志ID(AdminLogID)、管理员ID(AdminUserID)、管理员名称(AdminUserName)、
-- IP地址(IPAddress)、消息(Msg)、创建时间(Crdate)
SELECT
SysLogID, OpUserID, OpUserName, IPAddress, Msg, CONVERT(CHAR(16), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--删除临时表
DROP TABLE #tmpLog
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SysMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_SysMessage_GetList]
-- @UserID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = '',
-- @PageSize = 1,
-- @RecordCount = @RecordCount OUTPUT
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-19
-- Mendor: wolf
-- Alter Date: 2015-01-07
-- Description: 发送系统消息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_SysMessage_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--创建临时表
DECLARE @tmptable TABLE(
SysMsgID INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
Title NVARCHAR(32) NOT NULL, --标题
Content NVARCHAR(256) NOT NULL, --内容
Status TINYINT NOT NULL, --状态 0=未读 1=已读 2=已领取
SourceName NVARCHAR(32) NOT NULL, --源名称
Crdate DATETIME NOT NULL, --时间
Tools VARCHAR(1024) NOT NULL --附件(json格式)
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--查询某个用户
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
)
SELECT TOP 10000
SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
FROM
[SysMessage]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
SysMsgID DESC
END
--所有用户
ELSE
BEGIN
INSERT INTO @tmptable
(
SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
)
SELECT TOP 10000
SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
FROM
[SysMessage]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
SysMsgID DESC
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY SysMsgID DESC) AS RowNumber,
SysMsgID, UserID, Title, Content, Status, SourceName, Crdate, Tools
FROM
@tmptable
)
SELECT
l.SysMsgID, u.UserID, u.NickName, l.Title, l.Content,
l.Status, l.SourceName, l.Tools,
CONVERT(CHAR(20), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_SysMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_SysMessage_Send]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-08-27
-- Mendor: wolf
-- Alter Date: 2015-09-08
-- Description: 发送系统消息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_SysMessage_Send]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@Title NVARCHAR(32), --标题
@Content NVARCHAR(256), --内容
@UserID INT, --用户ID -1=所有用户
@Tools VARCHAR(1024), --附件(json格式)
@IPAddress VARCHAR(16), --IP地址
@MsgType TINYINT --邮件类型(0=普通邮件 1=重要邮件)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --消息
--所有用户
IF(@UserID = -1)
BEGIN
INSERT INTO [SysMessage]
(
UserID, Title, Content, Status, SourceName, Crdate, Tools, MsgType
)
SELECT
UserID, @Title, @Content, 0, N'نظام', GETDATE(), @Tools, @MsgType
FROM
[AllUser]
WHERE
UserID NOT IN (SELECT UserID FROM [MachineUser])
END
ELSE
BEGIN
--给某个用户发送系统消息
INSERT INTO [SysMessage]
(
UserID, Title, Content, Status, SourceName, Crdate, Tools, MsgType
)
VALUES
(
@UserID, @Title, @Content, 0, N'نظام', GETDATE(), @Tools, @MsgType
)
END
SET @Msg = N'后台发送邮件,@UserID=' + LTRIM(STR(@UserID)) + ',@Title=' + @Title +
',@Tools=' + @Tools + ',@MsgType=' + LTRIM(STR(@MsgType))
--添加后台操作日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName,
@IPAddress = @IPAddress, @Msg = @Msg, @Type = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_TaxStatTotal_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_TaxStatTotal_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2016-01-27
-- Description: 后台管理--获取游戏税收总计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_TaxStatTotal_GetList]
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@TotalTaxAmount BIGINT OUTPUT --总税收
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
ServerName NVARCHAR(32) NOT NULL, --服务器
TaxSum BIGINT NOT NULL --税收
)
SET @EndTime = @EndTime + ' 23:59:59'
SET @TotalTaxAmount = 0
--初始化表变量
INSERT INTO @tmptable(ServerName, TaxSum)
SELECT
ServerName, SUM(Tax)
FROM
[GameTax]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
ServerName
--有税收才统计
IF(@@ROWCOUNT > 0)
BEGIN
SET @TotalTaxAmount = (SELECT SUM(TaxSum) FROM @tmptable)
END
--返回信息:服务器名称、税收(TaxSum)(bigint)
SELECT
ServerName, TaxSum
FROM
@tmptable
ORDER BY
TaxSum DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_TimeBroadcast_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_TimeBroadcast_Del]
-- @Rid = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-29
-- Mendor: wolf
-- Alter Date: 2014-09-29
-- Description: 后台管理--删除定时广播
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_TimeBroadcast_Del]
@Rid INT --标识
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--定时广播信息
DELETE FROM [TimeBroadcast] WHERE Rid = @Rid
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_TimeBroadcast_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_TimeBroadcast_GetList]
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-29
-- Mendor: wolf
-- Alter Date: 2014-10-20
-- Description: 后台管理--获取定时广播列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_TimeBroadcast_GetList]
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--记录数
SELECT @RecordCount = (SELECT COUNT(Rid) FROM [TimeBroadcast])
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY EndDate + EndTime DESC) AS RowNumber,
Rid, OpUserID, OpUserName, BeginDate, BeginTime, EndDate, EndTime,
InterMinutes, Msg, UpdateTime, Crdate
FROM
[TimeBroadcast]
)
--返回信息:标识(Rid)(OpUserID)、操作员名称(OpUserID)(int)、操作员名称(OpUserName)(varchar(32))、
-- 开始日期(BeginDate)(datetime)、开始时间(BeginTime)(varchar(8))、截止日期(EndDate)(datetime)、截止时间(EndTime)(varchar(8))、
-- 间隔分钟(InterMinutes)(int)、消息(Msg)(varchar(512))、更新时间(UpdateTime)(datetime)、创建时间(Crdate)(datetime)
SELECT
Rid, OpUserID, OpUserName, CONVERT(CHAR(10), BeginDate, 120) AS BeginDate, BeginTime,
CONVERT(CHAR(10), EndDate, 120) AS EndDate, EndTime,
InterMinutes, Msg, UpdateTime, Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_TimeBroadcast_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_TimeBroadcast_Send]
-- @OpUserID = 1,
-- @OpUserName = '',
-- @BeginDate = '',
-- @BeginTime = '',
-- @EndDate = '',
-- @EndTime = '',
-- @InterMinutes = 1,
-- @Msg = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-29
-- Mendor: wolf
-- Alter Date: 2014-09-29
-- Description: 后台管理--定时广播发送
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_TimeBroadcast_Send]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@BeginDate DATETIME, --开始日期
@BeginTime VARCHAR(8), --开始时间
@EndDate DATETIME, --截止日期
@EndTime VARCHAR(8), --截止时间
@InterMinutes INT, --间隔分钟
@Msg VARCHAR(512) --广播消息
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--定时广播
INSERT INTO [TimeBroadcast]
(
OpUserID, OpUserName, BeginDate, BeginTime, EndDate, EndTime,
InterMinutes, Msg, UpdateTime, Crdate
)
VALUES
(
@OpUserID, @OpUserName, @BeginDate, @BeginTime, @EndDate, @EndTime,
@InterMinutes, @Msg, GETDATE(), GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_TimePeriod_GetStatList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_TimePeriod_GetStatList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 时段人数报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_TimePeriod_GetStatList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--表变量
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL,
UserID INT NOT NULL,
TodaySeconds INT NOT NULL
)
--初始化表变量
INSERT INTO @tmptable
(
DateFlag, UserID, TodaySeconds
)
SELECT
DateFlag, UserID, SUM(TodaySeconds)
FROM
(
SELECT
CONVERT(CHAR(10), LoginTime, 120) AS DateFlag, UserID, TodaySeconds
FROM
[t_onlinetime]
WHERE
LoginTime BETWEEN @BeginTime AND @EndTime + 1
UNION ALL
SELECT
CONVERT(CHAR(10), LoginTime, 120) AS DateFlag, UserID, TodaySeconds
FROM
[t_onlinetimeHistory]
WHERE
LoginTime BETWEEN @BeginTime AND @EndTime + 1
) AS O
GROUP BY
DateFlag, UserID
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
CASE
WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
WHEN TodaySeconds >= 7201 THEN N'2小时以上'
END AS TimePeriod, COUNT(DISTINCT UserID) AS UserCount
FROM
@tmptable
GROUP BY
CONVERT(CHAR(10), DateFlag, 120),
CASE
WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
WHEN TodaySeconds >= 7201 THEN N'2小时以上'
END
ORDER BY
CONVERT(CHAR(10), DateFlag, 120) DESC, MIN(TodaySeconds) ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_TimePeriod_GetUserList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_TimePeriod_GetUserList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 时段人数用户列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_TimePeriod_GetUserList]
@MinSeconds INT, --最小秒数
@MaxSeconds INT, --最大秒数
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
Seconds INT NOT NULL --总秒数
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = @EndTime + 1
--初始化
INSERT INTO @tmptable
(
UserID, Seconds
)
SELECT
UserID, SUM(TodaySeconds)
FROM
(
SELECT
UserID, TodaySeconds
FROM
[t_onlinetime]
WHERE
LoginTime BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
UserID, TodaySeconds
FROM
[t_onlinetimeHistory]
WHERE
LoginTime BETWEEN @BeginTime AND @EndTime
) O
GROUP BY
UserID
HAVING
SUM(TodaySeconds) BETWEEN @MinSeconds AND @MaxSeconds
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Seconds DESC) AS RowNumber,
UserID, Seconds
FROM
@tmptable
)
--返回信息
SELECT
l.RowNumber, l.UserID, u.NickName, CONVERT(CHAR(16), u.RegTime, 120) AS RegTime,
CONVERT(CHAR(16), u.LoginTime, 120) AS LoginTime, l.Seconds, u.IPAddress
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_TimePeriod_Report] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_TimePeriod_Report]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 时段人数报表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_TimePeriod_Report]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL,
TodaySeconds INT NOT NULL
)
--初始化表变量
INSERT INTO @tmptable
(
UserID, TodaySeconds
)
SELECT
UserID, SUM(TodaySeconds)
FROM
(
SELECT
UserID, TodaySeconds
FROM
[t_onlinetime]
WHERE
LoginTime BETWEEN @BeginTime AND @EndTime + 1
UNION ALL
SELECT
UserID, TodaySeconds
FROM
[t_onlinetimeHistory]
WHERE
LoginTime BETWEEN @BeginTime AND @EndTime + 1
) AS onlineTime
GROUP BY
UserID
--返回信息
SELECT
CASE
WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
WHEN TodaySeconds >= 7201 THEN N'2小时以上'
END AS TimePeriod, COUNT(DISTINCT UserID) AS UserCount
FROM
@tmptable
GROUP BY
CASE
WHEN TodaySeconds BETWEEN 0 AND 300 THEN N'0~5分钟'
WHEN TodaySeconds BETWEEN 301 AND 900 THEN N'5~15分钟'
WHEN TodaySeconds BETWEEN 901 AND 1800 THEN N'15~30分钟'
WHEN TodaySeconds BETWEEN 1801 AND 2700 THEN N'30~45分钟'
WHEN TodaySeconds BETWEEN 2701 AND 3600 THEN N'45~60分钟'
WHEN TodaySeconds BETWEEN 3601 AND 4500 THEN N'60~75分钟'
WHEN TodaySeconds BETWEEN 4501 AND 5400 THEN N'75~90分钟'
WHEN TodaySeconds BETWEEN 5401 AND 6300 THEN N'90~105分钟'
WHEN TodaySeconds BETWEEN 6301 AND 7200 THEN N'105~120分钟'
WHEN TodaySeconds >= 7201 THEN N'2小时以上'
END
ORDER BY
MIN(TodaySeconds) ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Tip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Tip_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2015-08-10
-- Description: 小红点提示
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Tip_GetInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @MessageCount INT --留言数
DECLARE @ExchangeCount INT --兑换数
DECLARE @UserWordCount INT --个性签名数
DECLARE @AuditCount INT --提现审核条数
DECLARE @FailCount INT --提现失败条数
DECLARE @FeedbackCount INT --反馈提醒
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @MessageCount = 0
SET @ExchangeCount = 0
SET @UserWordCount = 0
SET @AuditCount = 0
SET @FailCount = 0
SET @FeedbackCount = 0
--还没查看的留言数
SELECT @MessageCount = COUNT(MessageID) FROM [ServiceMessage] WHERE Crdate >= @DateFlag - 3 AND UserID > 0 AND IsRead = 0
--兑换数
SELECT @ExchangeCount = COUNT(Id) FROM [ExchangeHistory] WHERE Crdate >= @DateFlag - 3 AND Status = 0
--个性签名数
SELECT @UserWordCount = COUNT(ApplyID) FROM [UserWordsPool] WHERE ApplyTime >= @DateFlag AND Status = 0
SELECT @FeedbackCount = COUNT(Rid) FROM [Feedback] WHERE Crdate >= @DateFlag - 3 AND Status = 0 AND Email NOT LIKE N'问卷调查%'
--返回信息
SELECT @MessageCount AS MessageCount, @ExchangeCount AS ExchangeCount, @UserWordCount AS UserWordCount,
@AuditCount AS AuditCount, @FailCount AS FailCount, @FeedbackCount AS FeedbackCount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserAgent_DealApply] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserAgent_DealApply]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 处理申请
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserAgent_DealApply]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员昵称
@ApplyID INT, --申请ID
@ApplyStatus TINYINT, --状态(0=审核 1=已通过 2=拒绝)
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果 1=审核通过成功 2=拒绝成功 11=参数错误 12=申请已经处理过
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Status TINYINT --状态(0=审核 1=已通过 2=拒绝)
DECLARE @UserID INT --用户ID
DECLARE @CurrTime DATETIME --时间
DECLARE @HigherUserID INT --上级ID
SET @RetCode = 0
SET @CurrTime = GETDATE()
--判断参数
IF(@ApplyStatus IS NULL OR @ApplyStatus NOT IN (1, 2))
BEGIN
SET @RetCode = 11
RETURN
END
--申请信息
SELECT
@UserID = UserID, @Status = ApplyStatus, @HigherUserID = HigherUserID
FROM
[AgentApply]
WHERE
ApplyID = @ApplyID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
RETURN
END
--判断是否是待审核
IF(@Status != 0)
BEGIN
SET @RetCode = 12
RETURN
END
--处理申请
UPDATE
[AgentApply]
SET
ApplyStatus = @ApplyStatus, DealTime = @CurrTime,
Memo = Memo + N',操作员:'+ @OpUserName + '(id:' + LTRIM(STR(@OpUserID)) + ')'
WHERE
ApplyID = @ApplyID
--2=拒绝
IF(@ApplyStatus = 2)
BEGIN
SET @RetCode = 2
RETURN
END
--初始化
INSERT INTO [UserAgent]
(
UserID, Commission, Profit, Members, Enabled, Crdate
)
VALUES
(
@UserID, 0, 0, 0, 1, @CurrTime
)
--还没有上级
IF(@HigherUserID <= 0)
BEGIN
--绑定系统账号
EXEC [WS_UserAgent_Bind] @UserID = @UserID, @HigherUserID = 10001
END
--审核通过
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetApplyList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserAgent_GetApplyList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 申请列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserAgent_GetApplyList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --总记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
ApplyID INT NOT NULL, --申请ID
UserID INT NOT NULL, --用户ID
HigherUserID INT NOT NULL, --上级用户ID
ApplyStatus TINYINT NOT NULL, --状态(0=待审核 1=已通过 2=拒绝)
Memo NVARCHAR(128) NOT NULL, --备注(联系信息,如:电话)
DealTime DATETIME NOT NULL, --处理时间
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--查询某个用户
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
)
SELECT
ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
FROM
[AgentApply]
WHERE
UserID = @UserID
END
--查询所有
ELSE
BEGIN
INSERT INTO @tmptable
(
ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
)
SELECT
ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
FROM
[AgentApply]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ApplyID DESC) AS RowNumber,
ApplyID, UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.ApplyID, l.UserID, u.NickName, l.HigherUserID, ISNULL(h.NickName, '') AS HigherNickName,
l.ApplyStatus, l.Memo, CONVERT(VARCHAR(23), l.DealTime, 121) AS DealTime,
CONVERT(VARCHAR(23), l.Crdate, 121) AS Cradte
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [AllUser] h ON l.HigherUserID = h.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetCommissionLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserAgent_GetCommissionLog]
-- =============================================
-- Author: wolf
-- Create Date: 2014-04-23
-- Mendor: wolf
-- Alter Date: 2015-10-12
-- Description: 佣金日志
-- =============================================
CREATE PROCEDURE [dbo].[Manage_UserAgent_GetCommissionLog]
@UserID INT, --账号ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --结束时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount BIGINT OUTPUT, --总记录数
@TotalCommission BIGINT OUTPUT --总佣金
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请表变量
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
GameID INT NOT NULL, --游戏ID
FromUserID INT NOT NULL, --源用户ID
Tax BIGINT NOT NULL, --台费
WantCommission BIGINT NOT NULL, --操作佣金
StillCommission BIGINT NOT NULL, --剩余佣金
Direct TINYINT NOT NULL, --属级(1=直属 2=非直属)
Memo NVARCHAR(128) NOT NULL, --备注
Crdate DATETIME NOT NULL --时间
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @TotalCommission = 0
--查询某个账号
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
)
SELECT
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
FROM
[CommissionLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--总记录数
SET @RecordCount = @@ROWCOUNT
INSERT INTO @tmptable
(
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
)
SELECT
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
FROM
[CommissionLogHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
--查询所有
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
)
SELECT
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
FROM
[CommissionLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--总记录数
SET @RecordCount = @@ROWCOUNT
INSERT INTO @tmptable
(
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
)
SELECT
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
FROM
[CommissionLogHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--总记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
--统计总佣金
SELECT @TotalCommission = ISNULL(SUM(WantCommission), 0) FROM @tmptable WHERE WantCommission > 0
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, UserID, GameID, FromUserID, Tax, WantCommission,
StillCommission, Direct, Memo, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.Rid, l.UserID, u.NickName, l.FromUserID, f.NickName AS FromNickName,
l.Tax, l.WantCommission, l.StillCommission, l.Direct,
l.Memo, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
ISNULL(g.ChineseName, '') AS ChineseName
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
INNER JOIN [AllUser] f ON l.FromUserID = f.UserID
LEFT JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserAgent_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 代理信息
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserAgent_GetInfo]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--用户代理
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
Commission BIGINT NOT NULL, --佣金
Profit BIGINT NOT NULL, --收益(已提取)
Members INT NOT NULL, --会员数
Enabled TINYINT NOT NULL, --启用
Crdate DATETIME NOT NULL --创建时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
UserID, Commission, Profit, Members, Enabled, Crdate
)
SELECT
UserID, Commission, Profit, Members, Enabled, Crdate
FROM
[UserAgent]
WHERE
UserID = @UserID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, Commission, Profit, Members, Enabled, Crdate
)
SELECT
UserID, Commission, Profit, Members, Enabled, Crdate
FROM
[UserAgent]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [list] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
UserID, Commission, Profit, Members, Enabled, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.UserID, u.NickName, l.Commission, l.Profit, l.Members, l.Enabled,
CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserAgent_GetMemberList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserAgent_GetMemberList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 会员列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserAgent_GetMemberList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页索引
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--佣金表变量
DECLARE @tmpCommission TABLE(
UserID INT NOT NULL, --用户ID
Commission BIGINT NOT NULL --佣金
)
--表变量
DECLARE @tmptable TABLE(
HigherUserID INT NOT NULL, --代理ID
UserID INT NOT NULL, --用户ID
Commission BIGINT NOT NULL, --佣金
NewCommission BIGINT NOT NULL, --新增佣金
BindTime DATETIME NOT NULL, --绑定时间
LoginTime DATETIME NOT NULL --登录时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
SET @RecordCount = 0
--某个用户
IF(@UserID > 0)
BEGIN
--代理列表
INSERT INTO @tmptable
(
HigherUserID, UserID, Commission, NewCommission, BindTime, LoginTime
)
SELECT
HigherUserID, UserID, Commission, 0, BindTime, LoginTime
FROM
[AgentMember]
WHERE
HigherUserID = @UserID OR UserID = @UserID
END
ELSE
BEGIN
--代理列表
INSERT INTO @tmptable
(
HigherUserID, UserID, Commission, NewCommission, BindTime, LoginTime
)
SELECT
HigherUserID, UserID, Commission, 0, BindTime, LoginTime
FROM
[AgentMember]
WHERE
BindTime BETWEEN @BeginTime AND @EndTime
ORDER BY
MemberID DESC
END
--记录数
SET @RecordCount = @@ROWCOUNT
--统计代理统计
INSERT INTO @tmpCommission
(
UserID, Commission
)
SELECT
c.FromUserID, SUM(c.Commission)
FROM
[CommissionStat] c INNER JOIN @tmptable t ON c.FromUserID = t.UserID
WHERE
c.DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
c.FromUserID
--获取流水、佣金
UPDATE t SET t.NewCommission = c.Commission FROM @tmptable t INNER JOIN @tmpCommission c ON t.UserID = c.UserID
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY NewCommission DESC) AS RowNumber,
HigherUserID, UserID, Commission, NewCommission, BindTime, LoginTime
FROM
@tmptable
)
--返回信息
SELECT
l.UserID, u.NickName, l.Commission, l.NewCommission,
CONVERT(CHAR(20), l.BindTime, 120) AS BindTime,
CONVERT(CHAR(20), u.LoginTime, 120) AS LoginTime,
l.HigherUserID, h.NickName AS HigherUserName
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
INNER JOIN [AllUser] h ON l.HigherUserID = h.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserAgent_SetStatus] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserAgent_SetStatus]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 代理设置
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserAgent_SetStatus]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@Enabled TINYINT --是否开启(1=开启 其他关闭)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @DBEnabled TINYINT --开启状态
SET @DBEnabled = 0
--状态
UPDATE [UserAgent] SET Enabled = @Enabled, @DBEnabled = Enabled WHERE UserID = @UserID
SET @Msg = N'代理状态设置, @UserID=' + LTRIM(STR(@UserID)) + ',@Enabled=' + LTRIM(STR(@Enabled)) +
',@DBEnabled=' + LTRIM(STR(@DBEnabled))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = '127.0.0.1'
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserBehavior_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserBehavior_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取用户行为列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserBehavior_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
SceneName NVARCHAR(32) NOT NULL, --场景(商城、休闲游戏、元宝游戏)
ActTime DATETIME NOT NULL, --动作时间
Amount BIGINT NOT NULL, --金额
EndTime DATETIME NOT NULL, --结束时间
StaySeconds INT NOT NULL, --停留时长(秒)
StillAmount BIGINT NOT NULL, --余额
WinAmount BIGINT NOT NULL, --输赢
GameCount INT NOT NULL, --游戏局数
Status TINYINT NOT NULL --状态(1=休闲场 begin 2=休闲场 end 3=元宝场 begin 4=元宝场 end)
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--初始化
INSERT INTO @tmptable
(
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
)
SELECT
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
FROM
[UserBehavior]
WHERE
ActTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ActTime ASC) AS RowNumber,
UserID, SceneName, ActTime, Amount, EndTime, StaySeconds, StillAmount, WinAmount, GameCount, Status
FROM
@tmptable
)
SELECT
UserID, SceneName, CONVERT(VARCHAR(23), ActTime, 121) AS ActTime, Amount,
CONVERT(VARCHAR(23), EndTime, 121) AS EndTime, StaySeconds, StillAmount,
WinAmount, GameCount, Status
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserChipScore_AddRobot] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserChipScore_AddRobot]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 添加元宝积分(用于机器人)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserChipScore_AddRobot]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@Score INT, --积分
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--更新
UPDATE [UserChipScore] SET Score = Score + @Score WHERE DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserChipScore](DateFlag, UserID, Score) VALUES(@DateFlag, @UserID, @Score)
END
SET @Msg = N'添加积分, @UserID=' + LTRIM(STR(@UserID)) + ',@Score=' + LTRIM(STR(@Score))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserCouponTask_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserCouponTask_GetLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 红包券日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserCouponTask_GetLog]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
LogID INT NOT NULL, --日志ID
UserID INT NOT NULL, --用户ID
ItemID INT NOT NULL, --道具ID
CurrCount INT NOT NULL, --当前数量
WantCount INT NOT NULL, --道具数量
StillCount INT NOT NULL, --剩余数量
Remark NVARCHAR(128) NOT NULL, --备注
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLog]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT TOP (10000 - @RecordCount)
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLogHistory]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
ORDER BY
Crdate DESC
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
ELSE
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT TOP (10000 - @RecordCount)
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLogHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = 620100
ORDER BY
Crdate DESC
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
@tmptable
)
SELECT
l.LogID, l.UserID, u.NickName, l.ItemID, l.CurrCount, l.WantCount, l.StillCount,
l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
ISNULL(i.ItemName, '') AS ItemName
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Item] i ON l.ItemID = i.ItemID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserDailyStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserDailyStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户日常统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserDailyStat_GetList]
@UserID INT, --用户ID
@IsSleep TINYINT, --是否沉睡用户 (1=沉睡用户)
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--申请表变量
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
DateFlag SMALLDATETIME NOT NULL, --日期标识
UserID INT NOT NULL, --用户ID
WinAmount BIGINT NOT NULL, --赢金
LoseAmount BIGINT NOT NULL, --输金
StillAmount BIGINT NOT NULL, --剩余金币
GameStart DATETIME NOT NULL, --游戏开始时间
GameEnd DATETIME NOT NULL, --最后游戏结束时间
PlaySeconds INT NOT NULL, --游戏时长(秒)
PayMoney DECIMAL(18, 2) NOT NULL, --充值
LoginCount INT NOT NULL, --登录数
VideoPlayTimes INT NOT NULL, --视频广告次数
VideoSendAmount BIGINT NOT NULL --视频广告赠送
)
--查询某个账号
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
SELECT
Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
FROM
[UserDailyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
--查询沉睡用户
ELSE IF(@IsSleep > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
SELECT
Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
FROM
[UserDailyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PlaySeconds = 0
END
--查询所有账号
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
SELECT
Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
FROM
[UserDailyStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
FROM
@tmptable
)
--返回信息
SELECT
l.Rid, CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, l.UserID, u.NickName,
l.WinAmount, l.LoseAmount, l.StillAmount, CONVERT(CHAR(16), l.GameStart, 120) AS GameStart,
CONVERT(CHAR(16), l.GameEnd, 120) AS GameEnd, l.PlaySeconds, l.PayMoney,
ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName, l.LoginCount,
CONVERT(CHAR(16), u.RegTime, 120) AS RegTime, l.VideoPlayTimes, l.VideoSendAmount
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserDot_GetStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserDot_GetStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取打点统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserDot_GetStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@Event VARCHAR(32) --事件
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--表变量
DECLARE @tmptable TABLE(
Event VARCHAR(32) NOT NULL, --事件
Days INT NOT NULL, --天数(0=当天 7=过去7天 30=过去30天)
ClickTimes INT NOT NULL, --点击次数
ClickUserCount INT NOT NULL, --点击人数
CompleteUserCount INT NOT NULL --完成人数
)
--表变量
DECLARE @tmpStat TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期
Event VARCHAR(32) NOT NULL, --事件
Days INT NOT NULL, --天数(0=当天 7=过去7天 30=过去30天)
ClickTimes INT NOT NULL, --点击次数
ClickUserCount INT NOT NULL, --点击人数
CompleteUserCount INT NOT NULL --完成人数
)
--当天实时数据
IF(@EndTime >= CONVERT(CHAR(10), GETDATE(), 120))
BEGIN
--统计当天数据
INSERT INTO @tmptable
(
Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
)
SELECT
Event, 0,
ISNULL(SUM(CASE WHEN Action = 1 THEN Times ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 1 THEN 1 ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN Action = 2 THEN 1 ELSE 0 END), 0)
FROM
[UserDot]
WHERE
DateFlag = CONVERT(CHAR(10), GETDATE(), 120) AND Event = @Event
GROUP BY
Event
--初始化
INSERT INTO @tmpStat
(
DateFlag, Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
)
--返回信息
SELECT
CONVERT(CHAR(10), GETDATE(), 120) AS DateFlag, Event, Days,
SUM(ClickTimes) AS ClickTimes, SUM(ClickUserCount) AS ClickUserCount,
SUM(CompleteUserCount) AS CompleteUserCount
FROM
@tmptable
GROUP BY
Event, Days
END
--初始化
INSERT INTO @tmpStat
(
DateFlag, Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
)
--返回信息
SELECT
CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Event, Days,
SUM(ClickTimes) AS ClickTimes, SUM(ClickUserCount) AS ClickUserCount,
SUM(CompleteUserCount) AS CompleteUserCount
FROM
[UserDotStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND Event = @Event
GROUP BY
CONVERT(VARCHAR(10), DateFlag, 120), Event, Days
--返回信息
SELECT
CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Event, Days, ClickTimes, ClickUserCount, CompleteUserCount
FROM
@tmpStat
ORDER BY
DateFlag DESC, Event ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserDot_GetTaskStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserDot_GetTaskStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取打点任务统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserDot_GetTaskStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, Event, Action, COUNT(DISTINCT UserID) AS UserCount
FROM
[UserDotHistory]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND Scene = '任务'
GROUP BY
DateFlag, Event, Action
ORDER BY
DateFlag DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserItem_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserItem_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户道具列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserItem_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
UserItemID, ItemID, ItemCount,
CASE
WHEN Start = 0 THEN ''
ELSE CONVERT(CHAR(20), Start, 120)
END AS Start, Duration, EnegyPoint
FROM
[UserItem]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserItem_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserItem_GetLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户道具日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserItem_GetLog]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@ItemID INT --道具ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
LogID INT NOT NULL, --日志ID
UserID INT NOT NULL, --用户ID
ItemID INT NOT NULL, --道具ID
CurrCount INT NOT NULL, --当前数量
WantCount INT NOT NULL, --道具数量
StillCount INT NOT NULL, --剩余数量
Remark NVARCHAR(128) NOT NULL, --备注
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLog]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT TOP (10000 - @RecordCount)
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLogHistory]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
ELSE
BEGIN
IF(@ItemID > 0)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = @ItemID
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT TOP (10000 - @RecordCount)
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLogHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND ItemID = @ItemID
ORDER BY
Crdate DESC
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
ELSE
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
SET @RecordCount = @@ROWCOUNT
IF(@RecordCount < 10000)
BEGIN
INSERT INTO @tmptable
(
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
)
SELECT TOP (10000 - @RecordCount)
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
[UserItemLogHistory]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
Crdate DESC
SET @RecordCount = @RecordCount + @@ROWCOUNT
END
END
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
LogID, UserID, ItemID, CurrCount, WantCount, StillCount, Remark, IPAddress, Crdate
FROM
@tmptable
)
SELECT
l.LogID, l.UserID, u.NickName, l.ItemID, l.CurrCount, l.WantCount, l.StillCount,
l.Remark, l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate,
ISNULL(i.ItemName, '') AS ItemName
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Item] i ON l.ItemID = i.ItemID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserLabel_GetListByLabelId] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserLabel_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户标签列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserLabel_GetListByLabelId]
@LabelID INT, --标签ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
TypeID INT NOT NULL, --类型ID
UpdateTime DATETIME NOT NULL --更新时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
INSERT INTO @tmptable
(
UserID, TypeID, UpdateTime
)
SELECT
UserID, TypeID, UpdateTime
FROM
[UserLabel]
WHERE
LabelID = @LabelID
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY UpdateTime ASC) AS RowNumber,
UserID, TypeID, UpdateTime
FROM
@tmptable
)
--返回信息
SELECT
l.UserID, u.NickName, l.TypeID, CONVERT(VARCHAR(16), l.UpdateTime, 120) AS UpdateTime
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserLoginLog_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RecordCount INT
-- EXEC [Manage_UserLoginLog_GetList]
-- @UserID = 1,
-- @BeginTime = '',
-- @EndTime = '',
-- @PageIndex = 1,
-- @PageSize = 10,
-- @RecordCount = @RecordCount OUTPUT
-- SELECT @RecordCount AS RecordCount
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-29
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 后台管理--获取登陆日志列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserLoginLog_GetList]
@UserID INT, --用户ID
@NickName NVARCHAR(32), --昵称
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--创建临时表
CREATE TABLE #tmptable(
LogID INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
IMei VARCHAR(64) NOT NULL, --IMei
PartnerID INT NOT NULL, --合作商ID
Version INT NOT NULL, --版本
LoginType TINYINT NOT NULL, --登陆类型
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL, --创建时间
DeviceName VARCHAR(32) NOT NULL --设备名称
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--昵称
IF(LEN(@NickName) > 0)
BEGIN
--用户ID
SELECT @UserID = UserID FROM [AllUser] WHERE NickName = @NickName
IF(@@ROWCOUNT = 0)
RETURN
END
--某个用户
IF(@UserID > 0)
BEGIN
INSERT INTO #tmptable
(
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
)
SELECT TOP 1000
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
FROM
[UserLoginLog]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
LogID DESC
--记录数
SET @RecordCount = @@ROWCOUNT
--不够100条记录
IF(@RecordCount < 1000)
BEGIN
INSERT INTO #tmptable
(
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
)
SELECT TOP (1000 - @RecordCount)
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
FROM
[UserLoginLog_bak]
WHERE
UserID = @UserID AND Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
LogID DESC
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
END
--所有用户
ELSE
BEGIN
INSERT INTO #tmptable
(
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
)
SELECT TOP 1000
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
FROM
[UserLoginLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
LogID DESC
--记录数
SET @RecordCount = @@ROWCOUNT
--不够100条记录
IF(@RecordCount < 1000)
BEGIN
INSERT INTO #tmptable
(
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
)
SELECT TOP (1000 - @RecordCount)
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
FROM
[UserLoginLog_bak]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
ORDER BY
LogID DESC
--记录数
SET @RecordCount = @@ROWCOUNT + @RecordCount
END
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
LogID, UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
FROM
#tmptable
)
--返回信息:标识(LogID)(int)、用户ID(UserID)(int)、昵称(NickName)(varchar(32))、IMei(IMei)(varchar(32))、
-- 登陆方式LoginType)(varchar(16))、IP地址(IP)(varchar(16))、登陆时间(Crdate)(varchar(16))
SELECT
l.LogID, l.UserID, u.NickName, l.IMei,
ISNULL(p.PartnerName, CAST(l.PartnerID AS VARCHAR)) AS PartnerName, l.Version,
CASE
WHEN l.LoginType = 0 THEN 'Visitor landing'
WHEN l.LoginType = 1 THEN 'Mobile phone login'
ELSE ''
END AS LoginType,
l.IPAddress, CONVERT(CHAR(20), l.Crdate, 120) AS Crdate, l.DeviceName
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
LEFT JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
--清除临时表
DROP TABLE #tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserLoginLog_GetStatListByPartner] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserLoginLog_GetStatListByPartner]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-10-27
-- Mendor: wolf
-- Alter Date: 2015-02-03
-- Description: 后台管理--获取登陆日志列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserLoginLog_GetStatListByPartner]
@PartnerID INT, --合作商ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT = 1, --页索引
@PageSize INT = 10, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--申请临时表
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标志
PartnerID INT NOT NULL, --合作商ID
LoginCount INT NOT NULL --登陆数
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--某个合作商
IF(@PartnerID > 0)
BEGIN
INSERT INTO @tmptable
(
DateFlag, PartnerID, LoginCount
)
SELECT
DateFlag, PartnerID, LoginCount
FROM
[LoginStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
--记录数
SET @RecordCount = @@ROWCOUNT
END
--总登陆数
ELSE
BEGIN
INSERT INTO @tmptable
(
DateFlag, PartnerID, LoginCount
)
SELECT
DateFlag, PartnerID, SUM(LoginCount)
FROM
[LoginStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
DateFlag, PartnerID
--记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, LoginCount DESC) AS RowNumber,
DateFlag, PartnerID, LoginCount
FROM
@tmptable
)
--返回信息:日期标志(DateFlag)(varchar)、渠道名称(PartnerName)(varchar(32))、登陆数(LoginCount)(int)
SELECT
CONVERT(CHAR(10), l.DateFlag, 120) AS DateFlag, ISNULL(p.PartnerName, N'所有渠道') AS PartnerName,
l.LoginCount, l.PartnerID
FROM
[List] l INNER JOIN [Partner] p ON l.PartnerID = p.PartnerID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserSign_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserSign_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户签到列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserSign_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmpSign TABLE(
UserID INT NOT NULL, --用户ID
SignID INT NOT NULL, --签到ID
SignTime DATETIME NOT NULL --签到时间
)
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
SignID INT NOT NULL, --签到ID
SignTime DATETIME NOT NULL, --签到时间
Day INT NOT NULL, --连续多少天
DaySet VARCHAR(16) NOT NULL --天数集合(逗号隔开)
)
DECLARE @tmpContinue TABLE(
UserID INT NOT NULL, --用户ID
Day INT NOT NULL, --连续多少天
DaySet VARCHAR(16) NOT NULL --天数集合(逗号隔开)
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--查询某个账号
IF(@UserID > 0)
BEGIN
INSERT INTO @tmpSign
(
UserID, SignID, SignTime
)
SELECT
UserID, MAX(SignID), MAX(SignTime)
FROM
[UserSign]
WHERE
SignTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
GROUP BY
UserID
END
--查询所有账号
ELSE
BEGIN
INSERT INTO @tmpSign
(
UserID, SignID, SignTime
)
SELECT
UserID, MAX(SignID), MAX(SignTime)
FROM
[UserSign]
WHERE
SignTime BETWEEN @BeginTime AND @EndTime
GROUP BY
UserID
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY SignTime DESC) AS RowNumber,
UserID, SignID, SignTime
FROM
@tmpSign
)
--最近签到用户
INSERT INTO @tmptable
(
UserID, SignID, SignTime, Day, DaySet
)
SELECT
UserID, SignID, SignTime, 0, ''
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
--统计连续签到数据
INSERT INTO @tmpContinue
(
UserID, Day, DaySet
)
SELECT
a.UserID, MAX(a.Day), ISNULL(STUFF((SELECT ',' + LTRIM(STR(Day)) FROM [UserContinueSign] WHERE UserID = a.UserID AND Status = 2 FOR XML PATH('')), 1, 1, ''), '')
FROM
[UserContinueSign] AS a INNER JOIN @tmptable t ON a.UserID = t.UserID
GROUP BY
a.UserID
--获取连续签到
UPDATE t SET t.Day = c.Day, t.DaySet = c.DaySet FROM @tmptable t INNER JOIN @tmpContinue c ON t.UserID = c.UserID
--返回信息
SELECT
t.UserID, u.NickName, t.SignID, CONVERT(CHAR(20), t.SignTime, 120) AS SignTime, t.Day, t.DaySet,
ISNULL(p.PartnerName, LTRIM(STR(u.PartnerID))) AS PartnerName
FROM
@tmptable t INNER JOIN [AllUser] u ON t.UserID = u.UserID
LEFT JOIN [Partner] p ON u.PartnerID = p.PartnerID
ORDER BY
SignTime DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserTeacher_GetProfitList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserTeacher_GetProfitList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--收益列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserTeacher_GetProfitList]
@TeacherID INT, --师父ID
@StudentID INT, --徒弟ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--表变量
DECLARE @tmptable TABLE(
TeacherID INT NOT NULL, --师父ID
StudentID INT NOT NULL, --徒弟ID
ProfitType TINYINT NOT NULL, --收益类型(1=绑码 2=充值 3=兑换 4=提现)
Profit BIGINT NOT NULL, --收益
Price DECIMAL(18, 2) NOT NULL, --充值金额
Remark VARCHAR(128) NOT NULL, --备注
Crdate DATETIME NOT NULL --时间
)
--查询某个师父
IF(@TeacherID > 0)
BEGIN
INSERT INTO @tmptable
(
TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
)
SELECT
TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
FROM
[TeacherProfit]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND TeacherID = @TeacherID
END
ELSE IF(@StudentID > 0)
BEGIN
INSERT INTO @tmptable
(
TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
)
SELECT
TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
FROM
[TeacherProfit]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND StudentID = @StudentID
END
--查询所有
ELSE
BEGIN
INSERT INTO @tmptable
(
TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
)
SELECT
TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
FROM
[TeacherProfit]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
TeacherID, StudentID, ProfitType, Profit, Price, Remark, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.RowNumber, l.TeacherID, u.NickName AS TeacherName, l.StudentID, s.NickName AS StudentName,
l.ProfitType, l.Profit, l.Price, l.Remark, CONVERT(VARCHAR(23), l.Crdate, 121) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.TeacherID = u.UserID
INNER JOIN [AllUser] s ON l.StudentID = s.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserTeacher_TopProfit] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserTeacher_TopProfit]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--收益列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserTeacher_TopProfit]
@TeacherID INT, --师父ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--表变量
DECLARE @tmptable TABLE(
TeacherID INT NOT NULL, --师父ID
Profit BIGINT NOT NULL, --收益
Price DECIMAL(18, 2) NOT NULL --充值金额
)
--查询某个师父
IF(@TeacherID > 0)
BEGIN
INSERT INTO @tmptable
(
TeacherID, Profit, Price
)
SELECT
TeacherID, SUM(Profit), SUM(Price)
FROM
[TeacherProfit]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND TeacherID = @TeacherID AND ProfitType IN (1, 2)
GROUP BY
TeacherID
END
--查询所有
ELSE
BEGIN
INSERT INTO @tmptable
(
TeacherID, Profit, Price
)
SELECT
TeacherID, SUM(Profit), SUM(Price)
FROM
[TeacherProfit]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND ProfitType IN (1, 2)
GROUP BY
TeacherID
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Profit DESC) AS RowNumber,
TeacherID, Profit, Price
FROM
@tmptable
)
--返回信息
SELECT
l.RowNumber, l.TeacherID, u.NickName AS TeacherName, l.Profit, l.Price
FROM
[List] l INNER JOIN [AllUser] u ON l.TeacherID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserTrack_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserTrack_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 游戏轨迹记录
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserTrack_GetList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
Level_1 NVARCHAR(32) NOT NULL, --1级类目
Level_2 NVARCHAR(32) NOT NULL, --2级类目
Level_3 NVARCHAR(32) NOT NULL, --3级类目
Times INT NOT NULL, --数目
Users INT NOT NULL --用户数
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
INSERT INTO @tmptable
(
Level_1, Level_2, Level_3, Times, Users
)
SELECT
t.Level_1, t.Level_2, t.Level_3, SUM(t.Times), COUNT(DISTINCT t.UserID)
FROM
(
SELECT
Level_1, Level_2, Level_3, UserID, Times
FROM
[UserTrackStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Level_1, Level_2, Level_3, UserID, Times
FROM
[UserTrackStatHistory]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
) t
GROUP BY
t.Level_1, t.Level_2, t.Level_3
--返回信息
SELECT
Level_1, CASE WHEN Level_2 = '' THEN 'HOME' ELSE Level_2 END +
CASE WHEN Level_3 != '' THEN ' --> ' ELSE '' END + Level_3 AS Item,
Times, Users
FROM
@tmptable
ORDER BY
Level_1 ASC, Item ASC, Times DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserTrack_GetStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserTrack_GetStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 游戏轨迹统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserTrack_GetStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
Level_1 NVARCHAR(32) NOT NULL, --1级类目
Level_2 NVARCHAR(32) NOT NULL, --2级类目
Level_3 NVARCHAR(32) NOT NULL, --3级类目
Times INT NOT NULL, --数目
Users INT NOT NULL --用户数
)
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
INSERT INTO @tmptable
(
Level_1, Level_2, Level_3, Times, Users
)
SELECT
t.Level_1, t.Level_2, t.Level_3, SUM(t.Times), COUNT(DISTINCT t.UserID)
FROM
(
SELECT
Level_1, Level_2, Level_3, UserID, Times
FROM
[UserTrackStat]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
UNION ALL
SELECT
Level_1, Level_2, Level_3, UserID, Times
FROM
[UserTrackStatHistory]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
) t
GROUP BY
t.Level_1, t.Level_2, t.Level_3
--返回信息
SELECT
Level_1,
CASE WHEN Level_2 = '' THEN Level_1 ELSE Level_2 END AS Level_2,
CASE
WHEN Level_3 = '' THEN CASE WHEN Level_2 = '' THEN Level_1 ELSE Level_2 END
ELSE Level_3
END AS Level_3,
Times, Users
FROM
@tmptable
WHERE
Level_1 != N'大厅' AND Level_2 NOT IN (N'关闭')
ORDER BY
Level_1 ASC, Level_2 ASC, Level_3 DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetIndexList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserVideo_GetIndexList]
-- ==============================================
-- Author: wolf
-- Create Date: 2017-01-04
-- Mendor: wolf
-- Alter Date: 2017-01-04
-- Description: 广告各指标
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserVideo_GetIndexList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
SUM(ReqTimes) AS ReqTimes, SUM(PlayTimes) AS PlayTimes,
COUNT(DISTINCT UserID) AS UserCount,
SUM(CASE WHEN Amount > 0 AND ReqTimes > 0 THEN ReqTimes ELSE 0 END) AS GoldTimes,
SUM(CASE WHEN Amount > 0 AND PlayTimes > 0 THEN PlayTimes ELSE 0 END) AS GoldGiftTimes,
COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END)) AS PlayUserCount
FROM
(
SELECT
UserID, ReqTimes, PlayTimes, Amount, DateFlag
FROM
[UserVideoStat]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
UNION ALL
SELECT
UserID, ReqTimes, PlayTimes, Amount, DateFlag
FROM
[UserVideoStatHistory]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
) t
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
ORDER BY
CONVERT(CHAR(10), DateFlag, 120) ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetPlayStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserVideo_GetPlayStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 广告播放统计(按天)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserVideo_GetPlayStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PartnerID INT --渠道ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--某个渠道
IF(@PartnerID > 0)
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
SUM(ReqTimes) AS ReqTimes, --请求次数
SUM(PlayTimes) AS PlayTimes, --播放次数
SUM(UnPlayTimes) AS FailTimes --失败次数
FROM
(
SELECT
DateFlag, ReqTimes, PlayTimes, UnPlayTimes
FROM
[UserVideoStat]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
UNION ALL
SELECT
DateFlag, ReqTimes, PlayTimes, UnPlayTimes
FROM
[UserVideoStatHistory]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
) t
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
ORDER BY
CONVERT(CHAR(10), DateFlag, 120) DESC
RETURN
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
SUM(ReqTimes) AS ReqTimes, --请求次数
SUM(PlayTimes) AS PlayTimes, --播放次数
SUM(UnPlayTimes) AS FailTimes --失败次数
FROM
(
SELECT
DateFlag, ReqTimes, PlayTimes, UnPlayTimes
FROM
[UserVideoStat]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
UNION ALL
SELECT
DateFlag, ReqTimes, PlayTimes, UnPlayTimes
FROM
[UserVideoStatHistory]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
) t
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
ORDER BY
CONVERT(CHAR(10), DateFlag, 120) DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetPlayStatByHour] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserVideo_GetPlayStatByHour]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 广告播放统计(按时段)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserVideo_GetPlayStatByHour]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PartnerID INT --渠道ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@PartnerID > 0)
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120),
SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
FROM
[VideoStatMin]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime AND PartnerID = @PartnerID
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
RETURN
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120),
SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
FROM
[VideoStatMin]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetRegionList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserVideo_GetRegionList]
-- ==============================================
-- Author: wolf
-- Create Date: 2017-01-04
-- Mendor: wolf
-- Alter Date: 2017-01-04
-- Description: 广告分布
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserVideo_GetRegionList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
VideoName, ModuleName,
SUM(ReqTimes) AS ReqTimes, --请求次数
SUM(PlayTimes) AS PlayTimes --播放次数
FROM
(
SELECT
VideoName, ModuleName, ReqTimes, PlayTimes
FROM
[UserVideoStat]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
UNION ALL
SELECT
VideoName, ModuleName, ReqTimes, PlayTimes
FROM
[UserVideoStatHistory]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
) t
GROUP BY
VideoName, ModuleName
ORDER BY
VideoName ASC, PlayTimes ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetSourceList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserVideo_GetSourceList]
-- ==============================================
-- Author: wolf
-- Create Date: 2017-01-04
-- Mendor: wolf
-- Alter Date: 2017-01-04
-- Description: 广告来源统计
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserVideo_GetSourceList]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PartnerID INT --渠道ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@PartnerID > 0)
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, VideoName, SUM(PlayTimes) AS PlayTimes
FROM
(
SELECT
DateFlag, VideoName, PlayTimes
FROM
[UserVideoStat]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
UNION ALL
SELECT
DateFlag, VideoName, PlayTimes
FROM
[UserVideoStatHistory]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1 AND PartnerID = @PartnerID
) t
GROUP BY
CONVERT(CHAR(10), DateFlag, 120), VideoName
ORDER BY
CONVERT(CHAR(10), DateFlag, 120) ASC
RETURN
END
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag, VideoName, SUM(PlayTimes) AS PlayTimes
FROM
(
SELECT
DateFlag, VideoName, PlayTimes
FROM
[UserVideoStat]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
UNION ALL
SELECT
DateFlag, VideoName, PlayTimes
FROM
[UserVideoStatHistory]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
) t
GROUP BY
CONVERT(CHAR(10), DateFlag, 120), VideoName
ORDER BY
CONVERT(CHAR(10), DateFlag, 120) ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetUserStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserVideo_GetUserStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 广告用户统计(按天)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserVideo_GetUserStat]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) AS DateFlag,
COUNT(DISTINCT (CASE WHEN ReqTimes > 0 THEN UserID ELSE 0 END)) AS ReqUsers, --请求用户数
COUNT(DISTINCT (CASE WHEN PlayTimes > 0 THEN UserID ELSE 0 END)) AS PlayUsers, --播放用户数
COUNT(DISTINCT (CASE WHEN UnPlayTimes > 0 THEN UserID ELSE 0 END)) AS FailTimes --失败用户数
FROM
(
SELECT
DateFlag, ReqTimes, PlayTimes, UnPlayTimes, UserID
FROM
[UserVideoStat]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
UNION ALL
SELECT
DateFlag, ReqTimes, PlayTimes, UnPlayTimes, UserID
FROM
[UserVideoStatHistory]
WHERE
DateFlag >= @BeginTime AND DateFlag < @EndTime + 1
) t
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
ORDER BY
CONVERT(CHAR(10), DateFlag, 120) DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserVideo_GetUserStatByHour] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserVideo_GetUserStatByHour]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 广告用户统计(按时段)
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserVideo_GetUserStatByHour]
@BeginTime DATETIME, --开始时间
@EndTime DATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
CONVERT(CHAR(10), DateFlag, 120) DateFlag,
SUM(Hour_0000) AS Hour_0000, SUM(Hour_0030) AS Hour_0030, SUM(Hour_0100) AS Hour_0100, SUM(Hour_0130) AS Hour_0130,
SUM(Hour_0200) AS Hour_0200, SUM(Hour_0230) AS Hour_0230, SUM(Hour_0300) AS Hour_0300, SUM(Hour_0330) AS Hour_0330,
SUM(Hour_0400) AS Hour_0400, SUM(Hour_0430) AS Hour_0430, SUM(Hour_0500) AS Hour_0500, SUM(Hour_0530) AS Hour_0530,
SUM(Hour_0600) AS Hour_0600, SUM(Hour_0630) AS Hour_0630, SUM(Hour_0700) AS Hour_0700, SUM(Hour_0730) AS Hour_0730,
SUM(Hour_0800) AS Hour_0800, SUM(Hour_0830) AS Hour_0830, SUM(Hour_0900) AS Hour_0900, SUM(Hour_0930) AS Hour_0930,
SUM(Hour_1000) AS Hour_1000, SUM(Hour_1030) AS Hour_1030, SUM(Hour_1100) AS Hour_1100, SUM(Hour_1130) AS Hour_1130,
SUM(Hour_1200) AS Hour_1200, SUM(Hour_1230) AS Hour_1230, SUM(Hour_1300) AS Hour_1300, SUM(Hour_1330) AS Hour_1330,
SUM(Hour_1400) AS Hour_1400, SUM(Hour_1430) AS Hour_1430, SUM(Hour_1500) AS Hour_1500, SUM(Hour_1530) AS Hour_1530,
SUM(Hour_1600) AS Hour_1600, SUM(Hour_1630) AS Hour_1630, SUM(Hour_1700) AS Hour_1700, SUM(Hour_1730) AS Hour_1730,
SUM(Hour_1800) AS Hour_1800, SUM(Hour_1830) AS Hour_1830, SUM(Hour_1900) AS Hour_1900, SUM(Hour_1930) AS Hour_1930,
SUM(Hour_2000) AS Hour_2000, SUM(Hour_2030) AS Hour_2030, SUM(Hour_2100) AS Hour_2100, SUM(Hour_2130) AS Hour_2130,
SUM(Hour_2200) AS Hour_2200, SUM(Hour_2230) AS Hour_2230, SUM(Hour_2300) AS Hour_2300, SUM(Hour_2330) AS Hour_2330
FROM
[VideoUserStatMin]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
CONVERT(CHAR(10), DateFlag, 120)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserWords_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserWords_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-09
-- Mendor: wolf
-- Alter Date: 2013-07-22
-- Description: 个性签名列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserWords_GetList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
ApplyID INT NOT NULL, --申请ID
UserID INT NOT NULL, --用户ID
UserWords NVARCHAR(256) NOT NULL, --个性签名
TransMsg NVARCHAR(256) NOT NULL, --译文
Status TINYINT NOT NULL, --状态
OpUserID INT NOT NULL, --操作用户ID
OpUserName VARCHAR(32) NOT NULL, --操作员名称
DealTime DATETIME NOT NULL, --处理时间
ApplyTime DATETIME NOT NULL --申请时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
)
SELECT
ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
FROM
[UserWordsPool]
WHERE
ApplyTime BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
)
SELECT
ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
FROM
[UserWordsPool]
WHERE
ApplyTime BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH List AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ApplyID DESC) AS RowNumber,
ApplyID, UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
FROM
@tmptable
)
--返回信息
SELECT
l.ApplyID, l.UserID, u.NickName, l.UserWords, l.TransMsg, l.Status, l.OpUserID, l.OpUserName,
CONVERT(CHAR(23), l.DealTime, 121) AS DealTime, CONVERT(CHAR(23), l.ApplyTime, 121) AS ApplyTime
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserWords_SetStatus] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserWords_SetStatus]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-09
-- Mendor: wolf
-- Alter Date: 2013-07-22
-- Description: 设置个性签名状态
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserWords_SetStatus]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@ApplyID INT, --申请ID
@Status TINYINT --状态 1=同意 其他拒绝
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @UserID INT --用户ID
DECLARE @UserWords NVARCHAR(256) --个性签名
SET @RetCode = 0
--判断是否已经处理过
IF NOT EXISTS(SELECT UserID FROM [UserWordsPool] WHERE ApplyID = @ApplyID AND Status = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--更新状态
UPDATE
[UserWordsPool]
SET
Status = @Status, OpUserID = @OpUserID, OpUserName = @OpUserName,
@UserID = UserID, @UserWords = UserWords, DealTime = GETDATE()
WHERE
ApplyID = @ApplyID
--同意
IF(@Status = 1)
BEGIN
--个性签名
UPDATE [AllUser] SET UserWords = @UserWords WHERE UserID = @UserID
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UserWords_Translate] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UserWords_Translate]
-- ==============================================
-- Author: wolf
-- Create Date: 2013-07-09
-- Mendor: wolf
-- Alter Date: 2013-07-22
-- Description: 个性签名翻译
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UserWords_Translate]
@ApplyID INT, --申请ID
@TransMsg NVARCHAR(256) --译文
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--译文
UPDATE [UserWordsPool] SET TransMsg = @TransMsg WHERE ApplyID = @ApplyID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_UTMSource_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_UTMSource_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 流量渠道源列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_UTMSource_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT Source FROM [UTMSource]
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Warning_Search] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Warning_Search]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 预警查询
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Warning_Search]
@MoneySearchTime DATETIME, --金币查询时间
@LotterySearchTime DATETIME, --话费券查询时间
@RegTime DATETIME, --注册查询时间
@TransferTime DATETIME --赠送查询时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @TotalAmount BIGINT --金币存量
DECLARE @RobotTotalAmount BIGINT --机器人金币存量
DECLARE @TotalLottery BIGINT --话费券存量
DECLARE @RobotTotalLottery BIGINT --机器人话费券存量
DECLARE @RegCount INT --注册用户数
DECLARE @TransferTimes INT --赠送次数
SET @CurrTime = GETDATE()
SET @TotalAmount = -1
SET @TotalLottery = -1
SET @RegCount = -1
SET @TransferTimes = -1
--统计金币存量
IF(@MoneySearchTime <= @CurrTime)
BEGIN
SELECT @TotalAmount = SUM(Amount + Bank) FROM [Money]
SET @TotalAmount = ISNULL(@TotalAmount, 0)
SELECT @RobotTotalAmount = SUM(m.Amount + m.Bank) FROM [Money] m INNER JOIN [MachineUser] r ON m.UserID = r.UserID
SET @RobotTotalAmount = ISNULL(@RobotTotalAmount, 0)
SET @TotalAmount = @TotalAmount - @RobotTotalAmount
END
--统计话费券存量
IF(@LotterySearchTime <= @CurrTime)
BEGIN
SELECT @TotalLottery = SUM(ItemCount) FROM [UserItem] WHERE ItemID = 620100
SET @TotalLottery = ISNULL(@TotalLottery, 0)
SELECT @RobotTotalLottery = SUM(u.ItemCount) FROM [UserItem] u INNER JOIN [MachineUser] r ON u.UserID = r.UserID WHERE ItemID = 620100
SET @RobotTotalLottery = ISNULL(@RobotTotalLottery, 0)
SET @TotalLottery = @TotalLottery - @RobotTotalLottery
END
--注册用户数
IF(@RegTime <= @CurrTime)
BEGIN
SET @RegCount = (SELECT TOP 1 COUNT(RegIP) FROM [AllUser] WHERE RegTime >= @RegTime GROUP BY RegIP ORDER BY COUNT(RegIP) DESC)
END
--赠送次数
IF(@TransferTime <= @CurrTime)
BEGIN
SELECT @TransferTimes = (SELECT TOP 1 COUNT(AcceptUserID) FROM [TransferLog] WHERE Crdate >= @TransferTime GROUP BY AcceptUserID ORDER BY COUNT(AcceptUserID) DESC)
END
--返回信息
SELECT
ISNULL(@TotalAmount, 0) AS TotalAmount, ISNULL(@TotalLottery, 0) AS TotalLottery,
ISNULL(@RegCount, 0) AS RegCount, ISNULL(@TransferTimes, 0) AS TransferTimes
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_WaterPoolStat_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_WaterPoolStat_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 水池统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_WaterPoolStat_GetList]
@BeginTime SMALLDATETIME, --开始时间
@EndTime SMALLDATETIME --截止时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
ItemName VARCHAR(32) NOT NULL, --项名称
ItemValue BIGINT NOT NULL --项值
)
--1、游戏水池前值
INSERT INTO @tmptable
(
DateFlag, ItemName, ItemValue
)
SELECT
DateFlag, RoomName + '水池1前值', StartInventoryValue
FROM
[GameInventoryTotal]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
--2、游戏水池现值
INSERT INTO @tmptable
(
DateFlag, ItemName, ItemValue
)
SELECT
DateFlag, RoomName + '水池2现值', InventoryValue
FROM
[GameInventoryTotal]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
--3、游戏库存变化
INSERT INTO @tmptable
(
DateFlag, ItemName, ItemValue
)
SELECT
DateFlag, RoomName + '水池3变化', SUM(InventoryValue - StartInventoryValue)
FROM
[GameInventoryTotal]
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
GROUP BY
DateFlag, RoomName + '水池3变化'
--返回信息
SELECT
CONVERT(VARCHAR(10), DateFlag, 120) AS DateFlag, ItemName, ItemValue
FROM
@tmptable
WHERE
DateFlag BETWEEN @BeginTime AND @EndTime
ORDER BY
DateFlag DESC, ItemName ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_WhiteList_Add] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_WhiteList_Add]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 添加白名单
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_WhiteList_Add]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@WhiteType TINYINT, --类型(0=普通用户 1=白名单用户 2=黑名单用户)
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
IF EXISTS(SELECT UserID FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = @WhiteType)
RETURN
--添加
INSERT INTO [ChipWhiteList](UserID, WhiteType, Crdate) VALUES(@UserID, @WhiteType, GETDATE())
SET @Msg = N'添加白名单成功,关联账号:@UserID=' + LTRIM(STR(@UserID)) + ',@WhiteType=' + LTRIM(STR(@WhiteType))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_WhiteList_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_WhiteList_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 删除白名单
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_WhiteList_Del]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@UserID INT, --用户ID
@WhiteType TINYINT, --类型(0=普通用户 1=白名单用户 2=黑名单用户)
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
IF NOT EXISTS(SELECT UserID FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = @WhiteType)
RETURN
--删除
DELETE FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = @WhiteType
SET @Msg = N'删除白名单成功,关联账号:@UserID=' + LTRIM(STR(@UserID)) + ',@WhiteType=' + LTRIM(STR(@WhiteType))
--添加日志
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_WhiteList_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_WhiteList_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 白名单列表
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_WhiteList_GetList]
@UserID INT, --用户ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
WhiteType TINYINT NOT NULL, --类型(0=普通用户 1=白名单用户 2=黑名单用户)
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable(UserID, WhiteType, Crdate)
SELECT UserID, WhiteType, Crdate FROM [ChipWhiteList] WHERE UserID = @UserID
END
ELSE
BEGIN
INSERT INTO @tmptable(UserID, WhiteType, Crdate)
SELECT UserID, WhiteType, Crdate FROM [ChipWhiteList]
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
UserID, WhiteType, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.UserID, u.NickName, l.WhiteType,
CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Manage_Withdraw_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Manage_Withdraw_GetLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 提现日志
-- ==============================================
CREATE PROCEDURE [dbo].[Manage_Withdraw_GetLog]
@UserID INT, --用户ID
@BeginTime DATETIME, --起始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@TotalAmount BIGINT OUTPUT --提现总额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
--表变量
DECLARE @tmptable TABLE(
OrderID VARCHAR(32) PRIMARY KEY, --订单号
TradeID VARCHAR(64) NOT NULL, --交易号
UserID INT NOT NULL, --用户ID
Amount INT NOT NULL, --金额
RealAmount INT NOT NULL, --实际扣除金额
DfTransactionId VARCHAR(32) NOT NULL, --平台代付单号,32字符以内
GetStatus TINYINT NOT NULL, --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核) 11=拒绝
--251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
DfDesc VARCHAR(256) NOT NULL, --代付状态描述
Balance INT NOT NULL, --余额
NotifyTime DATETIME NOT NULL, --通知时间
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @RecordCount = 0
--查询某个账号
IF(@UserID > 0)
BEGIN
--查询
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
)
SELECT
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
FROM
[KayaWithdraw]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
--记录数
SET @RecordCount = @@ROWCOUNT
END
--查询所有
ELSE
BEGIN
--查询
INSERT INTO @tmptable
(
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
)
SELECT
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId, GetStatus, DfDesc, Balance, NotifyTime, Crdate
FROM
[KayaWithdraw]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
--记录数
SET @RecordCount = @@ROWCOUNT
END
--统计总额
SELECT @TotalAmount = ISNULL(SUM(Amount), 0) FROM @tmptable WHERE GetStatus IN (3, 4)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
OrderID, TradeID, UserID, Amount, RealAmount, DfTransactionId,
GetStatus, DfDesc, Balance, NotifyTime, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.OrderID, l.TradeID, l.UserID, ISNULL(u.NickName, '') AS NickName, l.Amount, l.RealAmount, l.DfTransactionId,
l.GetStatus, l.DfDesc, l.Balance, CONVERT(CHAR(23), l.NotifyTime, 120) AS NotifyTime,
CONVERT(CHAR(23), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[p_bank_in] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
declare @s varchar(512)
exec p_bank_in 10479800, 9999, '', 0 , 0, @s output
print @s
*/
--存入保险柜
--返回值1:成功 其它:失败
CREATE PROCEDURE [dbo].[p_bank_in]
@userid INT,
@amount BIGINT,
@servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
@cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
@bankamount BIGINT OUTPUT, --保险柜中的金币数量
@outmsg NVARCHAR(512) OUTPUT,
@GameID INT = 0,
@EPassword VARCHAR(32) = '', --MD5密文
@IPAddress VARCHAR(16) = '', --IP地址
@RetCode INT OUTPUT --操作结果
AS
Set NoCount On
Set Xact_Abort On
BEGIN
--金币锁
declare @chvOnlineServerName NVARCHAR(64)
DECLARE @currentcashamount BIGINT
DECLARE @currentbankamount BIGINT
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @OldEPassword VARCHAR(32) --登陆密码
DECLARE @Msg VARCHAR(4096) --操作描述
DECLARE @IsRobot TINYINT --是否机器人
SET @currentbankamount = 0
SET @CurrTime = GETDATE()
SET @RetCode = 0
SELECT
@OldEPassword = EPassword, @IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
FROM
[AllUser]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
set @outmsg = N'存入保险柜失败:账号信息不存在'
return
END
/*
IF(LEN(@ServerName) <= 0)
BEGIN
--校验登陆密码
IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
BEGIN
SET @Msg = '存入保险柜,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
--添加日志
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
set @outmsg = '存入保险柜失败'
return
END
END
*/
select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
set @bankamount = 0
set @cashamount = 0
if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
begin
set @outmsg = N'游戏中不能存入金币,只能取出'
return
end
if @amount <= 0
begin
set @outmsg = N'存入保险柜失败:请输入正确的数量'
return
end
--检查存入后金额是否超过INT限制
SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Money] WHERE userid = @userid
--非金币房间需要更新 amount
if @servername = ''
update [money] set bank = bank + @amount, amount = amount - @amount where userid = @userid and amount >= @amount
else
update [money] set bank = bank + @amount where userid = @userid
if @@rowcount = 1 --成功
begin
select @cashamount = amount, @bankamount = bank from [money] where userid = @userid
INSERT INTO [BankLog]
(
userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
)
VALUES
(
@userid, @userid, @currentbankamount, @amount, @bankamount, N'存入保险柜', @CurrTime, @IPAddress
)
--机器人
IF(@IsRobot = 1)
BEGIN
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
@currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
@currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
END
ELSE
BEGIN
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, -@amount,
@currentcashamount - @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, @amount,
@currentbankamount + @amount, 0, @IPAddress, N'存入保险柜,服务器=' + @ServerName, 0, @CurrTime
END
set @outmsg = N'成功'
SET @RetCode = 1
return
end
else
begin
set @outmsg = N'存入保险柜失败:您身上金币不足'
return
end
END
GO
/****** Object: StoredProcedure [dbo].[p_bank_out] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
declare @s varchar(512)
exec p_bank_out 22, 10000, '123', '', 0 , 0 , @s output
print @s
*/
--从保险柜取出
--返回值1:成功 其它:失败
CREATE PROCEDURE [dbo].[p_bank_out]
@userid INT,
@amount BIGINT,
@safeboxpwd VARCHAR(32), --保险柜密码 (加密前的)
@servername NVARCHAR(64), --金币房间传这个进来,非金币房间或WEB传''
@cashamount BIGINT OUTPUT, --数据库中金币数量,只有成功才会返回
@bankamount BIGINT OUTPUT, --保险柜中的金币数量
@outmsg VARCHAR(512) OUTPUT,
@EPassword VARCHAR(32) = '', --MD5密文
@IPAddress VARCHAR(16) = '', --IP地址
@RetCode INT OUTPUT, --操作结果
@GameID INT = 0
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN
--金币锁
DECLARE @chvOnlineServerName NVARCHAR(64)
DECLARE @max_amount BIGINT
DECLARE @currentcashamount BIGINT
DECLARE @currentbankamount BIGINT
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @OldEPassword VARCHAR(32) --登陆密码
DECLARE @OldEsafeboxpwd VARCHAR(32) --保险柜密码
DECLARE @Msg VARCHAR(4096) --操作描述
DECLARE @IsRobot TINYINT
SET @max_amount = 2000000000000000
SET @currentcashamount = 0
SET @CurrTime = GETDATE()
SET @RetCode = 0
--获取当前登陆密码、保险柜密码
SELECT
@OldEPassword = EPassword, --@OldEsafeboxPwd = Esafeboxpwd,
@IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
FROM
[AllUser]
WHERE
UserID = @userid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
set @outmsg = '从保险柜取出失败:账号信息不存在'
return 0
END
/*
--Web 调用
IF(LEN(@ServerName) <= 0)
BEGIN
--校验登陆密码
IF(@OldEPassword IS NULL OR @OldEPassword != @EPassword)
BEGIN
SET @Msg = '保险柜取出,密码校验失败,关联信息,@UserID=' + LTRIM(STR(@userid)) + ',@amount=' + CAST(@amount AS VARCHAR(32)) + ',@EPassword=' + @EPassword
--添加日志
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = '系统', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
SET @outmsg = '从保险柜取出失败'
RETURN -1
END
END
*/
declare @rc int --其它存储过程的返回值
select @chvOnlineServerName = [ServerName] from [CasinoOnline] where [UserID] = @userid
set @bankamount = 0
set @cashamount = 0
if @chvOnlineServerName != @servername --没有锁时不能触发这个条件
begin
SET @RetCode = 12
set @outmsg = '从保险柜取出失败:您已在服务器[' + @chvOnlineServerName + '],请登陆此服务器,或通过客服中心寻求帮助'
return 0
end
--不判断是否会员
if @amount <= 0
begin
SET @RetCode = 13
set @outmsg = '从保险柜取出失败:请输入正确的数量'
return 0
end
--校验保险柜密码
--IF(@OldEsafeboxpwd != dbo.fn_md5(@safeboxpwd))
--BEGIN
-- set @outmsg = '从保险柜取出失败:保险柜密码不正确!'
-- return 0
--END
--检查取出后金额是否超过INT限制
SELECT @currentcashamount = amount, @currentbankamount = bank FROM [Money] WHERE userid = @userid
IF @amount + @currentcashamount > @max_amount
BEGIN
SET @RetCode = 14
set @outmsg = '从保险柜取出失败:取出数量过大'
return 0
END
update
[money]
set
bank = bank - @amount,
amount = amount + case @servername when '' then @amount else 0 end
where
userid = @userid and bank >= @amount
if @@rowcount = 1 --成功
begin
set @outmsg = '成功'
select @cashamount = amount, @bankamount = bank from [money] where userid = @userid
INSERT INTO [BankLog]
(
userid, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
)
VALUES
(
@userid, @userid, @currentbankamount, -@amount, @bankamount, N'保险柜取出', @CurrTime, @IPAddress
)
--机器人
IF(@IsRobot = 1)
BEGIN
INSERT INTO [RobotMoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
@currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
@currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
END
ELSE
BEGIN
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [LogType], [Crdate]
)
SELECT
N'钱包', @GameID, 'CASH', @userid, @currentcashamount, @amount,
@currentcashamount + @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
UNION ALL
SELECT
N'钱包', @GameID, 'BANK', @userid, @currentbankamount, -@amount,
@currentbankamount - @amount, 0, @IPAddress, N'保险柜取出,服务器=' + @ServerName, 0, @CurrTime
END
SET @RetCode = 1
return 1
end
else
begin
SET @RetCode = 15
set @outmsg ='从保险柜取出失败:您保险柜金额不足'
return 0
end
END
GO
/****** Object: StoredProcedure [dbo].[p_bank_query] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--接口:查询保险柜数量
CREATE PROCEDURE [dbo].[p_bank_query]
@userid INT,
@bankamount BIGINT OUTPUT
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN
SET @bankamount = 0
SELECT @bankamount = bank FROM [Money] WHERE userid = @userid
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[p_if_getmoney] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--新接口2011:简单获得金币数
CREATE PROCEDURE [dbo].[p_if_getmoney]
@userid INT,
@moneyamount BIGINT OUTPUT,
@Bank BIGINT OUTPUT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SET @moneyamount = 0
SET @Bank = 0
--获取金币、保险柜
SELECT @moneyamount = Amount, @Bank = Bank FROM [Money] WHERE UserID = @userid
RETURN 1
END
GO
/****** Object: StoredProcedure [dbo].[Pay_coda_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_coda_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: coda支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_coda_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'coda支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [codaOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_coda_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_coda_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: coda支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_coda_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[codaOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'coda支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'coda支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'coda支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'coda支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [codaPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'coda支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [codaOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'coda支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [codaPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_CroPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Web_CroPay_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: Cropay 充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_CroPay_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Cropay 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--获取货币类型
IF EXISTS(SELECT ProductID FROM [DiamondMall] WHERE ProductID = @ProductID)
BEGIN
SET @RetCode = 1
END
--月卡
ELSE IF EXISTS(SELECT ProductID FROM [MonthlyCard] WHERE ProductID = @ProductID)
BEGIN
SET @RetCode = 1
END
--商品无效
IF(@RetCode != 1)
BEGIN
--添加日志
SET @Msg = N'Cropay 生成订单异常,产品信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@OrderID=' + @OrderID + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--添加订单信息
INSERT INTO [CroOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_CroPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_CroPay_OrderReq]
-- @OrderID = 10001,
-- @TradeID = '',
-- @Price = 123,
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Cropay--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_CroPay_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[CroOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'Cropay 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'Cropay 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'Cropay 充值,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'Cropay 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [CroPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'Cropay 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--校验产品信息
EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @OrderID, @ProductID = @ProductID, @PayName = 'Cropay ',
@IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice <= 0 OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'Cropay 充值,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [CroOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Cropay 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [CroPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @Price, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @Price, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Crush_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Crush_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: Crush支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Crush_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Crush支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [CrushOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Crush_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Crush_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Crush支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Crush_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[CrushOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'Crush支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'Crush支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'Crush支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'Crush支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [CrushPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'Crush支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [CrushOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Crush支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [CrushPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_CrushWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_CrushWithdraw_Notify]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Crush支付--提现通知
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_CrushWithdraw_Notify]
@OrderID VARCHAR(32), --订单号
@DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
@Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
@DfDesc VARCHAR(256), --代付状态描述
@Balance INT --余额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @UserID INT --用户ID
DECLARE @Amount INT --提现金额
DECLARE @RealAmount INT --实际金额(含费用)
DECLARE @Surcharge INT --手续费
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @RetCode TINYINT --操作结果
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
--11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
SET @RetCode = 0
SET @CurrTime = GETDATE()
--更新状态
UPDATE
[CrushWithdraw]
SET
@UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
GetStatus = CASE
WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
ELSE 255 --未知
END,
DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
WHERE
OrderID = @OrderID
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'Pay_CrushWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--失败,直接返回
IF(@Status IS NULL OR @Status NOT IN(1, 2))
BEGIN
--返回订单信息
SET @RetCode = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--不是成功状态
IF(@Status != 1)
BEGIN
SET @RetCode = 11
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
SET @RetCode = 1
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_CrushWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_CrushWithdraw_Req]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Crush支付--提现申请
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_CrushWithdraw_Req]
@UserID int, --用户ID
@Amount INT, --提现金额
@RealName VARCHAR(128), --真实姓名
@BankCard VARCHAR(32), --银行卡
@BankName VARCHAR(128), --银行名称
@Mobile VARCHAR(32), --电话
@EMail VARCHAR(64), --email
@Address VARCHAR(256), --地址
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
DECLARE @OrderID VARCHAR(32) --订单号
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
DECLARE @RealAmount INT --实际提现的金额(扣除费率)
DECLARE @Tel VARCHAR(32) --手机号
DECLARE @Surcharge INT --手续费
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
SET @CurrTime = GETDATE()
SET @OrderID = ''
SET @GetStatus = 0
SET @Surcharge = 0
SET @RealAmount = 0
SET @Tel = ''
IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取后台订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
--组装成有序的订单
SET @OrderID = 'W' + RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
--实际提取金额=提取金额-手续费
SET @RealAmount = @Amount - @Surcharge
--生成订单
INSERT INTO [CrushWithdraw]
(
OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
RealName, BankCard, BankName, Mobile, EMail, Address
)
VALUES
(
@OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
@RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
)
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Dingpei_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Dingpei_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: Dingpei支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Dingpei_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Dingpei支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [DingpeiOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Dingpei_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Dingpei_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Dingpei支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Dingpei_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[DingpeiOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'Dingpei支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'Dingpei支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'Dingpei支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'Dingpei支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [DingpeiPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'Dingpei支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [DingpeiOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Dingpei支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [DingpeiPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_DingpeiWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_DingpeiWithdraw_Notify]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Dingpei支付--提现通知
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_DingpeiWithdraw_Notify]
@OrderID VARCHAR(32), --订单号
@DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
@Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
@DfDesc VARCHAR(256), --代付状态描述
@Balance INT --余额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @UserID INT --用户ID
DECLARE @Amount INT --提现金额
DECLARE @RealAmount INT --实际金额(含费用)
DECLARE @Surcharge INT --手续费
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @RetCode TINYINT --操作结果
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
--11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
SET @RetCode = 0
SET @CurrTime = GETDATE()
--更新状态
UPDATE
[DingpeiWithdraw]
SET
@UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
GetStatus = CASE
WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
ELSE 255 --未知
END,
DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
WHERE
OrderID = @OrderID
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'Pay_DingpeiWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--失败,直接返回
IF(@Status IS NULL OR @Status NOT IN(1, 2))
BEGIN
--返回订单信息
SET @RetCode = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--不是成功状态
IF(@Status != 1)
BEGIN
SET @RetCode = 11
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
SET @RetCode = 1
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_DingpeiWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_DingpeiWithdraw_Req]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Dingpei支付--提现申请
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_DingpeiWithdraw_Req]
@UserID int, --用户ID
@Amount INT, --提现金额
@RealName VARCHAR(128), --真实姓名
@BankCard VARCHAR(32), --银行卡
@BankName VARCHAR(128), --银行名称
@Mobile VARCHAR(32), --电话
@EMail VARCHAR(64), --email
@Address VARCHAR(256), --地址
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
DECLARE @OrderID VARCHAR(32) --订单号
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
DECLARE @RealAmount INT --实际提现的金额(扣除费率)
DECLARE @Tel VARCHAR(32) --手机号
DECLARE @Surcharge INT --手续费
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
SET @CurrTime = GETDATE()
SET @OrderID = ''
SET @GetStatus = 0
SET @Surcharge = 0
SET @RealAmount = 0
SET @Tel = ''
IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取后台订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
--组装成有序的订单
SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
--实际提取金额=提取金额-手续费
SET @RealAmount = @Amount - @Surcharge
--生成订单
INSERT INTO [DingpeiWithdraw]
(
OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
RealName, BankCard, BankName, Mobile, EMail, Address
)
VALUES
(
@OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
@RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
)
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_fawry_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_fawry_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: fawry支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_fawry_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'fawry支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [fawryOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_fawry_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_fawry_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: fawry支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_fawry_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[fawryOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'fawry支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'fawry支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'fawry支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'fawry支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [fawryPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'fawry支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [fawryOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'fawry支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [fawryPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Flash_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Flash_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: Flash支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Flash_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Flash支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [FlashOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Flash_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Flash_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Flash支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Flash_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[FlashOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'Flash支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'Flash支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'Flash支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [FlashPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'Flash支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [FlashOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Flash支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [FlashPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_FlashWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_FlashWithdraw_Notify]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Flash支付--提现通知
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_FlashWithdraw_Notify]
@OrderID VARCHAR(32), --订单号
@DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
@Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
@DfDesc VARCHAR(256), --代付状态描述
@Balance INT --余额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @UserID INT --用户ID
DECLARE @Amount INT --提现金额
DECLARE @RealAmount INT --实际金额(含费用)
DECLARE @Surcharge INT --手续费
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @RetCode TINYINT --操作结果
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
--11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
SET @RetCode = 0
SET @CurrTime = GETDATE()
--更新状态
UPDATE
[FlashWithdraw]
SET
@UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
GetStatus = CASE
WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
ELSE 255 --未知
END,
DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
WHERE
OrderID = @OrderID
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'Pay_FlashWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--失败,直接返回
IF(@Status IS NULL OR @Status NOT IN(1, 2))
BEGIN
--返回订单信息
SET @RetCode = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--不是成功状态
IF(@Status != 1)
BEGIN
SET @RetCode = 11
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
SET @RetCode = 1
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_FlashWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_FlashWithdraw_Req]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Flash支付--提现申请
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_FlashWithdraw_Req]
@UserID int, --用户ID
@Amount INT, --提现金额
@RealName VARCHAR(128), --真实姓名
@BankCard VARCHAR(32), --银行卡
@BankName VARCHAR(128), --银行名称
@Mobile VARCHAR(32), --电话
@EMail VARCHAR(64), --email
@Address VARCHAR(256), --地址
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
DECLARE @OrderID VARCHAR(32) --订单号
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
DECLARE @RealAmount INT --实际提现的金额(扣除费率)
DECLARE @Tel VARCHAR(32) --手机号
DECLARE @Surcharge INT --手续费
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
SET @CurrTime = GETDATE()
SET @OrderID = ''
SET @GetStatus = 0
SET @Surcharge = 0
SET @RealAmount = 0
SET @Tel = ''
IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取后台订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
--组装成有序的订单
SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
--实际提取金额=提取金额-手续费
SET @RealAmount = @Amount - @Surcharge
--生成订单
INSERT INTO [FlashWithdraw]
(
OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
RealName, BankCard, BankName, Mobile, EMail, Address
)
VALUES
(
@OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
@RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
)
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Google_AddLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Google_AddLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: google 添加日志
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Google_AddLog]
@UserID INT, --用户ID
@ProductID VARCHAR(32), --产品ID
@Price DECIMAL(18, 2), --价格
@PartnerID INT, --渠道ID
@Token VARCHAR(256), --token
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [GoogleLog]
(
UserID, ProductID, Price, PartnerID, Token, IPAddress, Crdate
)
VALUES
(
@UserID, @ProductID, @Price, @PartnerID, @Token, @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Google_AddSuccessLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Google_AddSuccessLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: google 添加成功日志
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Google_AddSuccessLog]
@UserID INT, --用户ID
@ProductID VARCHAR(32), --产品ID
@Price DECIMAL(18, 2), --价格
@PartnerID INT, --渠道ID
@Token VARCHAR(256), --token
@ResponseIAP VARCHAR(1024), --响应信息
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --RMB
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @Msg NVARCHAR(4000) --消息
SET @RetCode = 0
SET @CurrTime = GETDATE()
--校验产品信息
EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @Token, @ProductID = @ProductID, @PayName = 'Google',
@IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
--判断是否有产品
IF(@PayPrice IS NULL OR @PayPrice <= 0)
BEGIN
--添加日志
SET @Msg = N'Google充值,价格非法,关联的信息:@Token=' + @Token + ',@UserID=' + LTRIM(STR(@UserID)) +
',@ProductID=' + @ProductID + ',@PartnerID=' + LTRIM(STR(@PartnerID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 12
RETURN
END
--因为收据并非一次校验有效,所以如果成功记录表中已经包含相同的 token
--则认为无效,插入一条记录至校验失败表
IF EXISTS(SELECT Token FROM [GoogleSuccessLog] WHERE Token = @Token)
BEGIN
--添加日志
SET @Msg = N'Google充值,重复处理,关联的信息:@Token=' + @Token + ',@UserID=' + LTRIM(STR(@UserID)) +
',@ProductID=' + @ProductID + ',@PartnerID=' + LTRIM(STR(@PartnerID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加校验成功记录
INSERT INTO [GoogleSuccessLog]
(
Token, UserID, ProductID, Price, PartnerID, ResponseIAP, IPAddress, Crdate
)
VALUES
(
@Token, @UserID, @ProductID, @PayPrice, @PartnerID, @ResponseIAP, @IPAddress, GETDATE()
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_HuaweiPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_HuaweiPay_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 华为支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_HuaweiPay_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'华为支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [huaweiOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_HuaweiPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_HuaweiPay_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 华为支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_HuaweiPay_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[huaweiOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'华为支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'华为支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'华为支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'华为支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [huaweiPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'华为支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [huaweiOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'华为支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [huaweiPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Kaya_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Kaya_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: Kaya支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Kaya_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Kaya支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [KayaOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Kaya_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Kaya_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Kaya支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Kaya_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[KayaOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'Kaya支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'Kaya支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'Kaya支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [KayaPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'Kaya支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [KayaOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'Kaya支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [KayaPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_KayaWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_KayaWithdraw_Notify]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Kaya支付--提现通知
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_KayaWithdraw_Notify]
@OrderID VARCHAR(32), --订单号
@DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
@Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
@DfDesc VARCHAR(256), --代付状态描述
@Balance INT --余额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @UserID INT --用户ID
DECLARE @Amount INT --提现金额
DECLARE @RealAmount INT --实际金额(含费用)
DECLARE @Surcharge INT --手续费
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @RetCode TINYINT --操作结果
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
--11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
SET @RetCode = 0
SET @CurrTime = GETDATE()
--更新状态
UPDATE
[KayaWithdraw]
SET
@UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
GetStatus = CASE
WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
ELSE 255 --未知
END,
DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
WHERE
OrderID = @OrderID
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'Pay_KayaWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--失败,直接返回
IF(@Status IS NULL OR @Status NOT IN(1, 2))
BEGIN
--返回订单信息
SET @RetCode = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--不是成功状态
IF(@Status != 1)
BEGIN
SET @RetCode = 11
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
SET @RetCode = 1
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_KayaWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_KayaWithdraw_Req]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Kaya支付--提现申请
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_KayaWithdraw_Req]
@UserID int, --用户ID
@Amount INT, --提现金额
@RealName VARCHAR(128), --真实姓名
@BankCard VARCHAR(32), --银行卡
@BankName VARCHAR(128), --银行名称
@Mobile VARCHAR(32), --电话
@EMail VARCHAR(64), --email
@Address VARCHAR(256), --地址
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
DECLARE @OrderID VARCHAR(32) --订单号
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
DECLARE @RealAmount INT --实际提现的金额(扣除费率)
DECLARE @Tel VARCHAR(32) --手机号
DECLARE @Surcharge INT --手续费
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
SET @CurrTime = GETDATE()
SET @OrderID = ''
SET @GetStatus = 0
SET @Surcharge = 0
SET @RealAmount = 0
SET @Tel = ''
IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取后台订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
--组装成有序的订单
SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
--实际提取金额=提取金额-手续费
SET @RealAmount = @Amount - @Surcharge
--生成订单
INSERT INTO [KayaWithdraw]
(
OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
RealName, BankCard, BankName, Mobile, EMail, Address
)
VALUES
(
@OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
@RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
)
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_LaPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_LaPay_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: La支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_LaPay_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'La支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [LaOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_LaPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_LaPay_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: La支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_LaPay_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[LaOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'La支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'La支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'La支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'La支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [LaPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'La支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [LaOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'La支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [LaPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Manual_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Manual_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 手动充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Manual_OrderReq]
@OpUserID INT, --操作员ID
@OpUserName VARCHAR(32), --操作员名称
@OrderID VARCHAR(32), --订单号
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32), --产品ID
@Price DECIMAL(18, 2), --价格
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @Msg NVARCHAR(4000) --操作描述
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--订单
IF(LEN(@OrderID) <= 0)
BEGIN
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'手动生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
END
--已存在
IF EXISTS(SELECT OrderID FROM [ManualPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'手动充值,重复处理,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--校验产品信息
EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @OrderID, @ProductID = @ProductID, @PayName = 'Manual',
@IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
--判断是否有产品
IF(@PayPrice IS NULL OR @PayPrice <= 0 OR @Price != @PayPrice)
BEGIN
--添加日志
SET @Msg = N'手动充值,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 12
RETURN
END
--添加订单记录
INSERT INTO [ManualPay]
(
OrderID, UserID, ProductID, Price, OpUserID, OpUserName, Crdate
)
VALUES
(
@OrderID, @UserID, @ProductID, @Price, @OpUserID, @OpUserName, GETDATE()
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @Price, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_OPay_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_OPay_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: OPay支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_OPay_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'OPay支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [OOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_OPay_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_OPay_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: OPay支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_OPay_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[OOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'OPay支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'OPay支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'OPay支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'OPay支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [OPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'OPay支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [OOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'OPay支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [OPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_PayerMax_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_PayerMax_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: PayerMax支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_PayerMax_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'PayerMax支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [PayerMaxOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_PayerMax_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_PayerMax_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: PayerMax支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_PayerMax_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[PayerMaxOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'PayerMax支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'PayerMax支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'PayerMax支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'PayerMax支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [PayerMaxPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'PayerMax支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [PayerMaxOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'PayerMax支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [PayerMaxPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_PayerMaxWithdraw_Notify] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_PayerMaxWithdraw_Notify]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: PayerMax支付--提现通知
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_PayerMaxWithdraw_Notify]
@OrderID VARCHAR(32), --订单号
@DfTransactionId VARCHAR(32), --平台代付单号,32字符以内
@Status TINYINT, --状态 0=Failure 1=Success 2=Pending(Success)
@DfDesc VARCHAR(256), --代付状态描述
@Balance INT --余额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @UserID INT --用户ID
DECLARE @Amount INT --提现金额
DECLARE @RealAmount INT --实际金额(含费用)
DECLARE @Surcharge INT --手续费
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @RetCode TINYINT --操作结果
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提现成功(无审核) 13=Pending(审核) 14=Pending(无审核)
--11=拒绝 251=提现失败(无审核) 252=提现失败(审核) 255=提现失败)
SET @RetCode = 0
SET @CurrTime = GETDATE()
--更新状态
UPDATE
[PayerMaxWithdraw]
SET
@UserID = UserID, @Amount = Amount, @RealAmount = RealAmount, @GetStatus = GetStatus, @Surcharge = Surcharge,
GetStatus = CASE
WHEN @Status = 1 AND GetStatus = 0 THEN 4 -- 0=下单(无审核) --> 4=提成成功(无审核)
WHEN @Status = 2 AND GetStatus = 0 THEN 14 -- 0=下单(无审核) --> 14=pending(无审核)
WHEN @Status = 1 AND GetStatus = 2 THEN 3 -- 2=已审核 --> 3=提现成功(审核)
WHEN @Status = 2 AND GetStatus = 2 THEN 13 -- 2=已审核 --> 13=pending(审核)
WHEN GetStatus = 0 THEN 251 -- 0=下单(无审核) --> 251=提成失败(无审核)
WHEN GetStatus = 2 THEN 252 -- 2=已审核 --> 3=提现失败(审核)
ELSE 255 --未知
END,
DfTransactionId = @DfTransactionId, DfDesc = @DfDesc, Balance = @Balance, NotifyTime = @CurrTime
WHERE
OrderID = @OrderID
IF(@@ROWCOUNT = 0)
BEGIN
SET @Msg = N'Pay_PayerMaxWithdraw_Notify, @OrderID=' + @OrderID + ',@DfTransactionId=' + @DfTransactionId +
',@Status=' + LTRIM(STR(@Status)) + ',@DfDesc=' + @DfDesc
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = '127.0.0.1', @Msg = @Msg, @Type = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--失败,直接返回
IF(@Status IS NULL OR @Status NOT IN(1, 2))
BEGIN
--返回订单信息
SET @RetCode = 2
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
--不是成功状态
IF(@Status != 1)
BEGIN
SET @RetCode = 11
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
SET @RetCode = 1
--返回订单信息
SELECT @RetCode AS RetCode, @UserID AS UserID, @Amount AS Amount, @RealAmount AS RealAmount, @Surcharge AS Surcharge
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_PayerMaxWithdraw_Req] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_PayerMaxWithdraw_Req]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: PayerMax支付--提现申请
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_PayerMaxWithdraw_Req]
@UserID int, --用户ID
@Amount INT, --提现金额
@RealName VARCHAR(128), --真实姓名
@BankCard VARCHAR(32), --银行卡
@BankName VARCHAR(128), --银行名称
@Mobile VARCHAR(32), --电话
@EMail VARCHAR(64), --email
@Address VARCHAR(256), --地址
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @RetCode TINYINT --操作结果 1=下单成功 11=参数无效 12=提现金额太小 13=提现次数超过限制 14=提现金额超过限制 15=扣减金币失败
DECLARE @OrderID VARCHAR(32) --订单号
DECLARE @GetStatus TINYINT --状态 (0=下单(无审核) 1=待审核 2=已审核 3=提现成功(审核) 4=提成成功(无审核) 11=拒绝)
DECLARE @RealAmount INT --实际提现的金额(扣除费率)
DECLARE @Tel VARCHAR(32) --手机号
DECLARE @Surcharge INT --手续费
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --后台订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
SET @CurrTime = GETDATE()
SET @OrderID = ''
SET @GetStatus = 0
SET @Surcharge = 0
SET @RealAmount = 0
SET @Tel = ''
IF(@UserID IS NULL OR @UserID <= 0 OR @Amount IS NULL OR @Amount <= 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取后台订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
--组装成有序的订单
SET @OrderID = RIGHT(CONVERT(CHAR(6), GETDATE(), 12), 5) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 11)
--实际提取金额=提取金额-手续费
SET @RealAmount = @Amount - @Surcharge
--生成订单
INSERT INTO [PayerMaxWithdraw]
(
OrderID, TradeID, UserID, Amount, RealAmount, Surcharge, DfTransactionId, GetStatus, DfDesc, NotifyTime, Crdate, Balance,
RealName, BankCard, BankName, Mobile, EMail, Address
)
VALUES
(
@OrderID, '', @UserID, @Amount, @RealAmount, @Surcharge, '', @GetStatus, '', @CurrTime, @CurrTime, 0,
@RealName, @BankCard, @BankName, @Mobile, @EMail, @Address
)
--操作结果
SET @RetCode = 1
SELECT @RetCode AS RetCode, @OrderID AS OrderID, @GetStatus AS GetStatus, @RealAmount AS RealAmount, @Tel AS Tel
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_paymob_GenOrder] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_paymob_GenOrder]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: paymob支付充值--生成订单
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_paymob_GenOrder]
@UserID INT, --用户ID
@Price DECIMAL(18, 2), --价格
@ProductID VARCHAR(32), --业务类型
@PartnerID INT, --渠道ID
@IPAddress VARCHAR(16), --IP地址
@OrderID VARCHAR(32) OUTPUT --订单号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @RetCode TINYINT --操作结果
--表变量
DECLARE @tmptable TABLE(
OrderID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), --订单ID
UserID INT NOT NULL --用户ID
)
SET @RetCode = 0
--生成数据
INSERT INTO @tmptable(UserID) VALUES(@UserID)
--获取订单ID
SELECT @OrderID = REPLACE(OrderID, '-', '') FROM @tmptable WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'paymob支付 生成订单异常,订单信息不存在,关联的信息:@UserID=' + LTRIM(STR(@UserID)) + ',@ProductID=' + @ProductID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @OrderID = ''
RETURN
END
--组装成有序的订单
SET @OrderID = CONVERT(CHAR(6), GETDATE(), 12) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') + SUBSTRING(@OrderID, 1, 20)
--添加订单信息
INSERT INTO [paymobOrder]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, GetStatus, PayInfo, IPAddress, Crdate
)
VALUES
(
@OrderID, '', @UserID, @ProductID, @Price, @PartnerID, 0, '', @IPAddress, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_paymob_OrderReq] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_paymob_OrderReq]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: paymob支付--充值
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_paymob_OrderReq]
@OrderID VARCHAR(32), --订单号
@TradeID VARCHAR(64), --业务流水号
@Price DECIMAL(18, 2), --价格
@RetCode TINYINT OUTPUT, --操作结果
@UserID INT OUTPUT, --用户ID
@ProductID VARCHAR(32) OUTPUT --产品ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --价格
DECLARE @GetStatus TINYINT --获取状态
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @Msg NVARCHAR(4000) --操作描述
DECLARE @PartnerID INT --渠道ID
DECLARE @IPAddress VARCHAR(16) --IP地址
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @IPAddress = ''
SET @ProductID = ''
SET @UserID = 0
SET @RetCode = 0
--获取订单信息
SELECT
@UserID = UserID, @PayPrice = Price, @GetStatus = GetStatus, @ProductID = ProductID,
@IPAddress = IPAddress, @PartnerID = PartnerID
FROM
[paymobOrder]
WHERE
OrderID = @OrderID
--判断订单是否有效
IF(@GetStatus IS NULL)
BEGIN
--添加日志
SET @Msg = N'paymob支付 充值,非法参数,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否有效
IF(@GetStatus != 0)
BEGIN
--添加日志
SET @Msg = N'paymob支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
/*
--判断价格是否正确
IF(@PayPrice IS NULL OR @PayPrice != @Price)
BEGIN
--添加日志
SET @Msg = N'paymob支付,价格非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
*/
--判断业务类型是否合法
IF(@ProductID IS NULL OR LEN(@ProductID) <= 0)
BEGIN
--添加日志
SET @Msg = N'paymob支付 充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--判断订单是否存在,以免重复加数据
IF EXISTS(SELECT OrderID FROM [paymobPay] WHERE OrderID = @OrderID)
BEGIN
--添加日志
SET @Msg = N'paymob支付 充值,订单重复提交,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--先设置订单状态
UPDATE [paymobOrder] SET GetStatus = 1, TradeID = @TradeID WHERE OrderID = @OrderID AND GetStatus = 0
IF(@@ROWCOUNT = 0)
BEGIN
--添加日志
SET @Msg = N'paymob支付 充值,订单重复提交(再次确认),关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
SET @RetCode = 11
RETURN
END
--添加订单记录
INSERT INTO [paymobPay]
(
OrderID, TradeID, UserID, ProductID, Price, PartnerID, IPAddress, Crdate
)
VALUES
(
@OrderID, @TradeID, @UserID, @ProductID, @PayPrice, @PartnerID, @IPAddress, @CurrTime
)
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
--成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Product_Check] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Product_Check]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 检查产品信息
-- ==============================================
CREATE PROCEDURE [dbo].[Pay_Product_Check]
@UserID INT, --用户ID
@OrderID VARCHAR(256), --订单号
@ProductID VARCHAR(32), --产品ID
@PayName VARCHAR(32), --支付名称
@IPAddress VARCHAR(16), --IP地址
@Price DECIMAL(18, 2) OUTPUT --价格
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg NVARCHAR(4000) --操作描述
SET @Price = 0
--1=获取充值金豆数量
SELECT @Price = Price FROM [DiamondMall] WHERE ProductID = @ProductID
IF(@@ROWCOUNT > 0)
RETURN
--2=普通礼包
SELECT @Price = Price FROM [GiftPack] WHERE ProductID = @ProductID
IF(@@ROWCOUNT > 0)
RETURN
--3=成长礼包
SELECT @Price = Price FROM [GrowthPack] WHERE ProductID = @ProductID
IF(@@ROWCOUNT > 0)
RETURN
--4=月卡
SELECT @Price = Price FROM [MonthlyCard] WHERE ProductID = @ProductID
IF(@@ROWCOUNT > 0)
RETURN
--5=vip特惠
SELECT @Price = Price FROM [VipDeal] WHERE ProductID = @ProductID
IF(@@ROWCOUNT > 0)
RETURN
--产品不存在
--添加日志
SET @Msg = @PayName + N'充值,产品非法,关联的信息:@OrderID=' + @OrderID + ',@UserID=' + LTRIM(STR(@UserID))
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @Msg = @Msg, @IPAddress = @IPAddress, @Type = 2
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Verify_AddErrorLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Verify_AddErrorLog]
-- @UserID = 0,
-- @ErrorMsg = ''
-- =============================================
-- Author: wolf
-- Create Date: 2013-10-11
-- Mendor: wolf
-- Alter Date: 2015-09-16
-- Description: 添加校验错误日志
-- ============================================
CREATE PROCEDURE [dbo].[Pay_Verify_AddErrorLog]
@UserID INT, --用户ID
@ErrorMsg VARCHAR(1024), --错误消息
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加校验错误日志
INSERT INTO [VerifyErrorLog]
(
UserID, ErrorMsg, Crdate, IPAddress
)
VALUES
(
@UserID, @ErrorMsg, GETDATE(), @IPAddress
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Verify_AddLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [Pay_Verify_AddLog]
-- @UserID = 0,
-- @ReceiptBuffer = ''
-- =============================================
-- Author: wolf
-- Create Date: 2013-10-11
-- Mendor: wolf
-- Alter Date: 2015-09-16
-- Description: 添加校验记录
-- =============================================
CREATE PROCEDURE [dbo].[Pay_Verify_AddLog]
@UserID INT, --用户ID
@ReceiptBuffer VARCHAR(4096), --接收的收据
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加校验日志
INSERT INTO [VerifyLog]
(
UserID, ReceiptBuffer, Crdate, IPAddress
)
VALUES
(
@UserID, @ReceiptBuffer, GETDATE(), @IPAddress
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[Pay_Verify_AddSuccessLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [Pay_Verify_AddSuccessLog]
-- @UserID = 0,
-- @TransactionID = '',
-- @ProductID = '',
-- @Memo = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- =============================================
-- Author: wolf
-- Create Date: 2015-05-13
-- Mendor: wolf
-- Alter Date: 2015-09-16
-- Description: 添加校验成功日志
-- =============================================
CREATE PROCEDURE [dbo].[Pay_Verify_AddSuccessLog]
@UserID INT, --用户ID
@TransactionID VARCHAR(64), --事务ID
@ProductID VARCHAR(64), --产品ID
@Memo VARCHAR(1024), --结果字符串
@IPAddress VARCHAR(16), --IP地址
@IsSandBox TINYINT, --是否沙箱
@RetCode TINYINT OUTPUT --操作结果
--1:操作成功
--数据库:11:成功记录表中已经包含相同的transactionid 12:产品id不能存在
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PayPrice DECIMAL(18, 2) --RMB
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @Msg VARCHAR(512) --消息
DECLARE @PartnerID INT --渠道ID
SET @RetCode = 0
SET @PartnerID = 0
SET @CurrTime = GETDATE()
--因为收据并非一次校验有效,所以如果成功记录表中已经包含相同的transactionid
--则认为无效,插入一条记录至校验失败表
IF EXISTS(SELECT TransactionID FROM [VerifySuccessLog] WHERE TransactionID = @TransactionID)
BEGIN
SET @RetCode = 11
--校验失败,插入错误记录
EXEC [Pay_Verify_AddErrorLog] @UserID = @UserID, @ErrorMsg = @Memo, @IPAddress = @IPAddress
RETURN
END
--校验产品信息
EXEC [Pay_Product_Check] @UserID = @UserID, @OrderID = @TransactionID, @ProductID = @ProductID, @PayName = '苹果',
@IPAddress = @IPAddress, @Price = @PayPrice OUTPUT
--判断是否有产品
IF(@PayPrice IS NULL OR @PayPrice <= 0)
BEGIN
SET @RetCode = 12
RETURN
END
--渠道ID
SELECT TOP 1 @PartnerID = PartnerID FROM [UserLoginLog] WHERE UserID = @UserID ORDER BY LogID DESC
IF(@@ROWCOUNT = 0)
BEGIN
SELECT TOP 1 @PartnerID = PartnerID FROM [UserLoginLog_bak] WHERE UserID = @UserID ORDER BY LogID DESC
END
--添加校验成功记录
INSERT INTO [VerifySuccessLog]
(
TransactionID, UserID, ProductID, Price, Memo, Crdate, IPAddress, PartnerID, IsSandBox
)
VALUES
(
@TransactionID, @UserID, @ProductID, 0, @Memo, @CurrTime, @IPAddress, @PartnerID, @IsSandBox
)
--获取价格
UPDATE [VerifySuccessLog] SET Price = @PayPrice WHERE TransactionID = @TransactionID
--非沙箱才触发
IF(@IsSandBox = 0)
BEGIN
--触发充值事件
EXEC [Game_Pay_Trigger] @UserID = @UserID, @ProductID = @ProductID, @Price = @PayPrice, @IPAddress = @IPAddress
END
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[prGS_MachineUserLogin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
机器人登陆房间
同时要释放登陆时间超过12小时的帐号
*/
CREATE PROCEDURE [dbo].[prGS_MachineUserLogin]
@intGameID int, --游戏ID
@chvServerName nvarchar(128),--房间名
@intMaxBeans bigint, --房间金币上限
@intMinBeans bigint, --房间金币下限
@intUserID int output, --用户ID
@chvPwd varchar(32) output, --密码
@intLevels1 int output, --等级1
@intLevels2 int output, --等级2
@intLevels3 int output --等级3
as
set nocount on
BEGIN
declare @intRe int
--清空登陆时间超过6小时的帐号
delete MachineUserLock where DATEDIFF(hh,loginTime,getdate()) > 2
--查找在同一ID,同一房间没有进入过的用户
SELECT TOP 1
@intUserID = UserID, @chvPwd = [password], @intlevels1 = Levels1,
@intLevels2 = Levels2, @intLevels3 = Levels3
FROM
[MachineUser]
WHERE
UserID NOT IN (SELECT UserID FROM MachineUserLock WHERE ServerName=@chvServerName)
ORDER BY
NEWID()
if @@ROWCOUNT = 0
return -1
--看是否是进入的豆类房间,如果是则加豆处理
if @intMaxBeans > 0
begin
--SET @intMaxBeans = CASE WHEN @intMaxBeans >= 20000000 THEN 20000000 ELSE @intMaxBeans END
IF(@intMinBeans = 0)
BEGIN
EXEC [Game_Rand_GetRnd] @Min = 10000, @Max = 1000000, @Rnd = @intMinBeans OUTPUT
END
exec @intRe = [prMoney_GameServer_MachineUserUPDMoney] @intUserID,'201301001',@intMaxBeans,@intMinBeans,null
if @intRe <> 1
return -1
end
--加游戏房间信息,同时也表示上锁了在这个房间
insert into MachineUserLock (UserID,ServerName,LoginTime)
values(@intUserID,@chvServerName,GETDATE())
set @intLevels1 = 3
return 1
END
GO
/****** Object: StoredProcedure [dbo].[prGS_MachineUserLogout] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
机器人登出
*/
CREATE PROCEDURE [dbo].[prGS_MachineUserLogout]
@intGameID int,
@chvServerName nvarchar(128),
@intUserID int
as
set nocount on
BEGIN
delete MachineUserLock where UserID=@intUserID and ServerName=@chvServerName
return 1
END
GO
/****** Object: StoredProcedure [dbo].[prGS_MachineUserUnLock] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[prGS_MachineUserUnLock]
@intGameID int,
@chvServerName nvarchar(128)
as
set nocount on
BEGIN
delete MachineUserLock where ServerName=@chvServerName
return 1
END
GO
/****** Object: StoredProcedure [dbo].[prMoney_GameServer_MachineUserUPDMoney] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
游戏服务器_机器人修改金币
取房间金币上限和下限的一个随机值
有可能要加,有可能要减
*/
CREATE PROCEDURE [dbo].[prMoney_GameServer_MachineUserUPDMoney]
@intUserID int, --用户ID
@chvSourceNo varchar(32), --活动类型
@intMaxBeans bigint, --房间金币上限
@intMinBeans bigint, --房间金币下限
@chvResult nvarchar(128) output
as
set nocount on
set xact_abort on
BEGIN
DECLARE @MAXDAY BIGINT -- 每个活动每天最多
SET @MAXDAY= 200000000
DECLARE @MAX_PER_OPERATE BIGINT -- 每人每次操作
SET @MAX_PER_OPERATE = 100000000
declare @intMoneyLogID int
declare @intDateID int
declare @intMoney bigint --根据会员等级和时长计算出来的送的金币数量,再跟传进来的金币数比较一下
declare @intCurrentAmount bigint --当前用户现金
declare @intDBAmount bigint
declare @intDBUserAmount bigint
declare @intGuessAmount bigint
declare @intWantedAmount bigint
declare @intModifyAmount bigint
declare @intDBMaxBeans bigint
set @intWantedAmount = 0
set @intModifyAmount = 0
set @chvResult = ''
set @intDateID = cast(cast(getdate() as float) as int)
if Isnull(@chvSourceNo, '') = ''
begin
set @chvResult = N'赠送渠道类型不能为空!!'
return -1
end
if @intMaxBeans <=0 or @intMinBeans<0
begin
set @chvResult = N'传入金币参数错误!!'
return -1
end
declare @chvSourceName nvarchar(128)
declare @dtSartTime datetime, @dtEndTime datetime
declare @intSourceMaxDay bigint, @intSourceMaxUserDay bigint
declare @intSourceMaxDayCount bigint
select
@chvSourceName = SourceName, @dtSartTime = StartTime, @dtEndTime = EndTime, @intSourceMaxDay = MaxDay,
@intSourceMaxUserDay = MaxUserDay, @intSourceMaxDayCount = MaxDayCount
from
GameServerSendSource
where
SourceNo = @chvSourceNo
if @@rowcount<=0
begin
set @chvResult = N'游戏服务器赠送渠道类型不存在!!'
return -1
end
if @dtSartTime is null set @dtSartTime = '2000-01-01'
if @dtEndTime is null set @dtEndTime = '2000-01-01'
if @intSourceMaxDay is null set @intSourceMaxDay = 0
if @intSourceMaxUserDay is null set @intSourceMaxUserDay = 0
if @intSourceMaxDayCount is null set @intSourceMaxDayCount = 0
declare @intStartID int, @intEndID int
set @intStartID = cast(cast(@dtSartTime as float) as int)
set @intEndID = cast(cast(@dtEndTime as float) as int)
if @intDateID>@intEndID
begin
set @chvResult = N'赠送渠道类型已结束!'
return -1
end
if @intDateID<@intStartID
begin
set @chvResult = N'赠送渠道类型还没有开始!'
return -1
end
declare @chvPreRemark nvarchar(32)
set @chvPreRemark = @chvSourceName + ':'
-------------------先检查输入参数------------------------
if @intUserID is null or @intUserID<=0
begin
Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
values (@chvSourceName, 0, 'CASH', @intUserID, 0,0, 0, '', @chvPreRemark + '用户名无效', getdate(),0, 0)
set @intMoneyLogID=scope_identity()
set @chvResult = @chvPreRemark + '用户名无效'
return -2
end
---------------------判断用户威望数是否在上下限区间内-----------------
select @intCurrentAmount=Amount from [Money] where UserID=@intUserID
if @@ROWCOUNT = 0 set @intCurrentAmount = 0
--取值范围为下限*10,如果大于房间上限则取房间上限,否则就在下限和下限*10之间取威望
set @intDBMaxBeans = @intMinBeans * 10
if (@intDBMaxBeans > @intMaxBeans )
set @intDBMaxBeans = @intMaxBeans
--在区间范围内直接返回不做任何修改
if @intCurrentAmount between @intMinBeans and @intDBMaxBeans
return 1
--产生一个区间内随机数
set @intWantedAmount = cast(rand()*(@intDBMaxBeans-@intMinBeans)+@intMinBeans as bigint)/100*100
if @intWantedAmount = 0
set @intWantedAmount = cast(rand()*(@intMaxBeans / 10 - @intMinBeans)+@intMinBeans as bigint)/100*100
set @intWantedAmount = @intWantedAmount - @intCurrentAmount
---------------判断单次操作的量-----------------------------
/*
if @intWantedAmount >= @MAX_PER_OPERATE
begin
Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
values (@chvSourceName, 0, 'CASH', @intUserID, 0, @intWantedAmount, 0, '', @chvPreRemark + '单次操作的量过大', getdate(),0, 0)
set @intMoneyLogID=scope_identity()
set @chvResult = @chvPreRemark + '单次操作的量过大'
return -4
end
----------------判断总限量-----------------------------------
set @intDBUserAmount=(select [MoneySum] from [GameServerSendUserStat] where [DateID] = @intDateID and [UserID] = @intUserID and [SourceNo] = @chvSourceNo)
if @intDBUserAmount is null
set @intDBUserAmount = 0
if @intDBUserAmount + @intWantedAmount >= @intSourceMaxUserDay
begin
Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
values (@chvSourceName, 0, 'CASH', @intUserID, 0, 0, 0, '', @chvPreRemark + '超过用户日限量', getdate(),0, 0)
set @intMoneyLogID=scope_identity()
set @intModifyAmount = 0
set @chvResult = @chvPreRemark + '超过用户日限量'
return -4
end
----------------判断总限量-----------------------------------
set @intDBAmount=(select SUM([MoneySum]) from GameServerSendStat where [DateID] = @intDateID and [SourceNo] = @chvSourceNo)
if @intDBAmount is null
set @intDBAmount = 0
if @intDBAmount + @intWantedAmount >= @intSourceMaxDay
begin
Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [StillAmount], LogType)
values (@chvSourceName, 0, 'CASH', @intUserID, 0, @intWantedAmount, 0, '', @chvPreRemark + '超过日限量', getdate(),0, 0)
set @intMoneyLogID=scope_identity()
set @chvResult = @chvPreRemark + '超过日限量'
return -4
end
*/
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
begin tran
set @intModifyAmount = @intWantedAmount
--加金币
update [Money] set Amount=Amount+@intModifyAmount,RefreshTime=getdate() where UserID=@intUserID
if @@RowCount = 0
Insert into [Money] (UserID,Amount, RegisterTime, RefreshTime, bank) values (@intUserID,@intModifyAmount, getdate(), getdate(), 0)
--写日志
Insert into [RobotMoneyLog] ([SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount], [TaxAmount], [IPAddress], [Remark], [Crdate],[StillAmount], LogType)
values (@chvSourceName, 0, 'CASH', @intUserID, @intCurrentAmount, @intModifyAmount, 0, '', @chvPreRemark + '加金币成功', getdate(),0, 0)
/*
Insert [GameServerSendLog] ([UserID], [SourceNo], [UserExtend], [CurrentAmount], [WantedAmount], [ModifyAmount], [IPAddress], [Remark], [Identity], [WriteTime], [Extend])
values (@intUserID, @chvSourceNo, 0, @intCurrentAmount, @intWantedAmount, @intWantedAmount, '', @chvPreRemark + cast(@intWantedAmount as varchar(10)), 0x, getdate(), 0x)
*/
update GameServerSendStat set MoneySum = MoneySum + isnull(@intWantedAmount,0) where DateID = @intDateID and SourceNo = @chvSourceNo
if @@rowcount=0
Insert GameServerSendStat (DateID, SourceNo, MoneySum) values(@intDateID, @chvSourceNo, isnull(@intWantedAmount,0))
update GameServerSendUserStat set MoneySum = MoneySum + isnull(@intWantedAmount,0) where DateID = @intDateID and UserId = @intUserID and SourceNo = @chvSourceNo
if @@rowcount=0
Insert GameServerSendUserStat (DateID, UserId, SourceNo, MoneySum) values(@intDateID, @intUserID, @chvSourceNo, isnull(@intWantedAmount,0))
commit tran
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
set @chvResult = ''
return 1
END
GO
/****** Object: StoredProcedure [dbo].[prMoney_WebDelCoin_v2] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
WEB通用调用加金币接口
*/
CREATE PROCEDURE [dbo].[prMoney_WebDelCoin_v2]
@UserID INT,
@SourceName NVARCHAR(32), --Web应用名称
@Reason NVARCHAR(128),
@WantAmount BIGINT,
@WantBank BIGINT,
@IPAddress VARCHAR(16),
@OpUserID INT,
@OpUserName VARCHAR(32),
@RetCode TINYINT OUTPUT,
@ErrorMsg NVARCHAR(128) OUTPUT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @intCurrentAmount BIGINT
DECLARE @chvDBServerName NVARCHAR(64)
DECLARE @chvRemark NVARCHAR(128)
DECLARE @LogType INT
DECLARE @Msg NVARCHAR(4000)
SET @intCurrentAmount = 0
SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
SET @RetCode = 0
SET @ErrorMsg = ''
SET @LogType = 7
IF(@SourceName IS NULL OR @SourceName = '')
BEGIN
SET @SourceName = ''
SET @chvRemark = N'Web application name is empty (deduction) ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 11
SET @ErrorMsg = N'WEB应用名称为空(扣金)'
RETURN
END
IF(@UserID IS NULL OR @UserID <= 0)
BEGIN
SET @UserID = 1
SET @chvRemark = N'Web deduction - safe: incorrect user ID ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 12
SET @ErrorMsg = N'WEB扣金:用户ID不正确'
RETURN
END
IF(@WantAmount < 0)
BEGIN
SET @chvRemark = N'Web deduction: incorrect amount of deduction ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 13
SET @ErrorMsg = N'WEB扣金:扣金数量不正确'
RETURN
END
--添加日志
SET @Msg = N'Admin Reduce Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN
--扣除现金
IF(@WantAmount > 0)
BEGIN
SET @chvDBServerName = (SELECT ServerName FROM [CasinoOnline] WHERE UserID = @UserID )
IF(@chvDBServerName IS NOT NULL)
BEGIN
ROLLBACK TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET @chvRemark = N'Web deduction: users have locks ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 15
SET @ErrorMsg = N'当前您在服务器:' + @chvDBServerName + '中,请退出'
RETURN
END
-----------------检查用户现金-------------------------------
SELECT @intCurrentAmount = [Amount] FROM [Money] WHERE [UserID] = @UserID
IF(@intCurrentAmount < @WantAmount)
BEGIN
ROLLBACK TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET @chvRemark = N'Web deduction: user cash is not enough ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, -@WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 16
SET @ErrorMsg = N'对不起,您的现金量不足不可以进行这次操作'
RETURN
END
UPDATE [Money] SET Amount = Amount - @WantAmount WHERE UserID = @UserID
END
COMMIT TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
--------------写Log和统计----------------
IF(@WantAmount > 0)
BEGIN
SET @chvRemark = N'Successful gold coin deduction ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, @intCurrentAmount, -@WantAmount,
@intCurrentAmount - @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
END
--统计
SET @WantAmount = -@WantAmount
EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
SET @RetCode = 1
SET @ErrorMsg = N'扣金币成功'
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[prMoney_WebSendCoin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
WEB通用调用加金币接口
*/
CREATE PROCEDURE [dbo].[prMoney_WebSendCoin]
@UserID INT,
@SourceName NVARCHAR(32), --Web应用名称 BuyKey (U币购买门票)
@Reason NVARCHAR(128),
@WantAmount BIGINT,
@IPAddress VARCHAR(16),
@OpUserID INT,
@OpUserName VARCHAR(32),
@RetCode TINYINT OUTPUT,
@ErrorMsg NVARCHAR(128) OUTPUT --错误描述
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @intCurrentAmount BIGINT
DECLARE @chvRemark VARCHAR(128)
DECLARE @LogType INT
DECLARE @MaxAmount BIGINT --最大额度
DECLARE @SendAmount BIGINT --发送金额
DECLARE @Msg NVARCHAR(4000)
DECLARE @RoleID INT --角色ID
SET @intCurrentAmount = 0
SET @Reason = '(' + LTRIM(STR(@OpUserID)) + ',' + @OpUserName + '),' + @Reason
SET @RetCode = 0
SET @ErrorMsg = ''
SET @LogType = 5
SET @MaxAmount = 10000
SET @RoleID = 0
IF(@SourceName IS NULL OR @SourceName = '')
BEGIN
SET @SourceName = ''
SET @chvRemark = N'Web application name is empty,' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 11
SET @ErrorMsg = N'Web application name is empty'
RETURN
END
IF(@UserID IS NULL OR @UserID <=0)
BEGIN
SET @UserID = 1
SET @chvRemark = N'Incorrect user ID ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 12
SET @ErrorMsg = N'Incorrect user ID'
END
IF(@WantAmount < 0)
BEGIN
SET @chvRemark = N'Incorrect amount of money delivered ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, 0, @WantAmount,
0, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
SET @RetCode = 13
SET @ErrorMsg = N'送金数量不正确'
RETURN
END
--角色ID
SELECT TOP 1 @RoleID = RoleID FROM [RoleUser] WHERE AdminUserID = @OpUserID ORDER BY RoleID ASC
--管理员角色
IF(@RoleID = 1)
BEGIN
SET @MaxAmount = 1000000
--测试账号
IF EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
SET @MaxAmount = 100000000
END
END
--发送总额
SELECT @SendAmount = ISNULL(SUM(WantAmount), 0) FROM [AdminSendCoin] WHERE Crdate >= CONVERT(CHAR(10), GETDATE(), 120)
--赠送超出今天限额
IF(@SendAmount + @WantAmount > @MaxAmount)
BEGIN
SET @RetCode = 15
SET @ErrorMsg = N'The increase exceeds the limit'
RETURN
END
--加入今天赠送日志
INSERT INTO [AdminSendCoin]
(
OpUserID, OpUserName, UserID, WantAmount, Crdate
)
VALUES
(
@OpUserID, @OpUserName, @UserID, @WantAmount, GETDATE()
)
--添加日志
SET @Msg = N'Admin Send Coin, @UserID=' + LTRIM(STR(@UserID)) + ',@WantAmount=' + CAST(@WantAmount AS VARCHAR(32)) + ',@Reason=' + @Reason
EXEC [Game_Log_Add] @OpUserID = @OpUserID, @OpUserName = @OpUserName, @Msg = @Msg, @IPAddress = @IPAddress, @Type = 1
SELECT @intCurrentAmount = [Amount] FROM [Money] WHERE [UserID] = @UserID
-------------加金币、保险柜------------------------
UPDATE [Money] SET [Amount] = [Amount] + @WantAmount WHERE [UserID] = @UserID
IF(@@RowCount = 0)
BEGIN
INSERT INTO [Money]
(
UserID, Amount, Bank, RegisterTime, RefreshTime
)
VALUES
(
@UserID, @WantAmount, 0, GETDATE(), GETDATE()
)
END
--------------写Log和统计----------------
IF(@WantAmount > 0)
BEGIN
SET @chvRemark = N'Gold coin delivered successfully ' + @Reason
INSERT INTO [MoneyLog]
(
[SourceName], [GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
@SourceName, 0, 'CASH', @UserID, @intCurrentAmount, @WantAmount,
@intCurrentAmount + @WantAmount, 0, @IPAddress, @chvRemark, GETDATE(), @LogType
)
END
--统计
EXEC [Game_MoneyStat_Update] @UserID = @UserID, @MoneySum = @WantAmount, @TaxSum = 0, @LogType = @LogType
SET @RetCode = 1
SET @ErrorMsg = N'送金币成功'
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[proc_insert] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
根据网上资料修改,完成于 2006-6-26
增加对自增列的支持
不支持text等指针类型字段
支持限制行数, 支持bigint,支持where条件. 2010-1-26 15:14:31
*/
CREATE PROCEDURE [dbo].[proc_insert] (
@tablename varchar(256),
@keepidentity tinyint =1, -- 是否保留identity原值 1:保留 0:不保留
@whereclause varchar(256), --where 条件,如果有,需要带上 where 关键词
@limitrows int =0 --只需要多少行,0表示需要所有的行
)
as
set nocount on
declare @sqlstr varchar(7200)
declare @sqlstr1 varchar(7200)
declare @sqlstr2 varchar(7200)
select @sqlstr='select ''insert '+@tablename
select @sqlstr1=''
select @sqlstr2=' ('
select @sqlstr1= ' values ( ''+'
if @keepidentity = 1 --保留identity原值
select @sqlstr1=@sqlstr1+col+'+'',''+' ,@sqlstr2=@sqlstr2+name +',' from (select case
-- when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
when a.xtype =104 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+a.name +')'+' end'
when a.xtype =175 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =61 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
when a.xtype =106 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
when a.xtype =62 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
when a.xtype in (127,56) then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(30),'+a.name +')'+' end'
when a.xtype =60 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
when a.xtype =239 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =108 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
when a.xtype =231 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =59 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
when a.xtype =58 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
when a.xtype =52 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+a.name +')'+' end'
when a.xtype =122 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
when a.xtype =48 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+a.name +')'+' end'
-- when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
when a.xtype =167 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
else '''NULL'''
--对text类型35不支持
end as col,a.colid,a.name
from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36
)t order by colid
else --不用保留identity原值
select @sqlstr1=@sqlstr1+col+'+'',''+' ,@sqlstr2=@sqlstr2+name +',' from (select case
-- when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
when a.xtype =104 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+a.name +')'+' end'
when a.xtype =175 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =61 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
when a.xtype =106 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
when a.xtype =62 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
when a.xtype in (127,56) then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(30),'+a.name +')'+' end'
when a.xtype =60 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
when a.xtype =239 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =108 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
when a.xtype =231 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =59 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
when a.xtype =58 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
when a.xtype =52 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+a.name +')'+' end'
when a.xtype =122 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
when a.xtype =48 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+a.name +')'+' end'
-- when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
when a.xtype =167 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
else '''NULL'''
end as col,a.colid,a.name
from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36
and columnproperty(object_id(@tablename),a.name,'isidentity')!=1
)t order by colid
select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename + ' ' + @whereclause
print @sqlstr
set rowcount @limitrows
exec( @sqlstr)
set rowcount 0
--如果需要保留identity原值,又有identity列时,输出 set identity_insert 语句
if OBJECTPROPERTY(OBJECT_ID(@tablename),'TableHasIdentity') =1 and @keepidentity = 1
begin
print 'set identity_insert ' + @tablename + ' on'
print 'set identity_insert ' + @tablename + ' off'
end
GO
/****** Object: StoredProcedure [dbo].[prVerifyKeepID] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object: Stored Procedure dbo.prVerifyKeepID Script Date: 2008-11-4 16:52:53 ******/
/*
说明:校验是否为保留ID
返回:9 是保留ID 其他不是
*/
CREATE PROCEDURE [dbo].[prVerifyKeepID]
@intUserID int,
@chvKeepLoginName varchar(50) output, --返回保留用户名
@chvKeepPwd varchar(20) output, --返回保留用户密码
@chvKeepEPwd varchar(100) output --返回保留用户加密密码
AS
BEGIN
set @chvKeepLoginName = '保留用户 ('+ cast(@intUserID as varchar(20)) +')'
set @chvKeepPwd = left(cast(newid() as varchar(100)),8)
set @chvKeepPwd = convert(varchar,ascii(substring(@chvKeepPwd, 1,1)))
+convert(varchar,ascii(substring(@chvKeepPwd, 2,1)))
+convert(varchar,ascii(substring(@chvKeepPwd, 3,1)))
set @chvKeepEPwd = dbo.fn_md5(cast(@intUserID as varchar) + @chvKeepPwd)
/*
--校验保留ID表
if exists(select * from dbo.KeepID where KeepUserID = @intUserID) begin
return 9
end
*/
--校验保留ID规则
declare @chvCheckStr varchar(4)
set @chvCheckStr = cast(@intUserID as varchar(20))
if ( charindex('1111', @chvCheckStr)>0
or charindex('2222', @chvCheckStr)>0
or charindex('333', @chvCheckStr)>0
or charindex('4444', @chvCheckStr)>0
or charindex('5555', @chvCheckStr)>0
or charindex('666', @chvCheckStr)>0
or charindex('7777', @chvCheckStr)>0
or charindex('888', @chvCheckStr)>0
or charindex('999', @chvCheckStr)>0 ) begin
return 9
end
set @chvKeepLoginName = ''
set @chvKeepPwd = ''
set @chvKeepEPwd = ''
return 1
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllGame_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllGame_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2016-06-02
-- Description: 游戏列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllGame_GetList]
@PartnerID INT = 0 --渠道ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @EnglishName VARCHAR(32) --游戏英文名
--获取某个渠道
IF(@PartnerID > 0)
BEGIN
--获取英文名
SELECT @EnglishName = EnglishName FROM [Partner] WHERE PartnerID = @PartnerID
--返回信息:游戏ID(GameID)(int)、中文名称(ChineseName)(varchar(32))、英文名称(EnglishName)(varchar(32))
SELECT
GameID, ChineseName, EnglishName, GameType, CAST(DisplaySort AS VARCHAR(16)) AS DisplaySort,
CASE
WHEN EnglishName = @EnglishName THEN 1
ELSE 0
END AS PartnerSort, NeedLevel
FROM
[AllGame]
WHERE
Enabled = 1
ORDER BY
PartnerSort DESC, DisplaySort ASC
RETURN
END
--返回信息:游戏ID(GameID)(int)、中文名称(ChineseName)(varchar(32))、英文名称(EnglishName)(varchar(32))
SELECT
GameID, ChineseName, EnglishName, GameType,
CAST(DisplaySort AS VARCHAR(16)) AS DisplaySort,
0 AS PartnerSort, NeedLevel
FROM
[AllGame]
WHERE
Enabled = 1
ORDER BY
DisplaySort ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeFace] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_ChangeFace]
-- @UserID = 100,
-- @FaceID = 2,
-- @Face = 0x
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-16
-- Mendor: wolf
-- Alter Date: 2016-04-19
-- Description: 修改头像
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_ChangeFace]
@UserID INT, --用户ID
@Sex TINYINT, --性别(无效)
@FaceID SMALLINT, --头像ID(-1=玩家上传头像)
@FaceUrl VARCHAR(1024) --头像URL
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
SET @CurrTime = GETDATE()
IF(LEN(@FaceUrl) >= 1024)
RETURN 11
--更新头像
UPDATE
[UserFace]
SET
FaceUrl = @FaceUrl, FaceID = @FaceID
WHERE
UserID = @UserID
RETURN 1
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeNameTimes] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_ChangeNameTimes]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 修改昵称次数
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_ChangeNameTimes]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @ChangeTimes INT --修改次数
SELECT @ChangeTimes = COUNT(UserID) FROM [ChangedNickNameLog] WHERE UserID = @UserID
--返回信息
SELECT @ChangeTimes AS ChangeTimes
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeNickName] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [WS_AllUser_ChangeNickName]
-- @UserID = 100,
-- @NickName = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-16
-- Mendor: wolf
-- Alter Date: 2016-04-11
-- Description: 修改用户昵称
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_ChangeNickName]
@UserID INT, --用户ID
@NickName NVARCHAR(32), --昵称
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述:1=操作成功 11=含有敏感字 12=账号不存在 13=钻石不足 14=账号名称已经存在
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @OldNickName NVARCHAR(32) --旧昵称
DECLARE @Remark VARCHAR(128) --备注
SET @RetCode = 0
SELECT @OldNickName = NickName FROM [AllUser] WHERE UserID = @UserID
IF(LEN(@NickName) <= 0)
BEGIN
SET @RetCode = 11
RETURN
END
--更新昵称
UPDATE [AllUser] SET NickName = @NickName, @OldNickName = NickName WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 12
RETURN
END
--修改昵称日志
INSERT INTO [ChangedNickNameLog]
(
UserID, OldNickName, NewNickName, Crdate
)
VALUES
(
@UserID, @OldNickName, @NickName, GETDATE()
)
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeSex] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_ChangeSex]
-- @UserID = 100,
-- @Sex = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-16
-- Mendor: wolf
-- Alter Date: 2016-04-11
-- Description: 修改性别
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_ChangeSex]
@UserID INT, --用户ID
@Sex TINYINT --性别 0=默认(无) 1=男 2=女
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @FaceID SMALLINT --脸谱ID(-1=玩家上传头像)
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--1=男
IF(@Sex = 1)
BEGIN
--随机头像,男性头像1-10
EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 10, @Rnd = @FaceID OUTPUT
END
--2=女
ELSE IF(@Sex = 2)
BEGIN
--随机头像,女性头像11-20
EXEC [Game_Rand_GetRnd] @Min = 11, @Max = 20, @Rnd = @FaceID OUTPUT
END
--修改性别
UPDATE [UserFace] SET Sex = @Sex, FaceID = @FaceID WHERE UserID = @UserID
SET @RetCode = 1
--返回信息
SELECT @RetCode AS RetCode, @FaceID AS FaceID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_ChangeUserWord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode INT
-- EXEC [WS_AllUser_ChangeUserWord]
-- @UserID = 100,
-- @UserWords = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-23
-- Mendor: wolf
-- Alter Date: 2015-03-23
-- Description: 修改个性签名
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_ChangeUserWord]
@UserID INT, --用户ID
@UserWords NVARCHAR(256), --个性签名
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述:1=操作成功 11=含有敏感字 12=账号不存在
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--检查非法字符
IF(CHARINDEX('>', @UserWords) > 0 OR CHARINDEX('<', @UserWords) > 0)
BEGIN
SET @RetCode = 11
RETURN
END
--替换掉屏蔽字
--SELECT @UserWords = REPLACE(@UserWords, LimitWord, REPLICATE('*', LEN(LimitWord))) FROM [LimitWord]
--修改签名
UPDATE [AllUser] SET UserWords = @UserWords WHERE UserID = @UserID
/*
INSERT INTO [UserWordsPool]
(
UserID, UserWords, TransMsg, Status, OpUserID, OpUserName, DealTime, ApplyTime
)
VALUES
(
@UserID, @UserWords, '', 0, 0, '', '2021-01-01', GETDATE()
)
*/
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_CheckLogin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_CheckLogin]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 检查登录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_CheckLogin]
@UserID INT, --用户ID
@EPassword VARCHAR(32) --登录密码(密文)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @DBPassword VARCHAR(32) --密码
DECLARE @Amount BIGINT --金币
DECLARE @Bank BIGINT --保险柜
DECLARE @NickName NVARCHAR(32) --昵称
DECLARE @FaceID SMALLINT --头像ID
DECLARE @FaceUrl VARCHAR(1024) --头像URL
DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
DECLARE @VipLevel INT --Vip等级
DECLARE @UserWords NVARCHAR(256) --个性签名
DECLARE @Code INT --推荐码
DECLARE @IsGuest TINYINT --是否游客
DECLARE @TeacherID INT --师父ID
DECLARE @ChipAmount BIGINT --筹码
DECLARE @ChipBank BIGINT --筹码保险柜
DECLARE @Currency VARCHAR(32) --币种
DECLARE @CurrencyIsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
DECLARE @UTMSource NVARCHAR(128) --广告系列来源
DECLARE @Charm INT --魅力值
SET @RetCode = 0
SET @Amount = 0
SET @Bank = 0
SET @NickName = ''
SET @FaceID = 0
SET @FaceUrl = ''
SET @VipLevel = 0
SET @Sex = 0
SET @UserWords = ''
SET @Code = 0
SET @IsGuest = 0
SET @TeacherID = 0
SET @ChipAmount = 0
SET @ChipBank = 0
SET @Currency = ''
SET @CurrencyIsModify = 1
SET @UTMSource = 'Default'
SET @Charm = 0
--用户信息
SELECT
@NickName = NickName, @DBPassword = EPassword, @UserWords = UserWords,
@IsGuest = CASE
WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
ELSE 1
END
FROM
[AllUser]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SELECT
@RetCode AS RetCode, @Amount AS Amount, @NickName AS NickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex,
@UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
0 AS HigherUserID, 0 AS Grade, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
@Currency AS Currency, @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource,
@Charm AS Charm
RETURN
END
--判断密码
IF(@EPassword IS NULL OR @EPassword != @DBPassword)
BEGIN
SELECT
@RetCode AS RetCode, @Amount AS Amount, @NickName AS NickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex,
@UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
0 AS HigherUserID, 0 AS Grade, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
@Currency AS Currency, @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource,
@Charm AS Charm
RETURN
END
--头像
SELECT @Sex = Sex, @FaceID = FaceID, @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--Vip级别
SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
--推荐码
SELECT @Code = Code FROM [SpreadMember] WHERE UserID = @UserID
--师父ID
SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @UserID
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
--币种
SELECT @Currency = Currency, @CurrencyIsModify = IsModify FROM [UserCountry] WHERE UserID = @UserID
--注册流量渠道
SELECT @UTMSource = Source FROM [UTM] WHERE UserID = @UserID
--魅力值
SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
--操作成功
SET @RetCode = 1
SELECT
@RetCode AS RetCode, @Amount AS Amount, @NickName AS NickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex,
@UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
0 AS HigherUserID, 0 AS Grade, @ChipAmount AS ChipAmount, @ChipBank AS ChipBank,
@Currency AS Currency, @CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource,
@Charm AS Charm
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_DelAccount] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_DelAccount]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 删除账号
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_DelAccount]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @Suffix VARCHAR(64) --废弃的账号
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--后缀
SET @Suffix = '_' + REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(16), GETDATE(), 120), '-', ''), ' ', ''), ':', '')
--账号信息
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--删除账号信息
UPDATE
[AllUser]
SET
IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END,
deviceid = CASE WHEN @deviceid != '' THEN deviceid + @Suffix ELSE deviceid END
WHERE
UserID = @UserID
UPDATE
[UserIdentity]
SET
IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END
WHERE
UserID = @UserID
SET @RetCode = 1
--返回信息
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_DelFacebook] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_DelFacebook]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 删除facebook账号
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_DelFacebook]
@FacebookID VARCHAR(64)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @Suffix VARCHAR(64) --废弃的账号
DECLARE @UserID INT
SET @UserID = 0
IF(LEN(@FacebookID) <= 0)
BEGIN
SELECT @UserID AS UserID
RETURN
END
--后缀
SET @Suffix = '_' + REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(16), GETDATE(), 120), '-', ''), ' ', ''), ':', '')
--账号信息
SELECT @UserID = UserID, @IMei = IMei FROM [AllUser] WHERE IMei = @FacebookID
IF(@@ROWCOUNT = 0)
BEGIN
SELECT @UserID = UserID, @deviceid = deviceid FROM [AllUser] WHERE deviceid = @FacebookID
END
IF(@UserID <= 0)
BEGIN
SELECT @UserID AS UserID
RETURN
END
--删除账号信息
UPDATE
[AllUser]
SET
IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END,
deviceid = CASE WHEN @deviceid != '' THEN deviceid + @Suffix ELSE deviceid END
WHERE
UserID = @UserID
UPDATE
[UserIdentity]
SET
IMei = CASE WHEN @IMei != '' THEN IMei + @Suffix ELSE IMei END
WHERE
UserID = @UserID
--返回信息
SELECT @UserID AS UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetAmountInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetAmountInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 金币信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetAmountInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Amount BIGINT --现金 cash
DECLARE @Bank BIGINT --保险柜
SET @Amount = 0
SET @Bank = 0
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--返回信息
SELECT @Amount AS Amount, @Bank AS Bank
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetBankInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetBankInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 获取银行账号信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetBankInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT TOP 1
RealName, BankName, BankCode, BankCard, Mobile
FROM
[UserBankInfo]
WHERE
UserID = @UserID
ORDER BY
Rid DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetBaseInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetBaseInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取用户基本信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetBaseInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NickName NVARCHAR(32) --昵称
DECLARE @VipLevel INT --Vip等级
DECLARE @FaceID INT --头像ID
DECLARE @FaceUrl VARCHAR(1024) --头像URL
DECLARE @Sex INT --性别
DECLARE @UserWords NVARCHAR(256)
DECLARE @IsRobot TINYINT --是否机器人
DECLARE @PrivateRoomCount INT --私人场局数
DECLARE @Currency VARCHAR(32) --币种
DECLARE @Money BIGINT --金币数
DECLARE @Bank BIGINT --保险柜
DECLARE @Charm INT --魅力值
DECLARE @ChipAmount BIGINT --筹码金额
DECLARE @ChipBank BIGINT --筹码保险柜
SET @NickName = ''
SET @UserWords = ''
SET @FaceID = 0
SET @FaceUrl = ''
SET @Sex = 0
SET @VipLevel = 0
SET @IsRobot = 0
SET @PrivateRoomCount = 0
SET @Currency = ''
SET @Money = 0
SET @Bank = 0
SET @Charm = 0
SET @ChipAmount = 0
SET @ChipBank = 0
--账号昵称
SELECT
@NickName = NickName, @UserWords = UserWords,
@IsRobot = CASE WHEN RegIP = '127.0.0.1' THEN 1 ELSE 0 END
FROM
[AllUser]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SELECT
@NickName AS NickName, @VipLevel AS VipLevel, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @Sex AS Sex, @UserWords AS UserWords,
@IsRobot AS IsRobot, @PrivateRoomCount AS PrivateRoomCount,
@Currency AS Currency, @Money AS Gold, @Charm AS Charm,
@ChipAmount AS ChipAmount
RETURN
END
--头像信息
SELECT
@FaceID = FaceID, @FaceUrl = FaceUrl, @Sex = Sex
FROM
[UserFace]
WHERE
UserID = @UserID
--VIP等级
SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
--私人场局数
SELECT @PrivateRoomCount = COUNT(Rid) FROM [ChairHistory] WHERE Crdate >= '2022-11-01' AND UserID = @UserID
--获取币种
SELECT @Currency = Currency FROM [UserCountry] WHERE UserID = @UserID
IF(@Currency = '')
BEGIN
SELECT @Currency = Currency FROM [ExchangeRate] WHERE IsDefault = 1
END
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Money OUTPUT, @Bank = @Bank OUTPUT
--魅力值
SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
--返回信息
SELECT
@NickName AS NickName, @VipLevel AS VipLevel, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @Sex AS Sex, @UserWords AS UserWords,
@IsRobot AS IsRobot, @PrivateRoomCount AS PrivateRoomCount,
@Currency AS Currency, @Money AS Gold, @Charm AS Charm,
@ChipAmount AS ChipAmount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetBindInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetBindInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户绑定信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetBindInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64) --IMei
DECLARE @deviceid VARCHAR(64) --设备号
DECLARE @IsFacebook TINYINT --是否绑定facebook
DECLARE @IsTel TINYINT --是否绑定手机
SET @IsFacebook = 0
SET @IsTel = 0
--设备号
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
--已绑定
IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
BEGIN
SET @IsFacebook = 1
END
--已绑定
IF(LEFT(@deviceid, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'gg.')
BEGIN
SET @IsFacebook = 1
END
--判断是否绑定手机
IF EXISTS(SELECT UserID FROM [UserTel] WHERE UserID = @UserID)
BEGIN
SET @IsTel = 1
END
--返回信息
SELECT @IsFacebook AS IsFacebook, @IsTel AS IsTel
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetFace] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetFace]
-- @UserID = @UserID
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取用户头像
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetFace]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @FaceID TINYINT --头像ID
DECLARE @FaceUrl VARCHAR(1024) --头像URL
DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
SET @FaceID = 0
SET @FaceUrl = ''
SET @Sex = 0
--用户自定义头像
SELECT
@FaceID = FaceID, @FaceUrl = FaceUrl, @Sex = Sex
FROM
[UserFace]
WHERE
UserID = @UserID
SELECT @FaceID AS FaceID, @FaceUrl AS FaceUrl, @Sex AS Sex
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetFacebookInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetFacebookInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 获取用户facebook信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetFacebookInfo]
@FacebookID VARCHAR(64)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @UserID INT
SET @UserID = 0
IF(LEN(@FacebookID) <= 0)
BEGIN
SELECT @UserID AS UserID
RETURN
END
--账号信息
SELECT @UserID = UserID, @IMei = IMei FROM [AllUser] WHERE IMei = @FacebookID
IF(@@ROWCOUNT = 0)
BEGIN
SELECT @UserID = UserID, @deviceid = deviceid FROM [AllUser] WHERE deviceid = @FacebookID
END
--返回信息
SELECT @UserID AS UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetInfo]
-- @UserID = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 用户信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NickName NVARCHAR(32) --好友昵称
DECLARE @ServerName NVARCHAR(32) --服务器名称
DECLARE @FaceID SMALLINT --头像ID
DECLARE @NewUserID INT --用户ID
SET @NewUserID = 0
SET @NickName = ''
SET @ServerName = ''
SET @FaceID = 0
SELECT @NewUserID = UserID, @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SELECT
@NewUserID AS UserID, @NickName AS NickName, @ServerName AS ServerName,
@FaceID AS FaceID
RETURN
END
--获取服务器名称
SELECT @ServerName = ServerName FROM [t_onlineuser] WHERE UserID = @UserID
--获取头像
SELECT @FaceID = FaceID FROM [UserFace] WHERE UserID = @UserID
--返回信息:对方用户ID(UserID)(int)、对方昵称(NickName)(varchar(32))、服务器名称(ServerName)(varchar(32))
SELECT
@NewUserID AS UserID, @NickName AS NickName, @ServerName AS ServerName,
@FaceID AS FaceID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetIPAndIMei] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetIPAndIMei]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 根据IP、IMei获取用户列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetIPAndIMei]
@IPAddress VARCHAR(16), --IP地址
@IMei VARCHAR(64), --IMei
@Days INT --天数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SET @DateFlag = @DateFlag - @Days
--ip
IF(@IPAddress != '')
BEGIN
SELECT UserID FROM [AllUser] WHERE RegTime >= @DateFlag AND RegIP = @IPAddress
END
--imei
ELSE IF(@IMei != '')
BEGIN
SELECT UserID FROM [AllUser] WHERE RegTime >= @DateFlag AND deviceid = @IMei
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_GetMyInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_GetMyInfo]
-- @UserID = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 用户信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_GetMyInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @NickName NVARCHAR(32) --好友昵称
DECLARE @ServerName NVARCHAR(32) --服务器名称
DECLARE @FaceID SMALLINT --头像ID
DECLARE @Amount BIGINT --金币
DECLARE @Bank BIGINT --保险柜
DECLARE @EPassword VARCHAR(32) --登陆密码
DECLARE @PartnerID INT --渠道ID
DECLARE @FaceUrl VARCHAR(1024) --头像URL
DECLARE @PayMoney DECIMAL(18, 2) --充值额度
DECLARE @VipLevel INT --Vip等级
DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
DECLARE @UserWords NVARCHAR(256) --个性签名
DECLARE @Code INT --推荐码
DECLARE @IsGuest TINYINT --是否游客
DECLARE @TeacherID INT --师父ID
DECLARE @ChipAmount BIGINT --筹码
DECLARE @ChipBank BIGINT --筹码保险柜
DECLARE @Currency VARCHAR(32) --币种
DECLARE @CurrencyIsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
DECLARE @UTMSource NVARCHAR(128) --广告系列来源
DECLARE @Charm INT --魅力值
SET @NickName = ''
SET @ServerName = ''
SET @FaceID = 0
SET @Amount = 0
SET @Bank = 0
SET @EPassword = ''
SET @PartnerID = 0
SET @FaceUrl = ''
SET @PayMoney = 0
SET @VipLevel = 0
SET @Sex = 0
SET @UserWords = ''
SET @Code = 0
SET @IsGuest = 0
SET @TeacherID = 0
SET @ChipAmount = 0
SET @ChipBank = 0
SET @Currency = ''
SET @CurrencyIsModify = 1
SET @UTMSource = 'Default'
SET @Charm = 0
SELECT
@NickName = NickName, @EPassword = EPassword, @PartnerID = PartnerID, @PayMoney = PayMoney, @UserWords = UserWords,
@IsGuest = CASE
WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
ELSE 1
END
FROM
[AllUser]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SELECT
@NickName AS NickName, @ServerName AS ServerName, @FaceID AS FaceID,
@Amount AS Amount, @EPassword AS EPassword, @PartnerID AS PartnerID, @FaceUrl AS FaceUrl,
@PayMoney AS PayMoney, @VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex, @UserWords AS UserWords,
@Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID, 0 AS HigherUserID, 0 AS Grade,
@ChipAmount AS ChipAmount, @ChipBank AS ChipBank, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
--获取服务器名称
SELECT @ServerName = ServerName FROM [t_onlineuser] WHERE UserID = @UserID
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipAmount OUTPUT, @Bank = @ChipBank OUTPUT
--获取头像索引
SELECT @Sex = Sex, @FaceID = FaceID, @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
--Vip级别
SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
--推荐码
SELECT @Code = Code FROM [SpreadMember] WHERE UserID = @UserID
--师父ID
SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @UserID
--币种
SELECT @Currency = Currency, @CurrencyIsModify = IsModify FROM [UserCountry] WHERE UserID = @UserID
--注册流量渠道
SELECT @UTMSource = Source FROM [UTM] WHERE UserID = @UserID
--魅力值
SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
--返回信息:对方用户ID(UserID)(int)、对方昵称(NickName)(varchar(32))、服务器名称(ServerName)(varchar(32))
--现金cash(Amount)(int)
SELECT
@NickName AS NickName, @ServerName AS ServerName, @FaceID AS FaceID, @Amount AS Amount,
@EPassword AS EPassword, @PartnerID AS PartnerID, @FaceUrl AS FaceUrl, @PayMoney AS PayMoney,
@VipLevel AS VipLevel, @Bank AS Bank, @Sex AS Sex, @UserWords AS UserWords,
@Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID, 0 AS HigherUserID, 0 AS Grade,
@ChipAmount AS ChipAmount, @ChipBank AS ChipBank, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_LoginByIMei] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_LoginByIMei]
-- @IMei = '',
-- @NickName = '',
-- @PartnerID = 500,
-- @Version = 0,
-- @IPAddress = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: IMei号登陆(游客登陆)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_LoginByIMei]
@IMei VARCHAR(64), --IMei
@NickName NVARCHAR(32), --昵称
@PartnerID INT, --渠道
@Version INT, --版本
@IPAddress VARCHAR(16), --IP地址
@deviceid VARCHAR(64), --设备序号
@DeviceName VARCHAR(32) --设备名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --System当前时间
DECLARE @Count SMALLINT --计数器
DECLARE @RetCode INT --返回值
DECLARE @Rnd INT --随机数
DECLARE @UserID INT --用户ID
DECLARE @NewNickName NVARCHAR(32) --新昵称
DECLARE @Money BIGINT --金币数
DECLARE @Bank BIGINT --保险柜
DECLARE @FaceID SMALLINT --脸谱ID(-1=玩家上传头像)
DECLARE @EPassword VARCHAR(32) --MD5密文
DECLARE @Msg NVARCHAR(4000) --消息
DECLARE @FaceUrl VARCHAR(1024) --头像地址
DECLARE @PayMoney DECIMAL(18, 2) --充值额度
DECLARE @SendAmount BIGINT --赠送
DECLARE @VipLevel INT --Vip等级
DECLARE @ForbidTime DATETIME --封号时间
DECLARE @DateFlag DATETIME --日期标识
DECLARE @Sex TINYINT --性别 0=默认(无) 1=男 2=女
DECLARE @UserWords NVARCHAR(256) --个性签名
DECLARE @Code INT --推荐码
DECLARE @IsGuest TINYINT --是否游客
DECLARE @SysMsgID INT --系统消息ID
DECLARE @RegPartnerID INT --注册渠道ID
DECLARE @TimeStamp INT
DECLARE @Tools VARCHAR(32)
DECLARE @TeacherID INT --师父ID
DECLARE @FacebookID VARCHAR(64)
DECLARE @ChipMoney BIGINT --筹码
DECLARE @ChipBank BIGINT --筹码保险柜
DECLARE @ChipSend BIGINT --筹码赠送
DECLARE @LoginTime DATETIME --登录时间
DECLARE @AutoLoginChip TINYINT --自动登录元宝大厅
DECLARE @IsReturn TINYINT --是否回归
DECLARE @Title NVARCHAR(32)
DECLARE @IsReg TINYINT --是否注册用户
DECLARE @BindFacebook INT --绑定赠送
DECLARE @PlatformName VARCHAR(32) --平台名称
DECLARE @HigherUserID INT --代理ID
DECLARE @Currency VARCHAR(32) --币种
DECLARE @CurrencyIsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
DECLARE @UTMSource NVARCHAR(128) --广告系列来源
DECLARE @Charm INT --魅力值
SET @CurrTime = GETDATE()
SET @UserID = 0
SET @Money = 0
SET @Bank = 0
SET @FaceID = 0
SET @FaceUrl = ''
SET @Sex = 0
SET @PayMoney = 0
SET @RetCode = 0
SET @VipLevel = 0
SET @ForbidTime = '2021-01-01'
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @UserWords = ''
SET @Code = 0
SET @IsGuest = 0
SET @SysMsgID = 0
SET @RegPartnerID = 0
SET @TimeStamp = dbo.fn_TimeToStamp(@CurrTime)
SET @TeacherID = 0
SET @ChipMoney = 0
SET @ChipBank = 0
SET @ChipSend = 0
SET @AutoLoginChip = 1
SET @IsReturn = 0
SET @IsReg = 0
SET @NewNickName = ''
SET @HigherUserID = 0
SET @Currency = ''
SET @CurrencyIsModify = 1
SET @UTMSource = ''
SET @EPassword = ''
SET @Charm = 0
IF(LEN(@IMei) <= 0)
BEGIN
SET @IMei = NEWID()
END
--IMei、设备号为空
IF(LEN(@IMei) <= 0 AND LEN(@deviceid) <= 0)
BEGIN
SELECT
@RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
@VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
@Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
@HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
@AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
--用户
SELECT @FacebookID = IMei FROM [UserBindFacebook] WHERE Facebook_1_ID = @IMei OR Facebook_2_ID = @IMei
IF(LEN(@FacebookID) > 0)
BEGIN
SET @IMei = @FacebookID
END
--获取用户信息
SELECT TOP 1
@UserID = UserID, @NewNickName = NickName, @EPassword = EPassword,
@PayMoney = PayMoney, @RegPartnerID = RegPartnerID, @UserWords = UserWords,
@LoginTime = CONVERT(CHAR(10), LoginTime, 120),
@IsGuest = CASE
WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
WHEN LEFT(IMei, 3) = 'ap.' OR LEFT(deviceid, 3) = 'ap.' THEN 0
ELSE 1
END
FROM
[AllUser]
WHERE
IMei = @IMei
ORDER BY
PayMoney DESC, RegTime DESC
IF(@UserID = 0)
BEGIN
SELECT TOP 1
@UserID = UserID, @NewNickName = NickName, @EPassword = EPassword,
@PayMoney = PayMoney, @RegPartnerID = RegPartnerID, @UserWords = UserWords,
@LoginTime = CONVERT(CHAR(10), LoginTime, 120),
@IsGuest = CASE
WHEN LEFT(IMei, 3) = 'fb.' OR LEFT(deviceid, 3) = 'fb.' THEN 0
WHEN LEFT(IMei, 3) = 'gg.' OR LEFT(deviceid, 3) = 'gg.' THEN 0
WHEN LEFT(IMei, 3) = 'ap.' OR LEFT(deviceid, 3) = 'ap.' THEN 0
ELSE 1
END
FROM
[AllUser]
WHERE
deviceid = @IMei
ORDER BY
PayMoney DESC, RegTime DESC
END
--当前有用户信息,直接返回
IF(@UserID > 0)
BEGIN
--封杀时间
SELECT @ForbidTime = EndTime FROM [ForbidUser] WHERE UserID = @UserID AND EndTime > @CurrTime
--判断账号是否被封杀
IF(@ForbidTime > @CurrTime)
BEGIN
SET @RetCode = -12
SELECT
@RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
@VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
@Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
@HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
@AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
--平台
SELECT @PlatformName = PlatformName FROM [PlatformConfig] WHERE ConfigID = 1
--登陆信息
UPDATE
[AllUser]
SET
PartnerID = @PartnerID, IPAddress = @IPAddress, LoginTime = @CurrTime,
deviceid = CASE WHEN deviceid = '' AND @deviceid != '' THEN @deviceid ELSE deviceid END,
RegTime = CASE WHEN deviceid = '' AND @deviceid != '' THEN @CurrTime ELSE RegTime END,
DeviceName = @DeviceName, Version = @Version
WHERE
UserID = @UserID
--上级代理ID
SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
--获取玩家头像
SELECT @Sex = Sex, @FaceID = FaceID, @FaceUrl = FaceUrl FROM [UserFace] WHERE UserID = @UserID
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Money OUTPUT, @Bank = @Bank OUTPUT
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipMoney OUTPUT, @Bank = @ChipBank OUTPUT
--Vip级别
SELECT @VipLevel = VipLevel FROM [UserVip] WHERE UserID = @UserID
--不是机器人
IF NOT EXISTS(SELECT UserID FROM [MachineUser] WHERE UserID = @UserID)
BEGIN
--登陆日志
INSERT INTO [UserLoginLog]
(
UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
)
VALUES
(
@UserID, @IMei, @PartnerID, @Version, 0, @IPAddress, @CurrTime, @DeviceName
)
--用戶日常统计
--更新
UPDATE
[UserDailyStat]
SET
StillAmount = @Money, LoginCount = LoginCount + 1
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, 0, 0, @Money, '2021-01-01', '2021-01-01',
0, 0, 1, 0, 0
)
END
END
--推荐码
SELECT @Code = Code FROM [SpreadMember] WHERE UserID = @UserID
--师父ID
SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @UserID
--统计未显示的赠送筹码数额
SELECT @ChipSend = ISNULL(SUM(Amount), 0) FROM [ChipSendLog] WHERE UserID = @UserID AND IsShow = 0
IF(@ChipSend > 0)
BEGIN
--修改未显示状态
UPDATE [ChipSendLog] SET IsShow = 1 WHERE UserID = @UserID AND IsShow = 0
END
--回归奖励,超过10天没有登录
IF(@LoginTime < @DateFlag - 10)
BEGIN
SET @IsReturn = 1
END
--获取币种
SELECT @Currency = Currency, @CurrencyIsModify = IsModify FROM [UserCountry] WHERE UserID = @UserID
IF(@Currency = '')
BEGIN
SELECT @Currency = Currency FROM [ExchangeRate] WHERE IsDefault = 1
END
--特殊渠道
IF(@PartnerID = 10901 AND @PlatformName = 'Egypt')
BEGIN
SET @UTMSource = 'agentinvite'
END
--白名单
ELSE IF EXISTS(SELECT UserID FROM [ChipWhiteList] WHERE UserID = @UserID AND WhiteType = 1)
BEGIN
SET @UTMSource = 'agentinvite'
END
IF(@UTMSource = '')
BEGIN
--注册流量渠道
SELECT @UTMSource = Source FROM [UTM] WHERE UserID = @UserID
END
--魅力值
SELECT @Charm = Charm FROM [UserCharm] WHERE UserID = @UserID
--操作结果
SET @RetCode = 1
SELECT
@RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
@VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
@Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
@HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
@AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
/*
--在5分钟内限制同一个ip段只能注册2个用户,超过了则不让注册,提示:“当前网络繁忙,请稍后尝试”
IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -5, @CurrTime) AND RegIP = @IPAddress) >= 5)
BEGIN
SET @RetCode = 13
SELECT
@RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
@VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
@Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
@HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
@AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
--同设备5分钟1个
IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -5, @CurrTime) AND deviceid = @deviceid) >= 1)
BEGIN
SET @RetCode = 13
SELECT
@RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
@VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
@Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
@HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
@AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
--同设备、同IP30分钟一个
IF((SELECT COUNT(RegTime) FROM [AllUser] WHERE RegTime >= DATEADD(MINUTE, -30, @CurrTime) AND deviceid = @deviceid AND RegIP = @IPAddress) >= 1)
BEGIN
SET @RetCode = 13
SELECT
@RetCode AS RetCode, 0 AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
@VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
@Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
@HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
@AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
*/
SET @Count = 0
--遍历100次
WHILE(@Count < 100)
BEGIN
--计数器+1
SET @Count = @Count + 1
--生成随机数
EXEC [Game_Rand_GetRnd] @Min = 1000000, @Max = 99999999, @Rnd = @Rnd OUTPUT
--判断是否存在
IF NOT EXISTS(SELECT UserID FROM [UserIdentity] WHERE UserID = @Rnd)
BEGIN
--添加
INSERT INTO [UserIdentity](UserID, IMei) VALUES(@Rnd, @IMei)
--用户ID
SET @UserID = @Rnd
BREAK
END
SET @Msg = N'注册游客生成帐号异常,UserID重复!关联的信息:@IMei=' + @IMei + ',@NickName=' + @NickName + ',@PartnerID=' + LTRIM(STR(@PartnerID)) +
',@Version=' + LTRIM(STR(@Version)) + ',@Count=' + LTRIM(STR(@Count))
--添加日志
EXEC [Game_Log_Add] @OpUserID = -1, @OpUserName = 'System', @IPAddress = @IPAddress, @Msg = @Msg, @Type = 2
END
--生成随机数
EXEC [Game_Rand_GetRnd] @Min = 100000, @Max = 999999, @Rnd = @Rnd OUTPUT
--生成MD5密码
SET @EPassword = dbo.fn_MD5(@Rnd)
--赠送数量
SELECT @PlatformName = PlatformName, @SendAmount = RegGoldSend FROM [PlatformConfig] WHERE ConfigID = 1
--有设备名称
IF(@PlatformName = 'Egypt' AND LEN(@DeviceName) > 0)
BEGIN
SET @NickName = @DeviceName + LTRIM(STR(@UserID))
END
--昵称为空的情况
ELSE IF(LEN(@NickName) <= 0)
BEGIN
SET @NickName = 'Guest' + LTRIM(STR(@UserID))
END
--新昵称(过滤特殊字符: ', <, >)
SET @NickName = Replace(Replace(Replace(@NickName, '<', ''), '''', ''),'>','')
--生成用户信息
INSERT INTO [AllUser]
(
UserID, NickName, PartnerID, IMei, EPassword, RegTime, RegIP,
LoginTime, IPAddress, PayMoney, deviceid, RegPartnerID, UserWords, DeviceName, Version
)
VALUES
(
@UserID, @NickName, @PartnerID, @IMei, @EPassword, @CurrTime, @IPAddress,
@CurrTime, @IPAddress, 0, @deviceid, @PartnerID, '', @DeviceName, @Version
)
--新用户注册
SET @IsReg = 1
--随机头像
EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 2, @Rnd = @Sex OUTPUT
--1=男
IF(@Sex = 1)
BEGIN
--随机头像,男性头像 1-5=普通头像, 6-10=vip头像
EXEC [Game_Rand_GetRnd] @Min = 1, @Max = 5, @Rnd = @FaceID OUTPUT
END
--2=女
ELSE IF(@Sex = 2)
BEGIN
--随机头像,女性头像 11-15=普通头像, 16-20=vip头像
EXEC [Game_Rand_GetRnd] @Min = 11, @Max = 15, @Rnd = @FaceID OUTPUT
END
--头像
INSERT INTO [UserFace](UserID, FaceID, FaceUrl, Sex) VALUES(@UserID, @FaceID, '', @Sex)
--新昵称
SET @NewNickName = @NickName
--登陆日志
INSERT INTO [UserLoginLog]
(
UserID, IMei, PartnerID, Version, LoginType, IPAddress, Crdate, DeviceName
)
VALUES
(
@UserID, @IMei, @PartnerID, @Version, 0, @IPAddress, @CurrTime, @DeviceName
)
IF(@SendAmount > 0)
BEGIN
--加金豆
EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = 'Register', @GameID = 0, @WantedAmount = @SendAmount,
@LogType = 5, @Remark = 'Visitor registration', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
END
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Money OUTPUT, @Bank = @Bank OUTPUT
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @ChipMoney OUTPUT, @Bank = @ChipBank OUTPUT
--Facebook 账号注册赠送
IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
BEGIN
SELECT @BindFacebook = BindFacebook FROM [PlatformConfig] WHERE ConfigID = 1
IF(@BindFacebook > 0)
BEGIN
EXEC [Game_Translate_Get] @Source = N'绑定账号奖励', @Target = @Title OUTPUT
EXEC [Game_Translate_Get] @Source = N'恭喜您获得绑定账号奖励,请及时查收附件', @Target = @Msg OUTPUT
--道具
SET @Tools = '[{"ItemId":1,"Count":' + LTRIM(STR(@BindFacebook)) + '}]'
--发送邮件
EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = @Title, @Content = @Msg, @Status = 0,
@SourceName = 'Facebook Register', @Crdate = @TimeStamp, @Tools = @Tools, @SysMsgID = @SysMsgID OUTPUT
END
END
--生成新手登录任务
INSERT INTO [NewUserGift]
(
UserID, DayIndex, Status, DateFlag
)
SELECT
@UserID, DayIndex, 0, @DateFlag + (DayIndex - 1)
FROM
[NewGiftConfig]
ORDER BY
DayIndex ASC
--用戶日常统计
--更新
UPDATE
[UserDailyStat]
SET
StillAmount = @Money, LoginCount = LoginCount + 1
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, 0, 0, @Money, '2021-01-01', '2021-01-01',
0, 0, 1, 0, 0
)
END
SET @IsGuest = CASE
WHEN LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' THEN 0
WHEN LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.' THEN 0
ELSE 1
END
IF(@PlatformName = 'ME')
BEGIN
--SET @Msg = N'https://t.me/MLKPOKER|مرحبا بك بلعبة طاولة العرب, تريد ان تكسب الكثير من العملات النقدية ؟ تريد المشاركة بالمسابقات للعبة ملك البوكر ؟ عندك سؤال او استفسار عن اللعبة ؟ ماذا تنظر ادخل مجموعة التلغرام ,هناك جوائز وهدايا كثيرة ومسابقات يومية واسبوعية ,ادخل الجروب وابدا بكسب الجوائز, العب ومرح وكسب اكثر مع طاولة العرب'
SET @Msg = N'بك بلعبة طاولة العرب, تريد ان تكسب الكثير من العملات النقدية ؟ تريد المشاركة بالمسابقات للعبة ملك البوكر ؟ عندك سؤال او استفسار عن اللعبة ؟ ماذا تنظر ادخل مجموعة التلغرام ,هناك جوائز وهدايا كثيرة ومسابقات يومية واسبوعية ,ادخل الجروب وابدا بكسب الجوائز, العب ومرح وكسب اكثر مع طاولة العرب'
EXEC [WS_SysMessage_Send] @UserID = @UserID, @Title = N'جوائز كبيرة على قناة التلغرام،اسرع ودخل مجموعة التلغرام', @Content = @Msg, @Status = 0,
@SourceName = 'Register', @Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
END
IF(@Currency = '')
BEGIN
SELECT @Currency = Currency FROM [ExchangeRate] WHERE IsDefault = 1
END
--操作成功
SET @RetCode = 1
SELECT
@RetCode AS RetCode, @UserID AS UserID, @NewNickName AS NewNickName, @FaceID AS FaceID,
@FaceUrl AS FaceUrl, @EPassword AS EPassword, @Money AS [Money], @PayMoney AS PayMoney,
@VipLevel AS VipLevel, CONVERT(CHAR(16), @ForbidTime, 120) AS ForbidTime, @Bank AS Bank,
@Sex AS Sex, @UserWords AS UserWords, @Code AS Code, @IsGuest AS IsGuest, @TeacherID AS TeacherID,
@HigherUserID AS HigherUserID, 0 AS Grade, @ChipMoney AS ChipMoney, @ChipBank AS ChipBank, @ChipSend AS ChipSend,
@AutoLoginChip AS AutoLoginChip, @IsReturn AS IsReturn, @IsReg AS IsReg, @Currency AS Currency,
@CurrencyIsModify AS CurrencyIsModify, @UTMSource AS UTMSource, @Charm AS Charm
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_SaveBankInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_SaveBankInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 保存银行账号信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_SaveBankInfo]
@UserID INT, --用户ID
@RealName VARCHAR(32), --真实姓名
@BankName VARCHAR(32), --银行名称
@BankCode VARCHAR(16), --银行码
@BankCard VARCHAR(32), --银行卡号
@Mobile VARCHAR(32), --手机号
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
INSERT INTO [UserBankInfo]
(
UserID, RealName, BankName, BankCode, BankCard, Mobile, Crdate
)
VALUES
(
@UserID, @RealName, @BankName, @BankCode, @BankCard, @Mobile, GETDATE()
)
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_SaveCountry] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_SaveCountry]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 保存国家地区
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_SaveCountry]
@UserID INT, --用户ID
@CountryName NVARCHAR(32), --国家名称
@Currency VARCHAR(32), --币种
@IsModify TINYINT --是否允许修改(1=允许修改 其他=禁止修改)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--修改信息
UPDATE
[UserCountry]
SET
CountryName = @CountryName, Currency = @Currency, IsModify = @IsModify
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserCountry]
(
UserID, CountryName, Currency, IsModify
)
VALUES
(
@UserID, @CountryName, @Currency, @IsModify
)
END
--返回
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AllUser_SearchInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AllUser_SearchInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 搜寻用户信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AllUser_SearchInfo]
@UserID INT, --用户ID
@ToUserID INT, --目标用户ID
@ToNickName NVARCHAR(32) --目标昵称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@ToUserID > 0)
BEGIN
--获取用户信息
SELECT UserID FROM [AllUser] WHERE UserID = @ToUserID
END
ELSE
BEGIN
SELECT UserID FROM [AllUser] WHERE NickName = @ToNickName
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Announce_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Announce_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 公告列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Announce_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, Title_En, Content_En, Title_Eg, Content_Eg,
Priority, Version, CONVERT(VARCHAR(20), BeginTime, 120) AS BeginTime,
CONVERT(VARCHAR(20), EndTime, 120) AS EndTime, Enabled
FROM
[Announce]
WHERE
EndTime >= GETDATE()
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddBlack] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_AddBlack]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 添加语音房黑名单
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_AddBlack]
@RoomID INT, --房间ID
@UserID INT, --用户ID
@BlackType TINYINT, --黑名单类型(1=房间黑名单 2=麦位黑名单)
@ExpireTime INT --过期时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--设置
UPDATE
[AudioRoomBlack]
SET
ExpireTime = dbo.fn_StampToTime(@ExpireTime)
WHERE
RoomID = @RoomID AND UserID = @UserID AND BlackType = @BlackType
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomBlack]
(
RoomID, UserID, BlackType, ExpireTime
)
VALUES
(
@RoomID, @UserID, @BlackType, dbo.fn_StampToTime(@ExpireTime)
)
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddGiftHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_AddGiftHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房礼物记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_AddGiftHistory]
@RoomID INT, --房间ID
@Sender INT, --发送方
@Receiver INT, --接收方
@GiftID INT, --礼物ID
@GiftNum INT, --礼物数量
@DiamondAmount INT, --钻石数
@GoldAmount INT --金币数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [AudioRoomGiftHistory]
(
RoomID, Sender, Receiver, GiftID, GiftNum, DiamondAmount, GoldAmount, Crdate
)
VALUES
(
@RoomID, @Sender, @Receiver, @GiftID, @GiftNum, @DiamondAmount, @GoldAmount, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddIncome] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_AddIncome]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--添加用户收益
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_AddIncome]
@UserID INT, --用户ID
@ItemType INT, --道具类型
@Balance DECIMAL(10, 2), --结余收益
@TotalProfit DECIMAL(18, 2) --累计收益
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserIncome]
SET
Balance = @Balance, TotalProfit = @TotalProfit
WHERE
UserID = @USerID AND ItemType = @ItemType
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserIncome]
(
UserID, ItemType, Balance, TotalProfit
)
VALUES
(
@UserID, @ItemType, @Balance, @TotalProfit
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddIncomeLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_AddIncomeLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--添加收益日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_AddIncomeLog]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@GameID INT, --游戏ID
@FromUserID INT, --源用户ID
@ItemType INT, --道具类型
@IncomeType INT, --收益类型
@UserType INT, --用户类型
@Amount BIGINT, --数量
@Profit DECIMAL(18, 2), --收益
@StillProfit DECIMAL(18, 2), --剩余收益
@RealProfit INT --实际收益
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加记录
INSERT INTO [UserIncomeLog]
(
UserID, RoomID, GameID, FromUserID, ItemType, IncomeType, UserType, Amount,
Profit, StillProfit, RealProfit, Crdate
)
VALUES
(
@UserID, @RoomID, @GameID, @FromUserID, @ItemType, @IncomeType, @UserType, @Amount,
@Profit, @StillProfit, @RealProfit, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddMicLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_AddMicLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 添加麦位日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_AddMicLog]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@RoleID INT, --角色ID
@SN SMALLINT, --麦位序号
@MicMode TINYINT, --麦位模式
@OnMicStamp INT, --上麦时间戳
@OffMicStamp INT, --下麦时间戳
@Seconds INT, --时长
@OpUserID INT --操作员ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [RoomMicLog]
(
UserID, RoleID, SN, RoomID, MicMode, OnMicTime, OffMicTime, Seconds, OpUserID
)
VALUES
(
@UserID, @RoleID, @SN, @RoomID, @MicMode, dbo.fn_StampToTime(@OnMicStamp), dbo.fn_StampToTime(@OffMicStamp), @Seconds, @OpUserID
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddOperateLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_AddOperateLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房添加操作记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_AddOperateLog]
@RoomID INT, --房间ID
@UserID INT, --用户ID
@ToUserID INT, --对象用户ID
@OperateType TINYINT --操作类型(10=强制下麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [AudioRoomOperateLog]
(
RoomID, UserID, ToUserID, OperateType, Crdate
)
VALUES
(
@RoomID, @UserID, @ToUserID, @OperateType, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_AddRoomExpLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_AddRoomExpLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 房间经验日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_AddRoomExpLog]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@Exps INT --经验值
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
UPDATE
[AudioRoomExpLog]
SET
Exps = Exps + @Exps
WHERE
DateFlag = @DateFlag AND RoomID = @RoomID AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomExpLog]
(
DateFlag, RoomID, UserID, Exps
)
VALUES
(
@DateFlag, @RoomID, @UserID, @Exps
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_Create] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_Create]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房创建
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_Create]
@RoomID INT, --房间ID
@RoomName NVARCHAR(32), --房间名称
@RoomImg VARCHAR(256), --房间图片
@UserID INT, --用户ID
@Family NVARCHAR(32), --家族
@Country NVARCHAR(32), --国家
@Language NVARCHAR(32), --语言
@MicCount INT, --上麦数量
@MicMode TINYINT, --麦位模式(0=房间内所有人自由上麦 1=加入为成员才可以上麦 2=仅限管理员邀请或者管理员才能上麦(包含创建者))
@JoinFee INT, --入会费
@Announce NVARCHAR(256), --公告内容
@Tag NVARCHAR(32), --标签
@MemberCount INT, --会员数
@Crdate DATETIME, --创建时间
@Level INT --等级
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--判断房间是否存在
IF EXISTS(SELECT RoomID FROM [AudioRoom] WHERE RoomID = @RoomID)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
INSERT INTO [AudioRoom]
(
RoomID, RoomName, RoomImg, UserID, Family, Country, Language, MicCount, MicMode,
JoinFee, Announce, Tag, MemberCount, Crdate, Level, Exps
)
VALUES
(
@RoomID, @RoomName, @RoomImg, @UserID, @Family, @Country, @Language, @MicCount, @MicMode,
@JoinFee, @Announce, @Tag, @MemberCount, @Crdate, @Level, 0
)
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_DelUserRoom] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_DelUserRoom]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 删除用户语音房信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_DelUserRoom]
@UserID INT, --用户ID
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--删除用户房间
DELETE FROM [UserAudioRoom] WHERE UserID = @UserID AND RoomID = @RoomID
--删除用户任务
DELETE FROM [UserRoomTask] WHERE UserID = @UserID AND RoomID = @RoomID
--删除贡献
DELETE FROM [UserContribute] WHERE UserID = @UserID AND RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetBlackList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetBlackList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房黑名单
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetBlackList]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
UserID, BlackType, dbo.fn_TimeToStamp(ExpireTime) AS ExpireTime
FROM
[AudioRoomBlack]
WHERE
RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetCollectList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetCollectList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取语聊房收集列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetCollectList]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
DayIndex, Points, Ratio, Award, Status
FROM
[RoomCollect]
WHERE
RoomID = @RoomID AND UpdateTime >= GETDATE() - 3
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetEnterCondition] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetEnterCondition]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房获取进入条件
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetEnterCondition]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
InviteOnly, Password, dbo.fn_TimeToStamp(PwdExpire) AS PwdExpire, IsHide
FROM
[AudioRoomEnterCondition]
WHERE
RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetExtInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetExtInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取语聊房扩展信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetExtInfo]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
DayExps, CollectDiamond, ScreenLock, dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime
FROM
[AudioRoomExt]
WHERE
RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetGameIncomeStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetGameIncomeStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--获取用户收益统计
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetGameIncomeStat]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@ItemType INT, --道具类型(1=金币 2=钻石)
@SortType INT, --排序类型 (11=收益降序 12=收益升序 21=礼物降序 22=礼物升序 31=游戏降序 32=游戏升序 41=下注降序 42=下注升序)
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
GameID INT NOT NULL, --游戏ID
Amount BIGINT NOT NULL, --投注额
Profit DECIMAL(18, 2) NOT NULL --游戏收益
)
SET @EndTime = @EndTime + 1
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
INSERT INTO @tmptable
(
GameID, Amount, Profit
)
SELECT
GameID, ISNULL(SUM(Amount), 0), ISNULL(SUM(Profit), 0)
FROM
[UserIncomeLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND ItemType = @ItemType AND IncomeType = 1
GROUP BY
GameID
--记录数
SET @RecordCount = @@ROWCOUNT
--11=收益降序
IF(@SortType = 11)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Profit DESC) AS RowNumber,
GameID, Amount, Profit
FROM
@tmptable
)
--返回信息
SELECT
GameID, Amount, Profit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--12=收益升序
ELSE IF(@SortType = 12)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Profit ASC) AS RowNumber,
GameID, Amount, Profit
FROM
@tmptable
)
--返回信息
SELECT
GameID, Amount, Profit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--41=下注降序
ELSE IF(@SortType = 41)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Amount DESC) AS RowNumber,
GameID, Amount, Profit
FROM
@tmptable
)
--返回信息
SELECT
GameID, Amount, Profit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--42=下注升序
ELSE IF(@SortType = 42)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Amount ASC) AS RowNumber,
GameID, Amount, Profit
FROM
@tmptable
)
--返回信息
SELECT
GameID, Amount, Profit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetIncomeLevel] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetIncomeLevel]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--获取收益等级
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetIncomeLevel]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT IncomeLevel FROM [UserIncomeLevel] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetIncomeList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetIncomeList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--获取收益列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetIncomeList]
@UserID INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
ItemType, Balance, TotalProfit
FROM
[UserIncome]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetIncomeLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetIncomeLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--获取收益日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetIncomeLog]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@FromUserID INT, --源用户ID
@ItemType INT, --道具类型(1=金币 2=钻石)
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
FromUserID INT NOT NULL, --源用户ID
GameID INT NOT NULL, --游戏ID
ItemType TINYINT NOT NULL, --道具类型(1=金币 2=钻石)
IncomeType INT NOT NULL, --收益类型(1=游戏收益 2=礼物收益)
UserType INT NOT NULL, --用户类型(1=普通用户 2=房主用户 3=VIP用户)
Amount BIGINT NOT NULL, --数量
Profit DECIMAL(18, 2) NOT NULL, --收益
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@FromUserID > 0)
BEGIN
INSERT INTO @tmptable
(
FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
Profit, Crdate
)
SELECT
FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
Profit, Crdate
FROM
[UserIncomeLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND FromUserID = @FromUserID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
Profit, Crdate
)
SELECT
FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
Profit, Crdate
FROM
[UserIncomeLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
FromUserID, GameID, ItemType, IncomeType, UserType, Amount,
Profit, Crdate
FROM
@tmptable
)
--返回信息
SELECT
FromUserId, GameId, ItemType, IncomeType, UserType, Amount,
Profit, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetInfo]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RoomID, RoomName, RoomImg, UserID, Family, Country, Language, MicCount, MicMode,
JoinFee, Announce, Tag, MemberCount, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate,
Level, Exps
FROM
[AudioRoom]
WHERE
RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetMembers] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetMembers]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房成员
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetMembers]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RoomID, UserID, RoleID, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate, Level, Exps
FROM
[UserAudioRoom]
WHERE
RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetMicInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetMicInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房麦位信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetMicInfo]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT MicInfo FROM [AudioRoomMic] WHERE RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetOperateLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetOperateLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房操作记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetOperateLog]
@RoomID INT, --房间ID
@ToUserID INT, --用户ID
@OperateType TINYINT, --操作类型(10=强制下麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @MinOperateType INT --最低操作类型
DECLARE @MaxOperateType INT --最高操作类型
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
ToUserID INT NOT NULL, --对象用户ID
OperateType TINYINT NOT NULL, --操作类型(10=强制下麦 21=禁麦 22=解麦 31=添加房间黑名单 32=移除房间黑名单)
Crdate DATETIME NOT NULL --时间
)
SET @CurrTime = CONVERT(CHAR(10), GETDATE(), 120)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @CurrTime = @CurrTime - 30
SET @MinOperateType = @OperateType * 10
SET @MaxOperateType = @MinOperateType + 9
--查询某个用户
IF(@ToUserID > 0)
BEGIN
INSERT INTO @tmptable
(
UserID, ToUserID, OperateType, Crdate
)
SELECT
UserID, ToUserID, OperateType, Crdate
FROM
[AudioRoomOperateLog]
WHERE
Crdate >= @CurrTime AND RoomID = @RoomID AND ToUserID = @ToUserID AND OperateType BETWEEN @MinOperateType AND @MaxOperateType
END
--所有用户
ELSE
BEGIN
INSERT INTO @tmptable
(
UserID, ToUserID, OperateType, Crdate
)
SELECT
UserID, ToUserID, OperateType, Crdate
FROM
[AudioRoomOperateLog]
WHERE
Crdate >= @CurrTime AND RoomID = @RoomID AND OperateType BETWEEN @MinOperateType AND @MaxOperateType
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
UserID, ToUserID, OperateType, Crdate
FROM
@tmptable
)
--返回信息
SELECT
UserID, ToUserID, OperateType, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetPermission] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetPermission]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取语音房权限
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetPermission]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
PermissionType, Enabled
FROM
[AudioRoomPermission]
WHERE
RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetTaskList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetTaskList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取语聊房任务列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetTaskList]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
TaskID, Schedule, CurrNum, dbo.fn_TimeToStamp(UpdateTime) AS TimeStamp
FROM
[RoomTask]
WHERE
RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserAttention] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserAttention]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户语音房关注信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserAttention]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT RoomSet FROM [AudioRoomAttention] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserBrowse] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserBrowse]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户语音房浏览信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserBrowse]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT RoomSet FROM [AudioRoomBrowse] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserContribute] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserContribute]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取用户贡献
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserContribute]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RoomID, Action, Exps, dbo.fn_TimeToStamp(UpdateTime) AS Expire
FROM
[UserContribute]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserIncomeStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserIncomeStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--获取用户收益统计
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserIncomeStat]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@FromUserID INT, --源用户ID
@ItemType INT, --道具类型(1=金币 2=钻石)
@SortType INT, --排序类型 (11=收益降序 12=收益升序 21=礼物降序 22=礼物升序 31=游戏降序 32=游戏升序 41=下注降序 42=下注升序)
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@TotalGameProfit DECIMAL(18, 2) OUTPUT, --游戏总收益
@TotalGiftProfit DECIMAL(18, 2) OUTPUT --礼物总收益
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
FromUserID INT NOT NULL, --用户ID
GameProfit DECIMAL(18, 2) NOT NULL, --游戏收益
GiftProfit DECIMAL(18, 2) NOT NULL --礼物收益
)
SET @EndTime = @EndTime + 1
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@FromUserID > 0)
BEGIN
INSERT INTO @tmptable
(
FromUserID, GameProfit, GiftProfit
)
SELECT
FromUserID,
ISNULL(SUM(CASE WHEN IncomeType = 1 THEN Profit ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN IncomeType = 2 THEN Profit ELSE 0 END), 0)
FROM
[UserIncomeLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND ItemType = @ItemType AND FromUserID = @FromUserID
GROUP BY
FromUserID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
FromUserID, GameProfit, GiftProfit
)
SELECT
FromUserID,
ISNULL(SUM(CASE WHEN IncomeType = 1 THEN Profit ELSE 0 END), 0),
ISNULL(SUM(CASE WHEN IncomeType = 2 THEN Profit ELSE 0 END), 0)
FROM
[UserIncomeLog]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID AND RoomID = @RoomID AND ItemType = @ItemType
GROUP BY
FromUserID
END
--记录数
SET @RecordCount = @@ROWCOUNT
--收益总计
SELECT @TotalGameProfit = SUM(GameProfit), @TotalGiftProfit = SUM(GiftProfit) FROM @tmptable
SET @TotalGameProfit = ISNULL(@TotalGameProfit, 0)
SET @TotalGiftProfit = ISNULL(@TotalGiftProfit, 0)
--11=收益降序
IF(@SortType = 11)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY (GameProfit + GiftProfit) DESC) AS RowNumber,
FromUserID, GameProfit, GiftProfit
FROM
@tmptable
)
--返回信息
SELECT
FromUserId, GameProfit, GiftProfit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--12=收益升序
ELSE IF(@SortType = 12)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY (GameProfit + GiftProfit) ASC) AS RowNumber,
FromUserID, GameProfit, GiftProfit
FROM
@tmptable
)
--返回信息
SELECT
FromUserId, GameProfit, GiftProfit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--21=礼物收益降序
ELSE IF(@SortType = 21)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY GiftProfit DESC) AS RowNumber,
FromUserID, GameProfit, GiftProfit
FROM
@tmptable
)
--返回信息
SELECT
FromUserId, GameProfit, GiftProfit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--22=礼物收益升序
ELSE IF(@SortType = 22)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY GiftProfit ASC) AS RowNumber,
FromUserID, GameProfit, GiftProfit
FROM
@tmptable
)
--返回信息
SELECT
FromUserId, GameProfit, GiftProfit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--31=游戏收益降序
ELSE IF(@SortType = 31)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY GameProfit DESC) AS RowNumber,
FromUserID, GameProfit, GiftProfit
FROM
@tmptable
)
--返回信息
SELECT
FromUserId, GameProfit, GiftProfit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
--32=游戏收益升序
ELSE IF(@SortType = 32)
BEGIN
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY GameProfit ASC) AS RowNumber,
FromUserID, GameProfit, GiftProfit
FROM
@tmptable
)
--返回信息
SELECT
FromUserId, GameProfit, GiftProfit
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserJoin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserJoin]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户语音房信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserJoin]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RoomID, RoleID, Level, Exps, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[UserAudioRoom]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserRoomList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserRoomList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户语音房信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserRoomList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RoomID, RoleID, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[UserAudioRoom]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserTask]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房用户任务信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserTask]
@UserID INT, --用户ID
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
TaskID, Schedule, CurrNum, Status, dbo.fn_TimeToStamp(UpdateTime) AS TimeStamp
FROM
[UserRoomTask]
WHERE
UserID = @UserID AND RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_GetUserTaskStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_GetUserTaskStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房用户任务统计列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_GetUserTaskStat]
@RoomID INT --房间ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
TaskID, COUNT(UserID) AS FinishNum
FROM
[UserRoomTask]
WHERE
RoomID = @RoomID AND Status = 1 AND UpdateTime >= CONVERT(CHAR(10), GETDATE(), 120)
GROUP BY
TaskID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_RecommendRoom] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_RecommendRoom]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房推荐房间
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_RecommendRoom]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP 10
r.RoomID
FROM
[AudioRoom] r INNER JOIN [AllUser] u ON r.UserID = u.UserID
WHERE
u.IMei LIKE 'fb%'
ORDER BY
NEWID()
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_RecommendUser] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_RecommendUser]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房推荐用户
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_RecommendUser]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP 10 UserID FROM [AllUser] WHERE LoginTime >= GETDATE() - 5 ORDER BY NEWID()
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_RemoveBlack] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_RemoveBlack]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 移除语音房黑名单
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_RemoveBlack]
@RoomID INT, --房间ID
@UserID INT, --用户ID
@BlackType TINYINT --黑名单类型(1=房间黑名单 2=麦位黑名单)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--删除
DELETE FROM [AudioRoomBlack] WHERE RoomID = @RoomID AND UserID = @UserID AND BlackType = @BlackType
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_SaveUserAttention] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_SaveUserAttention]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 保存用户语音房关注列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_SaveUserAttention]
@UserID INT, --用户ID
@RoomSet VARCHAR(1024) --房间信息集
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [AudioRoomAttention] SET RoomSet = @RoomSet WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomAttention](UserID, RoomSet) VALUES(@UserID, @RoomSet)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_SaveUserBrowse] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_SaveUserBrowse]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 保存用户语音房浏览信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_SaveUserBrowse]
@UserID INT, --用户ID
@RoomSet VARCHAR(1024) --房间信息集
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [AudioRoomBrowse] SET RoomSet = @RoomSet WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomBrowse](UserID, RoomSet) VALUES(@UserID, @RoomSet)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_SaveUserRoom] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_SaveUserRoom]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 保存用户语音房信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_SaveUserRoom]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@RoleID INT, --角色ID
@Crdate VARCHAR(20) --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新信息
UPDATE
[UserAudioRoom]
SET
RoleID = @RoleID
WHERE
UserID = @UserID AND RoomID = @RoomID
IF(@@ROWCOUNT = 0)
BEGIN
--添加用户语音房
INSERT INTO [UserAudioRoom]
(
UserID, RoomID, RoleID, Level, Exps, DayExps, UpdateTime, Crdate
)
VALUES
(
@UserID, @RoomID, @RoleID, 1, 0, 0, @Crdate, @Crdate
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_Search] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_Search]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_Search]
@RoomName NVARCHAR(32) --房间名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RoomID, RoomName, RoomImg, UserID, Family, Country, Language,
MicCount, JoinFee, Announce, Tag, MemberCount, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[AudioRoom]
WHERE
RoomName = @RoomName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_SetEnterCondition] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_SetEnterCondition]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房设置进入条件
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_SetEnterCondition]
@RoomID INT, --房间ID
@InviteOnly TINYINT, --只能邀请加入
@Password VARCHAR(16), --密码
@PwdExpire INT, --密码过期时间
@IsHide TINYINT --是否隐藏
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--修改密码
UPDATE
[AudioRoomEnterCondition]
SET
InviteOnly = @InviteOnly, Password = @Password, PwdExpire = dbo.fn_StampToTime(@PwdExpire), IsHide = @IsHide
WHERE
RoomID = @RoomID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomEnterCondition]
(
RoomID, InviteOnly, Password, PwdExpire, IsHide
)
VALUES
(
@RoomID, @InviteOnly, @Password, dbo.fn_StampToTime(@PwdExpire), @IsHide
)
END
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_SetMicInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_SetMicInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房麦位设置
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_SetMicInfo]
@RoomID INT, --房间ID
@MicInfo VARCHAR(1024) --麦位信息
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [AudioRoomMic] SET MicInfo = @MicInfo WHERE RoomID = @RoomID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomMic](RoomID, MicInfo) VALUES(@RoomID, @MicInfo)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_SetPermission] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_SetPermission]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 设置语音房权限
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_SetPermission]
@RoomID INT, --房间ID
@PermissionType TINYINT, --权限类型(1=麦位锁)
@Enabled TINYINT --是否启用(0=未启用 1=已启用)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--修改
UPDATE [AudioRoomPermission] SET Enabled = @Enabled WHERE RoomID = @RoomID AND PermissionType = @PermissionType
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomPermission]
(
RoomID, PermissionType, Enabled
)
VALUES
(
@RoomID, @PermissionType, @Enabled
)
END
--设置成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房修改
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_Update]
@RoomID INT, --房间ID
@RoomName NVARCHAR(32), --房间名称
@RoomImg VARCHAR(256), --房间图片
@UserID INT, --用户ID
@Family NVARCHAR(32), --家族
@Country NVARCHAR(32), --国家
@Language NVARCHAR(32), --语言
@MicCount INT, --上麦数量
@MicMode TINYINT, --麦位模式(0=房间内所有人自由上麦 1=加入为成员才可以上麦 2=仅限管理员邀请或者管理员才能上麦(包含创建者))
@JoinFee INT, --入会费
@Announce NVARCHAR(256), --公告内容
@Tag NVARCHAR(32) --标签
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
UPDATE
[AudioRoom]
SET
RoomName = @RoomName, RoomImg = @RoomImg, Family = @Family, Country = @Country, Language = @Language,
MicCount = @MicCount, MicMode = @MicMode, JoinFee = @JoinFee, Announce = @Announce, Tag = @Tag
WHERE
RoomID = @RoomID AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateCollect] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateCollect]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 修改语聊房收集
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateCollect]
@RoomID INT, --房间ID
@DayIndex INT, --日索引
@Points INT, --点数
@Ratio INT, --比率
@Award VARCHAR(64), --奖励
@Status INT --状态
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[RoomCollect]
SET
Points = @Points, Ratio = @Ratio, Award = @Award, Status = @Status, UpdateTime = GETDATE()
WHERE
RoomID = @RoomID AND DayIndex = @DayIndex
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [RoomCollect]
(
RoomID, DayIndex, Points, Ratio, Award, Status, UpdateTime
)
VALUES
(
@RoomID, @DayIndex, @Points, @Ratio, @Award, @Status, GETDATE()
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateExps] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateExps]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房更新经验
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateExps]
@RoomID INT, --房间ID
@Level INT, --等级
@Exps INT --经验
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[AudioRoom]
SET
[Level] = @Level, Exps = @Exps
WHERE
RoomID = @RoomID
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateExt] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateExt]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 更新语聊房扩展信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateExt]
@RoomID INT, --房间ID
@DayExps INT, --日经验值
@CollectDiamond INT, --收集钻石
@ScreenLock TINYINT, --屏幕锁
@UpdateTime INT --更新时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[AudioRoomExt]
SET
DayExps = @DayExps, CollectDiamond = @CollectDiamond, ScreenLock = @ScreenLock, UpdateTime = dbo.fn_StampToTime(@UpdateTime)
WHERE
RoomID = @RoomID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AudioRoomExt]
(
RoomID, DayExps, CollectDiamond, ScreenLock, UpdateTime
)
VALUES
(
@RoomID, @DayExps, @CollectDiamond, @ScreenLock, dbo.fn_StampToTime(@UpdateTime)
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateIncomeLevel] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateIncomeLevel]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 语聊房--更新收益等级
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateIncomeLevel]
@UserID INT, --用户ID
@IncomeLevel INT --收益等级
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserIncomeLevel]
SET
IncomeLevel = @IncomeLevel
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserIncomeLevel]
(
UserID, IncomeLevel
)
VALUES
(
@UserID, @IncomeLevel
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateMembers] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateMembers]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房更新在线人数
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateMembers]
@RoomID INT, --房间ID
@MemberCount INT --会员数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [AudioRoom] SET MemberCount = @MemberCount WHERE RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateTask]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 修改语聊房任务
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateTask]
@RoomID INT, --房间ID
@TaskID INT, --任务ID
@Schedule INT, --进度
@CurrNum INT, --所需数值
@TimeStamp INT --时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[RoomTask]
SET
Schedule = @Schedule, CurrNum = @CurrNum, UpdateTime = dbo.fn_StampToTime(@TimeStamp)
WHERE
RoomID = @RoomID AND TaskID = @TaskID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [RoomTask]
(
RoomID, TaskID, Schedule, CurrNum, UpdateTime
)
VALUES
(
@RoomID, @TaskID, @Schedule, @CurrNum, dbo.fn_StampToTime(@TimeStamp)
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateUserContribute] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateUserContribute]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 更新用户贡献
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateUserContribute]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@Action INT, --动作
@Exps INT, --经验值
@Expire INT --过期时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserContribute]
SET
Action = @Action, Exps = @Exps, UpdateTime = dbo.fn_StampToTime(@Expire)
WHERE
UserID = @UserID AND RoomID = @RoomID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserContribute]
(
UserID, RoomID, Action, Exps, UpdateTime
)
VALUES
(
@UserID, @RoomID, @Action, @Exps, dbo.fn_StampToTime(@Expire)
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateUserExps] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateUserExps]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房用户经验
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateUserExps]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@Level INT, --等级
@Exps INT --经验
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserAudioRoom]
SET
Level = @Level, Exps = @Exps
WHERE
UserID = @UserID AND RoomID = @RoomID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_AudioRoom_UpdateUserTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_AudioRoom_UpdateUserTask]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 语音房用户任务修改
-- ==============================================
CREATE PROCEDURE [dbo].[WS_AudioRoom_UpdateUserTask]
@UserID INT, --用户ID
@RoomID INT, --房间ID
@TaskID INT, --任务ID
@Schedule INT, --进度
@CurrNum INT, --当前值
@Status INT, --状态(0=进行中 1=完成)
@TimeStamp INT --时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserRoomTask]
SET
Schedule = @Schedule, CurrNum = @CurrNum, Status= @Status, UpdateTime = dbo.fn_StampToTime(@TimeStamp)
WHERE
UserID = @UserID AND RoomID = @RoomID AND TaskID = @TaskID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserRoomTask]
(
UserID, RoomID, TaskID, Schedule, CurrNum, Status, UpdateTime
)
VALUES
(
@UserID, @RoomID, @TaskID, @Schedule, @CurrNum, @Status, dbo.fn_StampToTime(@TimeStamp)
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_bank_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_bank_GetLog]
-- ==============================================
-- Author: Lincoln
-- Create Date: 2018-03-20
-- Mendor: Lincoln
-- Alter Date: 2018-03-20
-- Description: 获取保险柜日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_bank_GetLog]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
ToUserID INT NOT NULL, --目标用户ID
WantedAmount BIGINT NOT NULL, --修改数量
StillAmount BIGINT NOT NULL, --剩余数量
IPAddress VARCHAR(16) NOT NULL, --IP地址
Crdate DATETIME NOT NULL --时间
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--初始化表变量
INSERT INTO @tmptable
(
UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
)
SELECT
UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
FROM
[BankLog]
WHERE
Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND WantedAmount != 0
--记录数
SET @RecordCount = @@ROWCOUNT
--没有数据
IF(@RecordCount = 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
)
SELECT TOP 100
UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
FROM
[BankLog]
WHERE
Crdate >= GETDATE() - 60 AND UserID = @UserID AND WantedAmount != 0
ORDER BY
Rid DESC
--记录数
SET @RecordCount = @@ROWCOUNT
END
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
UserID, ToUserID, WantedAmount, StillAmount, IPAddress, Crdate
FROM
@tmptable
)
--返回信息
SELECT
CASE
WHEN UserID != ToUserID AND WantedAmount < 0 THEN 'Safe'
WHEN UserID != ToUserID AND WantedAmount > 0 THEN LTRIM(STR(ToUserID))
WHEN WantedAmount > 0 AND IPAddress = '127.0.0.1' THEN 'Interest'
WHEN WantedAmount > 0 THEN 'Cash'
WHEN WantedAmount < 0 THEN 'Safe'
ELSE ''
END AS OpFrom,
CASE
WHEN UserID != ToUserID AND WantedAmount < 0 THEN LTRIM(STR(ToUserID))
WHEN UserID != ToUserID AND WantedAmount > 0 THEN 'Safe'
WHEN WantedAmount > 0 THEN 'Safe'
WHEN WantedAmount < 0 THEN 'Cash'
ELSE ''
END AS OpTo, WantedAmount, StillAmount, CONVERT(CHAR(20), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_BetRecord_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_BetRecord_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 游戏记录查询
-- ==============================================
CREATE PROCEDURE [dbo].[WS_BetRecord_GetList]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@Days TINYINT, --天数(0=今天 1=昨天 7=最近一周 all=最近30天)
@PageIndex INT, --页索引
@PageSize INT, --页大小
@TotalBetAmount BIGINT OUTPUT, --总投注额
@TotalResultAmount BIGINT OUTPUT, --总结算额
@TotalWinAmount BIGINT OUTPUT, --总输赢
@RecordCount INT OUTPUT, --记录数
@BetZone VARCHAR(128) = ''
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @BeginTime DATETIME --开始时间
--表变量
DECLARE @tmptable TABLE(
GameID INT NOT NULL, --游戏ID
BetAmount BIGINT NOT NULL, --下注金额
BetTime DATETIME NOT NULL, --下注时间
ResultAmount BIGINT NOT NULL, --结算金额
Tax BIGINT NOT NULL, --台费
Status TINYINT NOT NULL, --状态 1=下注 2=结算 3=撤销
BetZone VARCHAR(128) NOT NULL, --下注区域
ResultZone VARCHAR(1024) NOT NULL --结算区域
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @CurrTime = GETDATE()
SET @BeginTime = CONVERT(CHAR(10), @CurrTime - @Days, 120)
SET @TotalBetAmount = 0
SET @TotalResultAmount = 0
SET @TotalWinAmount = 0
--查询某个游戏
IF(@GameID > 0)
BEGIN
IF(LEN(@BetZone) > 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
)
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID AND BetZone = @BetZone
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID AND BetZone = @BetZone
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID AND BetZone = @BetZone
END
ELSE
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
)
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND GameID = @GameID
END
END
--所有游戏
ELSE
BEGIN
IF(LEN(@BetZone) > 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
)
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND BetZone = @BetZone
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND BetZone = @BetZone
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID AND BetZone = @BetZone
END
ELSE
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
)
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[Bet]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfo]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID
UNION ALL
SELECT
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
[BetInfoHistory]
WHERE
BetTime BETWEEN @BeginTime AND @CurrTime AND UserID = @UserID
END
END
--记录数
SET @RecordCount = @@ROWCOUNT
--总投注额、总结算金额
SELECT
@TotalBetAmount = SUM(BetAmount), @TotalResultAmount = SUM(ResultAmount),
@TotalWinAmount = SUM(ResultAmount - BetAmount)
FROM
@tmptable
SET @TotalBetAmount = ISNULL(@TotalBetAmount, 0)
SET @TotalResultAmount = ISNULL(@TotalResultAmount, 0)
SET @TotalWinAmount = ISNULL(@TotalWinAmount, 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY BetTime DESC) AS RowNumber,
GameID, BetAmount, BetTime, ResultAmount, Tax, Status, BetZone, ResultZone
FROM
@tmptable
)
--返回信息
SELECT
g.ChineseName, l.BetAmount, CONVERT(VARCHAR(16), l.BetTime, 120) AS BetTime,
l.ResultAmount, l.Tax, l.Status, (l.ResultAmount - l.BetAmount) AS WinAmount,
g.EnglishName, l.BetZone, l.ResultZone
FROM
[List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Cash_AddTransferLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Cash_AddTransferLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 添加赠送记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Cash_AddTransferLog]
@UserID INT, --转账方ID
@NickName NVARCHAR(32), --转账方昵称
@AcceptUserID INT, --接收方ID
@AcceptNickName NVARCHAR(32), --接收方昵称
@WantAmount BIGINT, --要转多少金币,保证为正数
@TaxAmount BIGINT, --税
@IPAddress VARCHAR(15) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
--转账日志
INSERT INTO [TransferLog]
(
[UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
[AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
[TaxAmount], [IPAddress], [Memo], [Crdate]
)
VALUES
(
@UserID, @NickName, 0, -@WantAmount, 0,
@AcceptUserID, @AcceptNickName, 0, @WantAmount, 0,
@TaxAmount, @IPAddress, '', GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Cash_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Cash_GetLog]
-- ==============================================
-- Author: Lincoln
-- Create Date: 2018-03-20
-- Mendor: Lincoln
-- Alter Date: 2018-03-20
-- Description: 现金日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Cash_GetLog]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
LogID INT NOT NULL, --日志ID
GameID INT NOT NULL, --游戏ID
SourceName NVARCHAR(32) NOT NULL, --源名称
ModifyAmount BIGINT NOT NULL, --修改数量
StillAmount BIGINT NOT NULL, --剩余数量
Crdate DATETIME NOT NULL, --时间
LogType INT NOT NULL --日志类型
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--初始化表变量
INSERT INTO @tmptable
(
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
)
SELECT
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
FROM
[MoneyLog]
WHERE
Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
UNION ALL
SELECT
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
FROM
[MoneyLog_bak]
WHERE
Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
FROM
@tmptable
)
--返回信息
SELECT
CASE
WHEN l.GameID = 11 THEN g.ChineseName
WHEN l.GameID < 20 THEN l.SourceName
ELSE g.ChineseName
END AS ChineseName,
l.ModifyAmount, l.StillAmount, l.Crdate
FROM
[List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CasinoOnline_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CasinoOnline_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-16
-- Mendor: wolf
-- Alter Date: 2016-04-19
-- Description: 获取金币锁房间信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CasinoOnline_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @GameID INT --游戏ID
DECLARE @ServerName NVARCHAR(32) --服务器名称
SET @GameID = 0
SET @ServerName = ''
SELECT @GameID = GameID, @ServerName = ServerName FROM [CasinoOnline] WHERE UserID = @UserID
--返回信息
SELECT @GameID AS GameID, @ServerName AS ServerName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Chip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Chip_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-02
-- Mendor: wolf
-- Alter Date: 2014-12-10
-- Description: 获取筹码
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Chip_GetInfo]
@UserID INT, --用户ID
@Gold BIGINT OUTPUT, --金币数
@Bank BIGINT OUTPUT --保险柜
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @Gold = 0
SET @Bank = 0
--金币
EXEC [Game_Chip_GetInfo] @userid = @UserID, @Amount = @Gold OUTPUT, @Bank = @Bank OUTPUT
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Chip_GetLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Chip_GetLog]
-- ==============================================
-- Author: Lincoln
-- Create Date: 2018-03-20
-- Mendor: Lincoln
-- Alter Date: 2018-03-20
-- Description: 筹码日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Chip_GetLog]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
LogID INT NOT NULL, --日志ID
GameID INT NOT NULL, --游戏ID
SourceName NVARCHAR(32) NOT NULL, --源名称
ModifyAmount BIGINT NOT NULL, --修改数量
StillAmount BIGINT NOT NULL, --剩余数量
Crdate DATETIME NOT NULL, --时间
LogType INT NOT NULL --日志类型
)
SET @RecordCount = 0
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @EndTime = CONVERT(CHAR(11), @EndTime, 120) + '23:59:59'
--初始化表变量
INSERT INTO @tmptable
(
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
)
SELECT
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
FROM
[ChipLog]
WHERE
Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
UNION ALL
SELECT
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
FROM
[ChipLog_bak]
WHERE
Crdate >= @BeginTime AND Crdate <= @EndTime AND UserID = @UserID AND MoneyType = 'CASH' AND ModifyAmount != 0
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY LogID DESC) AS RowNumber,
LogID, GameID, SourceName, ModifyAmount, StillAmount, Crdate, LogType
FROM
@tmptable
)
--返回信息
SELECT
CASE
WHEN l.GameID = 11 THEN g.ChineseName
WHEN l.GameID < 20 THEN l.SourceName
ELSE g.ChineseName
END AS ChineseName,
l.ModifyAmount, l.StillAmount, l.Crdate
FROM
[List] l INNER JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Chip_Give] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [WS_Chip_Give]
-- @UserID = 10001,
-- @SourceName = '',
-- @Amount = 100,
-- @LogType = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-09-04
-- Description: 加筹码接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Chip_Give]
@UserID INT, --用户ID
@Amount BIGINT, --金币数
@LogType INT, --日志类型
@SourceName NVARCHAR(64), --源名称
@Remark NVARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述: 1=操作成功 11=传入参数错误
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--加筹码
EXEC [Game_Chip_Give] @UserID = @UserID, @SourceName = @SourceName, @GameID = 0, @WantedAmount = @Amount,
@LogType = @LogType, @Remark = @Remark, @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Chip_Reduce] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Chip_Reduce]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 扣除金币接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Chip_Reduce]
@UserID INT, --用户ID
@Amount BIGINT, --操作金币(必须>0)
@LogType INT, --日志类型
@SourceName VARCHAR(64), --源名称
@Remark VARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述:1=操作成功 11=金币不足 12=参数异常 21=金币锁
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--扣减(检查泥码)
EXEC [Game_Chip_Reduce] @UserID = @UserID, @WantedAmount = @Amount, @LogType = @LogType,
@SourceName = @SourceName, @GameID = 0, @Remark = @Remark, @IPAddress = @IPAddress,
@RetCode = @RetCode OUTPUT
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_AwardTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_AwardTask]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务领奖
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_AwardTask]
@UserTaskID INT, --用户任务ID
@UserID INT, --用户ID
@Status TINYINT --状态(1=领取 2=领取多倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @GiftStatus TINYINT --状态(0=进行中 1=已领取 2=已领取多倍)
SET @RetCode = 0
SET @GiftStatus = 0
--参数异常
IF(@Status IS NULL OR @Status NOT IN (1, 2))
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--获取信息
SELECT
@GiftStatus = GiftStatus
FROM
[UserCouponTask]
WHERE
UserTaskID = @UserTaskID AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--都已经领取过了
IF(@GiftStatus = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--领取单次
IF(@Status = 1 AND @GiftStatus = 1)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
--领取多次
IF(@Status = 2 AND @GiftStatus = 2)
BEGIN
SET @RetCode = 14
SELECT @RetCode AS RetCode
RETURN
END
--修改状态
UPDATE
[UserCouponTask]
SET
GiftStatus = CASE
WHEN @Status = 1 THEN 1 --普通领取
WHEN @Status = 2 THEN 2 --多倍领取
END
WHERE
UserTaskID = @UserTaskID
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_GetSwitchInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_GetSwitchInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券系统任务开关
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_GetSwitchInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT IsCouponTask FROM [PlatformConfig] WHERE ConfigID = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_GetSysList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_GetSysList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券系统任务
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_GetSysList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
TaskID, GameID, BaseScore, Players, DoubleType, Coupons
FROM
[CouponTask]
ORDER BY
TaskID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_GetTaskList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_GetTaskList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_GetTaskList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP 50
UserTaskID, GameID, BaseScore, GameCount, Coupons, GiftStatus,
CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[UserCouponTask]
WHERE
Crdate >= GETDATE() - 5 AND UserID = @UserID
ORDER BY
UserTaskID DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_GetUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_GetUserInfo]
@UserID INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @IsFacebook TINYINT --是否Facebook账户
SET @IsFacebook = 0
--获取用户信息
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
--判断是否是google账号
IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.' OR LEFT(@deviceid, 3) = 'gg.')
BEGIN
SET @IsFacebook = 1
END
--还没有数据
IF NOT EXISTS(SELECT UserID FROM [UserCouponInfo] WHERE UserID = @UserID)
BEGIN
INSERT INTO [UserCouponInfo]
(
UserID, TodayCount, BaseLimit, PlayTimes, TmpAdd, UpdateTime
)
VALUES
(
@UserID, 0, 1000, 0, 0, GETDATE()
)
END
--返回信息
SELECT
TodayCount, BaseLimit, TmpAdd, PlayTimes,
dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime,
@IsFacebook AS IsFacebook
FROM
[UserCouponInfo]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_GetVideoConfig] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_GetVideoConfig]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券广告播放配置
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_GetVideoConfig]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
PlayTimes, CouponLimit
FROM
[CouponVideoConfig]
ORDER BY
PlayTimes ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_InsertTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_InsertTask]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务新增
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_InsertTask]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@BaseScore INT, --底分
@GameCount SMALLINT, --游戏局数(1~3局)
@Coupons INT, --券数量
@GiftStatus TINYINT --状态(0=进行中 1=完成,可领取 2=已领取 3=已领取多倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @UserTaskID INT --用户任务ID
SET @UserTaskID = 0
--新增
INSERT INTO [UserCouponTask]
(
UserID, GameID, BaseScore, GameCount, Coupons, GiftStatus, Crdate
)
VALUES
(
@UserID, @GameID, @BaseScore, @GameCount, @Coupons, @GiftStatus, GETDATE()
)
SET @UserTaskID = SCOPE_IDENTITY()
--返回
SELECT @UserTaskID AS UserTaskID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_Reset] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_Reset]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务信息跨天重置
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_Reset]
@UserID INT, --用户ID
@TodayCount INT, --今天券数量
@TmpAdd INT, --临时加成
@PlayTimes INT, --观看次数
@UpdateTime INT --时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserCouponInfo]
SET
TodayCount = @TodayCount, TmpAdd = @TmpAdd, PlayTimes = @PlayTimes,
UpdateTime = dbo.fn_StampToTime(@UpdateTime)
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_UpdateInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_UpdateInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务信息修改
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_UpdateInfo]
@UserID INT, --用户ID
@TodayCount INT, --今天券数量
@UpdateTime INT --时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserCouponInfo]
SET
TodayCount = @TodayCount, UpdateTime = dbo.fn_StampToTime(@UpdateTime)
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_UpdateLimit] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_UpdateLimit]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务上限修改
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_UpdateLimit]
@UserID INT, --用户ID
@BaseLimit INT, --基础上限
@PlayTimes INT, --播放次数
@TmpAdd INT --临时加成
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--修改信息
UPDATE
[UserCouponInfo]
SET
BaseLimit = @BaseLimit, PlayTimes = @PlayTimes, TmpAdd = @TmpAdd
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_CouponTask_UpdateTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_CouponTask_UpdateTask]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 券任务更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_CouponTask_UpdateTask]
@UserID INT, --用户ID
@UserTaskID INT, --用户任务ID
@GameCount SMALLINT, --游戏局数(1~3局)
@Coupons INT --券数量
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserCouponTask]
SET
GameCount = @GameCount, Coupons = @Coupons
WHERE
UserTaskID = @UserTaskID AND UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Exchange_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Exchange_GetHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 兑换历史
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Exchange_GetHistory]
@UserID INT, --用户ID
@ExchangeID INT, --兑换ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
ExchangeID INT NOT NULL, --兑换ID
ExchangeType INT NOT NULL, --兑换类型(1=奖券兑换金币 2=代理兑换元宝 3=代理兑换电话卡 4=代理兑换RP)
Price INT NOT NULL, --价格
Items VARCHAR(128) NOT NULL, --物品
Remark NVARCHAR(1024) NOT NULL, --备注
Status TINYINT NOT NULL, --状态(0=待发货 1=已发货)
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--获取某个兑换
IF(@ExchangeID > 0)
BEGIN
--初始化
INSERT INTO @tmptable(ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate)
SELECT
ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
FROM
[ExchangeHistory]
WHERE
UserID = @UserID AND ExchangeID = @ExchangeID
END
--获取所有兑换
ELSE
BEGIN
--初始化
INSERT INTO @tmptable(ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate)
SELECT
ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
FROM
[ExchangeHistory]
WHERE
UserID = @UserID
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
FROM
@tmptable
)
--返回信息
SELECT
ExchangeID, ExchangeType, Price, Items, Remark, Status, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Exchange_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Exchange_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 兑换列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Exchange_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Id, ExchangeType, LeftCount, LimitOnce, VipNeed, Price, Items, Memo, VipShow, GameCountShow
FROM
[Exchange]
ORDER BY
Id ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Exchange_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Exchange_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 更新兑换数值
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Exchange_Update]
@ExchangeID INT, --兑换ID
@LeftCount INT, --剩余数量,如果小于0,则表示缺货
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--更新兑换剩余数量
UPDATE [Exchange] SET LeftCount = @LeftCount WHERE ID = @ExchangeID AND LeftCount >= @LeftCount
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Exchange_UserExchange] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Exchange_UserExchange]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 用户兑换
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Exchange_UserExchange]
@UserID INT, --用户ID
@ExchangeID INT, --兑换ID
@ExchangeType INT, --兑换类型(1=奖券 2=代理收益)
@Price DECIMAL(18, 2), --价格
@Items VARCHAR(128), --物品
@Remark NVARCHAR(1024), --备注
@Status TINYINT, --状态(0=待发货 1=已发货)
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加兑换历史
INSERT INTO [ExchangeHistory]
(
UserID, ExchangeID, ExchangeType, Price, Items, Remark, Status, Crdate
)
VALUES
(
@UserID, @ExchangeID, @ExchangeType, @Price, @Items, @Remark, @Status, GETDATE()
)
--兑换成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_ExchangeCard_Use] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_ExchangeCard_Use]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 充值卡使用
-- ==============================================
CREATE PROCEDURE [dbo].[WS_ExchangeCard_Use]
@UserID INT, --用户ID
@CardNo VARCHAR(32) --卡号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @RetCode TINYINT --操作结果
DECLARE @PerDays INT --每天(0=无限制 1=每1天)
DECLARE @UseTimes BIGINT --可使用次数
DECLARE @OpenTime DATETIME --开始时间
DECLARE @ExpireTime DATETIME --过期时间
DECLARE @Items VARCHAR(128) --物品
DECLARE @ErrorTimes INT --错误次数
DECLARE @ErrorTime DATETIME --错误时间
DECLARE @CoolSeconds INT --冷却时长
DECLARE @Minutes INT --分钟
SET @RetCode = 0
SET @ErrorTimes = 0
SET @CoolSeconds = 0
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @Minutes = 5
SET @Items = ''
--获取充值卡日志
SELECT
@ErrorTimes = ErrorTimes, @ErrorTime = Crdate
FROM
[CardErrorLog]
WHERE
UserID = @UserID
--初始化数据
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [CardErrorLog](UserID, ErrorTimes, Crdate) VALUES(@UserID, 0, @CurrTime)
END
--每5秒仅能输入1次兑换码
IF(@ErrorTime >= DATEADD(SECOND, -5, @CurrTime))
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--当5分钟内连续输错10次兑换码时,禁止使用此功能5分钟
IF(@ErrorTime >= DATEADD(MINUTE, -@Minutes, @CurrTime) AND @ErrorTimes >= 10)
BEGIN
SET @RetCode = 13
--计算冷却时间
SET @CoolSeconds = DATEDIFF(SECOND, @CurrTime, DATEADD(MINUTE, @Minutes, @ErrorTime))
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--兑换卡信息
SELECT
@PerDays = PerDays, @UseTimes = UseTimes, @OpenTime = OpenTime,
@ExpireTime = ExpireTime, @Items = Items
FROM
[ExchangeCard]
WHERE
CardNo = @CardNo
IF(@@ROWCOUNT = 0)
BEGIN
--超过5分钟
IF(@ErrorTime < DATEADD(MINUTE, -@Minutes, @CurrTime))
BEGIN
SET @ErrorTimes = 0
END
--错误次数+1
UPDATE
[CardErrorLog]
SET
ErrorTimes = @ErrorTimes + 1, Crdate = @CurrTime
WHERE
UserID = @UserID
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--还没到开放时间
IF(@OpenTime > @CurrTime)
BEGIN
SET @RetCode = 14
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--判断是否过期
IF(@ExpireTime < @CurrTime)
BEGIN
SET @RetCode = 15
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--判断是否还可以使用
IF(@UseTimes <= 0)
BEGIN
SET @RetCode = 16
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--判断当前时间段是否已经领取过
IF EXISTS(SELECT UserID FROM [ExchangeCardLog] WHERE UserID = @UserID AND CardNo = @CardNo AND Crdate >= @DateFlag - @PerDays)
BEGIN
SET @RetCode = 17
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--兑换卡使用记录
INSERT INTO [ExchangeCardLog](UserID, CardNo, Crdate) VALUES(@UserID, @CardNo, @CurrTime)
--充值卡使用记录
UPDATE [CardErrorLog] SET ErrorTimes = 0, Crdate = @CurrTime WHERE UserID = @UserID
--可使用次数-1
UPDATE [ExchangeCard] SET UseTimes = UseTimes - 1 WHERE CardNo = @CardNo AND UseTimes > 0
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 16
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
--使用成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @Items AS Items, @CoolSeconds AS CoolSeconds
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Feedback_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Feedback_Send]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 反馈
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Feedback_Send]
@EMail NVARCHAR(64), --邮箱
@ToUserID INT, --用户ID
@Msg NVARCHAR(512), --消息
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT
SET @RetCode = 1
--添加
INSERT INTO [Feedback]
(
EMail, ToUserID, Msg, Status, OpUserID, OpUserName, IPAddress, Crdate
)
VALUES
(
@EMail, @ToUserID, @Msg, 0, -1, '', @IPAddress, GETDATE()
)
--返回
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GameFreeChip_AddRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GameFreeChip_AddRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 添加用户游戏免费筹码记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GameFreeChip_AddRecord]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@FaceValue INT, --面值
@Amount INT --数量
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [UserGameFreeChipLog]
(
UserID, GameID, FaceValue, Amount, Crdate
)
VALUES
(
@UserID, @GameID, @FaceValue, @Amount, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GameInventory_AddRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GameInventory_AddRecord]
-- @GameID = 37
-- @RoomName = ''
-- @InventoryValue = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 添加游戏库存记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GameInventory_AddRecord]
@GameID INT, --游戏ID
@RoomName NVARCHAR(64), --房间名称
@RoomType INT, --房间类型(1.普通房间,2.加倍场,3.快速场)
@InventoryValue BIGINT, --库存值
@TaxAmount BIGINT = 0, --台费
@SysRecover BIGINT = 0
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加游戏库存记录
INSERT INTO [GameInventoryRecord]
(
GameID, RoomName, RoomType, InventoryValue, Crdate
)
VALUES
(
@GameID, @RoomName, @RoomType, @InventoryValue, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GameInventory_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GameInventory_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-06-29
-- Mendor: wolf
-- Alter Date: 2017-03-08
-- Description: 获取游戏库存列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GameInventory_GetList]
@GameID INT --游戏ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@GameID > 0)
BEGIN
--返回信息
SELECT
GameID, RoomName, RoomType, InventoryValue, ControlRate,
MinInventoryValue, MaxInventoryValue, MaxControlRate
FROM
[GameInventory]
WHERE
GameID = @GameID
ORDER BY
Rid ASC
RETURN
END
--返回信息
SELECT
GameID, RoomName, RoomType, InventoryValue, ControlRate,
MinInventoryValue, MaxInventoryValue, MaxControlRate
FROM
[GameInventory]
ORDER BY
Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GameInventory_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GameInventory_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-06-29
-- Mendor: wolf
-- Alter Date: 2017-03-08
-- Description: 更新或者修改单个库存
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GameInventory_Update]
@GameID INT, --游戏ID
@RoomName NVARCHAR(32), --场次名称
@RoomType INT, --房间类型(1.普通房间,2.加倍场,3.快速场)
@InventoryValue BIGINT, --实时库存值
@ControlRate DECIMAL(10, 2), --实时控制率
@MinInventoryValue BIGINT, --库存取值下限
@MaxInventoryValue BIGINT, --库存取值上限
@MaxControlRate INT --最高控制概率
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @StartInventoryValue BIGINT
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--库存统计
UPDATE
[GameInventoryTotal]
SET
InventoryValue = @InventoryValue
WHERE
DateFlag = @DateFlag AND GameID = @GameID AND RoomName = @RoomName AND RoomType = @RoomType
IF(@@ROWCOUNT = 0)
BEGIN
--获取前值
SELECT
@StartInventoryValue = InventoryValue
FROM
[GameInventory]
WHERE
GameID = @GameID AND RoomName = @RoomName AND RoomType = @RoomType
--初始化游戏库存统计
INSERT INTO [GameInventoryTotal]
(
DateFlag, GameID, RoomName, RoomType, StartInventoryValue, InventoryValue
)
VALUES
(
@DateFlag, @GameID, @RoomName, @RoomType, ISNULL(@StartInventoryValue, 0), @InventoryValue
)
END
--更新实时数据
UPDATE
[GameInventory]
SET
InventoryValue = @InventoryValue, ControlRate = @ControlRate,
MinInventoryValue = @MinInventoryValue, MaxInventoryValue = @MaxInventoryValue,
MaxControlRate = @MaxControlRate
WHERE
GameID = @GameID AND RoomName = @RoomName AND RoomType = @RoomType
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [GameInventory]
(
GameID, RoomName, InventoryValue, ControlRate,
MinInventoryValue, MaxInventoryValue, MaxControlRate, RoomType
)
VALUES
(
@GameID, @RoomName, @InventoryValue, @ControlRate,
@MinInventoryValue, @MaxInventoryValue, @MaxControlRate, @RoomType
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftCard_Gen] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftCard_Gen]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 生成礼品卡
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftCard_Gen]
@UserID INT, --用户ID
@ItemID INT, --道具ID
@Key VARCHAR(16) --兑换码
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [GiftCard]
(
UserID, ItemID, [Key], ActivateTime, OperateStatus, Crdate
)
VALUES
(
@UserID, @ItemID, @Key, 0, 0, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftCard_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftCard_GetHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取使用记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftCard_GetHistory]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP 100
ItemID, [Key], ActivateTime, OperateStatus
FROM
[GiftCard]
WHERE
Crdate > GETDATE() - 30 AND UserID = @UserID AND ActivateTime > 0
ORDER BY
ActivateTime DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftCard_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftCard_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取礼品卡列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftCard_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP 100
ItemID, [Key], CONVERT(CHAR(16), dbo.fn_TimeToStamp(ActivateTime), 120) AS ActivateTime, OperateStatus
FROM
[GiftCard]
WHERE
UserID = @UserID AND ActivateTime > 0
ORDER BY
ActivateTime DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftCard_Use] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftCard_Use]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 使用礼品卡
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftCard_Use]
@UserID INT, --用户ID
@ItemID INT --道具ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Rid INT --标识
DECLARE @Key VARCHAR(16) --兑换码
SET @Rid = 0
SET @Key = ''
--获取最新未激活
SELECT TOP 1
@Rid = Rid, @Key = [Key]
FROM
[GiftCard]
WHERE
UserID = @UserID AND ItemID = @ItemID AND ActivateTime = 0
ORDER BY
Rid DESC
--激活
IF(@@ROWCOUNT > 0)
BEGIN
UPDATE
[GiftCard]
SET
ActivateTime = dbo.fn_TimeToStamp(GETDATE())
WHERE
Rid = @Rid
END
--返回信息
SELECT @Rid AS Rid, @Key AS [Key]
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftPack_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftPack_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 礼包列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftPack_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
GiftPackId, PackName, Price, Limit, Items, Type, Duration, [Group], GroupIndex, ProductID
FROM
[GiftPack]
ORDER BY
GiftPackId ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftService_AddUserGift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftService_AddUserGift]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 添加用户礼物记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftService_AddUserGift]
@Sender INT, --发送方
@Receiver INT, --接收方
@GiftID INT, --礼物ID
@SendTime INT, --发送时间
@Items VARCHAR(128), --物品信息
@GiftType TINYINT = 0 --礼物类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Rid INT
SET @Rid = 0
INSERT INTO [UserGift]
(
Sender, Receiver, GiftID, GiftType, SendTime, ClaimTime, Items
)
VALUES
(
@Sender, @Receiver, @GiftID, @GiftType, @SendTime, 0, @Items
)
SET @Rid = SCOPE_IDENTITY()
SELECT @Rid AS Rid
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftService_ClaimUserGift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftService_ClaimUserGift]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 领取礼物
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftService_ClaimUserGift]
@UserID INT, --用户ID
@Rid INT, --流水号
@ClaimTime INT --领取时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Items VARCHAR(128)
SET @Items = ''
UPDATE
[UserGift]
SET
ClaimTime = @ClaimTime, @Items = Items
WHERE
Receiver = @UserID AND Rid = @Rid AND ClaimTime <= 0
--返回信息
SELECT @Items AS Items
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftService_GetClaimRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftService_GetClaimRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 领取礼物记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftService_GetClaimRecord]
@UserID INT, --用户ID
@GiftType TINYINT, --礼物类型
@Count INT --数量
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP (@Count)
GiftID, Items
FROM
[UserGift]
WHERE
Receiver = @UserID AND GiftType = @GiftType
ORDER BY
ClaimTime DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GiftService_GetUnclaimed] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GiftService_GetUnclaimed]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 礼物未领取
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GiftService_GetUnclaimed]
@UserID INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
Rid, Sender, Receiver, GiftId, SendTime, ClaimTime, Items
FROM
[UserGift]
WHERE
Receiver = @UserID AND ClaimTime = 0
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_GrowthPack_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_GrowthPack_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-02
-- Mendor: wolf
-- Alter Date: 2014-12-10
-- Description: 系统成长礼包
-- ==============================================
CREATE PROCEDURE [dbo].[WS_GrowthPack_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
GrowthPackID, PackName, Price, Terms, ProductID
FROM
[GrowthPack]
ORDER BY
GrowthPackID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_AddBetRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_AddBetRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 添加投注记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_AddBetRecord]
@UserID INT, --用户ID
@SerialNumber VARCHAR(32), --流水号
@BetID INT, --投注ID
@BetAmount INT --投注金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加投注记录
INSERT INTO [BetRecord]
(
UserID, SerialNumber, BetID, BetAmount, BetTime, ResultAmount
)
VALUES
(
@UserID, @SerialNumber, @BetID, @BetAmount, GETDATE(), 0
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetBetRecordList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetBetRecordList]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 获取赛事投注记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetBetRecordList]
@SerialNumber VARCHAR(32), --流水号
@BetID INT --投注ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, UserID AS UserId, BetAmount
FROM
[BetRecord]
WHERE
SerialNumber = @SerialNumber AND BetID = @BetID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetBetSettleList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetBetSettleList]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 获取赛事投注结算列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetBetSettleList]
@SerialNumber VARCHAR(32), --流水号
@BetID INT --投注ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, UserID AS UserId, BetAmount, ResultAmount
FROM
[BetRecord]
WHERE
SerialNumber = @SerialNumber AND BetID = @BetID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchBetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetMatchBetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜赛事投注列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetMatchBetList]
@SerialNumber VARCHAR(32) --流水号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
BetId, BetName, BetOdds, BetAmount, IsWin
FROM
[MatchBet]
WHERE
SerialNumber = @SerialNumber
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetMatchInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜赛事信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetMatchInfo]
@SerialNumber VARCHAR(32) --流水号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
SerialNumber, Title, Status, Result, dbo.fn_TimeToStamp(StartAt) AS StartAt, dbo.fn_TimeToStamp(EndAt) AS EndAt,
dbo.fn_TimeToStamp(ShowStartAt) AS ShowStartAt, dbo.fn_TimeToStamp(ShowEndAt) AS ShowEndAt
FROM
[Match]
WHERE
SerialNumber = @SerialNumber
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetMatchList]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜赛事列表(最近50天赛事)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetMatchList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT SerialNumber FROM [Match] WHERE StartAt >= GETDATE() - 30
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetMatchTeamList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetMatchTeamList]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜赛事球队列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetMatchTeamList]
@SerialNumber VARCHAR(32) --流水号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Rid, TeamId
FROM
[MatchTeam]
WHERE
SerialNumber = @SerialNumber
ORDER BY
Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetTeamList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetTeamList]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 竞猜球队列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetTeamList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Id, Name, Icon, ShortName
FROM
[Team]
ORDER BY
Id ASC
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetUserBetAmount] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetUserBetAmount]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 获取赛事投注
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetUserBetAmount]
@SerialNumber VARCHAR(32) --流水号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
UserID, BetID, SUM(BetAmount) AS BetAmount
FROM
[BetRecord]
WHERE
SerialNumber = @SerialNumber
GROUP BY
UserID, BetID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_GetUserBetRecordList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_GetUserBetRecordList]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 获取赛事投注记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_GetUserBetRecordList]
@UserID INT, --用户ID
@SerialNumber VARCHAR(32), --流水号
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
SerialNumber VARCHAR(32) NOT NULL, --赛事流水号
BetID INT NOT NULL, --投注id
BetAmount INT NOT NULL, --投注金额
ResultAmount INT NOT NULL --派奖金额
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@SerialNumber != '')
BEGIN
INSERT INTO @tmptable
(
SerialNumber, BetID, BetAmount, ResultAmount
)
SELECT
SerialNumber, BetID, SUM(BetAmount), SUM(ResultAmount)
FROM
[BetRecord]
WHERE
UserID = @UserID AND SerialNumber = @SerialNumber
GROUP BY
SerialNumber, BetID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
SerialNumber, BetID, BetAmount, ResultAmount
)
SELECT
SerialNumber, BetID, SUM(BetAmount), SUM(ResultAmount)
FROM
[BetRecord]
WHERE
UserID = @UserID
GROUP BY
SerialNumber, BetID
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS(
SELECT
ROW_NUMBER() OVER(ORDER BY SerialNumber DESC) AS RowNumber,
SerialNumber, BetID, BetAmount, ResultAmount
FROM
@tmptable
)
--返回信息
SELECT
SerialNumber, BetID, BetAmount, ResultAmount
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_UpdateBetAmount] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_UpdateBetAmount]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 修改竞猜投注项金额
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_UpdateBetAmount]
@SerialNumber VARCHAR(32), --流水号
@BetID INT, --投注ID
@BetAmount INT --投注金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--修改投注金额
UPDATE
[MatchBet]
SET
BetAmount = @BetAmount
WHERE
SerialNumber = @SerialNumber AND BetID = @BetID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Guess_UpdateMatchStatus] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Guess_UpdateMatchStatus]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 修改竞猜赛事状态
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Guess_UpdateMatchStatus]
@SerialNumber VARCHAR(32), --流水号
@Status TINYINT --状态(0=无效状态 1=开启状态 2=结束状态(停止下注) 3=已派奖)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DBStatus TINYINT --状态
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--赛事状态
SELECT @DBStatus = Status FROM [Match] WHERE SerialNumber = @SerialNumber
--1=开启
IF(@Status = 1 AND @DBStatus NOT IN(0, 1))
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--2=结束
IF(@Status = 2 AND @DBStatus != 1)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--3=派奖
IF(@Status = 3 AND @DBStatus != 2)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
--修改状态
UPDATE [Match] SET Status = @Status WHERE SerialNumber = @SerialNumber
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_HighlyProfitable_GetUserStageInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_HighlyProfitable_GetUserStageInfo]
-- @UserID INT -- 用户ID
-- ==============================================
-- Author: wolf
-- Create Date: 2023-10-09
-- Mendor: wolf
-- Alter Date: 2023-10-09
-- Description: 一本万利 获取用户当前阶段信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_HighlyProfitable_GetUserStageInfo]
@UserID INT -- 用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Schedule, Status
FROM
[HighlyProfitable]
WHERE
UserID = @UserID
END
GO
/****** Object: StoredProcedure [dbo].[WS_HighlyProfitable_SaveStageRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_HighlyProfitable_SaveStageRecord]
-- @UserID INT, -- 用户ID
-- @Schedule INT, -- 当前阶段
-- @Status TINYINT, -- 礼包的状态(0 未激活, 1 已激活, 2 未完成, 3 结束)【注:左上角激活就送与完成所有任务可领礼包状态】
-- @Crdate DATETIME -- 创建日期
-- ==============================================
-- Author: wolf
-- Create Date: 2023-10-09
-- Mendor: wolf
-- Alter Date: 2023-10-09
-- Description: 一本万利 保存阶段记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_HighlyProfitable_SaveStageRecord]
@UserID INT, -- 用户ID
@Schedule INT, -- 当前阶段
@Status TINYINT, -- 礼包的状态(0 未激活, 1 已激活, 2 未完成, 3 结束)【注:左上角激活就送与完成所有任务可领礼包状态】
@Crdate DATETIME -- 创建日期
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[HighlyProfitable]
SET
Schedule = @Schedule, Status = @Status
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [HighlyProfitable]
(
UserID, Schedule, Status, Crdate
)
VALUES
(
@UserID, @Schedule, @Status, @Crdate
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Item_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Item_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 系统道具数值列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Item_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
ItemID, ItemName, ItemType, ItemDesc, Start, Duration, ActiveId,
Value, IsShow, IsGift, ShowPrice, IconUrl, DecorationType
FROM
[Item]
ORDER BY
ItemID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_LadderService_GetConsecutiveRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LadderService_GetConsecutiveRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 排行赛
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LadderService_GetConsecutiveRecord]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT Record FROM [UserLadder] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_LadderService_GetUserLadderInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LadderService_GetUserLadderInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 排行赛
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LadderService_GetUserLadderInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Point, MaxCounWin, WinCount, LoseCount, DrawCount
FROM
[UserLadder]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_LadderService_GetUserSettlementRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LadderService_GetUserSettlementRecord]
-- @UserID = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2023-09-22
-- Mendor: wolf
-- Alter Date: 2023-09-22
-- Description: 获取排位赛用户结算记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LadderService_GetUserSettlementRecord]
@UserID INT -- 用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Point, WinCount, WinType
FROM
[LadderSettlementRecord]
WHERE
UserID = @UserID
END
GO
/****** Object: StoredProcedure [dbo].[WS_LadderService_SetConsecutiveRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LadderService_SetConsecutiveRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 排行赛
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LadderService_SetConsecutiveRecord]
@UserID INT, --用户ID
@Record VARCHAR(1024) --连胜记录
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [UserLadder] SET Record = @Record WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserLadder]
(
UserID, Point, MaxCounWin, WinCount, LoseCount, DrawCount, Record
)
VALUES
(
@UserID, 0, 0, 0, 0, 0, @Record
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_LadderService_SetUserLadderInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LadderService_SetUserLadderInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 排行赛
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LadderService_SetUserLadderInfo]
@UserID INT, --用户ID
@Point INT, --点数
@MaxCounWin INT, --最大连胜
@WinCount INT, --赢
@LoseCount INT, --输
@DrawCount INT --和
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserLadder]
SET
Point = @Point, MaxCounWin = @MaxCounWin, WinCount = @WinCount,
LoseCount = @LoseCount, DrawCount = @DrawCount
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserLadder]
(
UserID, Point, MaxCounWin, WinCount, LoseCount, DrawCount, Record
)
VALUES
(
@UserID, @Point, @MaxCounWin, @WinCount, @LoseCount, @DrawCount, ''
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_LadderService_SetUserSettlementRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LadderService_SetUserSettlementRecord]
-- @UserID = 1
-- @Point = 1
-- @WinCount = 1
-- @WinType = 0
-- @Crdate = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2023-09-22
-- Mendor: wolf
-- Alter Date: 2023-09-22
-- Description: 设置排位赛用户结算记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LadderService_SetUserSettlementRecord]
@UserID INT, -- 用户ID
@Point INT, -- 点数
@WinCount INT, -- 胜利次数
@WinType INT, -- 连胜类型
@Crdate DATETIME -- 创建日期
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[LadderSettlementRecord]
SET
Point = @Point, WinCount = @WinCount
WHERE
UserID = @UserID AND WinType = @WinType
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [LadderSettlementRecord]
(
UserID, Point, WinCount, WinType, Crdate
)
VALUES
(
@UserID, @Point, @WinCount, @WinType, @Crdate
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_LevelRewards_GetUserTaskList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LevelRewards_GetUserTaskList]
-- @UserID = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 等级礼包奖励 - 获取用户任务列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LevelRewards_GetUserTaskList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 返回信息
SELECT
UserID, [Level], PaidPack, ClaimStatus, CreateDayIndex
FROM
[UserLevelRewards]
WHERE
UserID = @UserID
ORDER BY
[Level] ASC, PaidPack ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_LevelRewards_UpdateUserTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_LevelRewards_UpdateUserTask]
-- @UserID = 0
-- @Level = 0
-- @PaidPack = 0
-- @ClaimStatus = 0
-- @CreateDayIndex = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 等级礼包奖励 - 更新用户任务
-- ==============================================
CREATE PROCEDURE [dbo].[WS_LevelRewards_UpdateUserTask]
@UserID INT, --用户ID
@Level INT, --等级要求
@PaidPack TINYINT, --付费礼包(0=不是,1=是)
@ClaimStatus TINYINT, --领取状态(0不可领取,1可领取,2已领取)
@CreateDayIndex INT --创建天的索引
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新
UPDATE
[UserLevelRewards]
SET
ClaimStatus = @ClaimStatus,
CreateDayIndex = @CreateDayIndex
WHERE
UserID = @UserID AND PaidPack = @PaidPack AND Level = @Level
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserLevelRewards]
(
UserID, Level, PaidPack, ClaimStatus, CreateDayIndex
)
VALUES
(
@UserID, @Level, @PaidPack, @ClaimStatus, @CreateDayIndex
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_MachineUser_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MachineUser_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 机器人列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MachineUser_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT UserID FROM [MachineUser] ORDER BY UserID ASC
END
GO
/****** Object: StoredProcedure [dbo].[WS_MatchCard_Use] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MatchCard_Use]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 比赛卡使用
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MatchCard_Use]
@UserID INT, --用户ID
@CardNo VARCHAR(32) --卡号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @RetCode TINYINT --操作结果
DECLARE @OpenTime DATETIME --开始时间
DECLARE @ExpireTime DATETIME --过期时间
DECLARE @ErrorTimes INT --错误次数
DECLARE @ErrorTime DATETIME --错误时间
DECLARE @CoolSeconds INT --冷却时长
DECLARE @Minutes INT --分钟
DECLARE @TimeMemo NVARCHAR(1024) --时间描述
DECLARE @SceneMemo NVARCHAR(2048) --场地描述
SET @RetCode = 0
SET @ErrorTimes = 0
SET @CoolSeconds = 0
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @Minutes = 1
SET @TimeMemo = ''
SET @SceneMemo = ''
--获取卡日志
SELECT
@ErrorTimes = ErrorTimes, @ErrorTime = Crdate
FROM
[CardErrorLog]
WHERE
UserID = @UserID
--初始化数据
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [CardErrorLog](UserID, ErrorTimes, Crdate) VALUES(@UserID, 0, @CurrTime)
END
--每5秒仅能输入1次兑换码
IF(@ErrorTime >= DATEADD(SECOND, -5, @CurrTime))
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
RETURN
END
--当5分钟内连续输错10次兑换码时,禁止使用此功能几分钟
IF(@ErrorTime >= DATEADD(MINUTE, -@Minutes, @CurrTime) AND @ErrorTimes >= 10)
BEGIN
SET @RetCode = 13
--计算冷却时间
SET @CoolSeconds = DATEDIFF(SECOND, @CurrTime, DATEADD(MINUTE, @Minutes, @ErrorTime))
SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
RETURN
END
--兑换卡信息
SELECT
@OpenTime = OpenTime, @ExpireTime = ExpireTime, @TimeMemo = TimeMemo,
@SceneMemo = SceneMemo
FROM
[MatchCard]
WHERE
CardNo = @CardNo
IF(@@ROWCOUNT = 0)
BEGIN
--超过5分钟
IF(@ErrorTime < DATEADD(MINUTE, -@Minutes, @CurrTime))
BEGIN
SET @ErrorTimes = 0
END
--错误次数+1
UPDATE
[CardErrorLog]
SET
ErrorTimes = @ErrorTimes + 1, Crdate = @CurrTime
WHERE
UserID = @UserID
SET @RetCode = 11
SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
RETURN
END
--还没到开放时间
IF(@OpenTime > @CurrTime)
BEGIN
SET @RetCode = 14
SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
RETURN
END
--判断是否过期
IF(@ExpireTime < @CurrTime)
BEGIN
SET @RetCode = 15
SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
RETURN
END
--兑换卡使用记录
INSERT INTO [MatchCardLog](UserID, CardNo, Crdate) VALUES(@UserID, @CardNo, @CurrTime)
--充值卡使用记录
UPDATE [CardErrorLog] SET ErrorTimes = 0, Crdate = @CurrTime WHERE UserID = @UserID
--可使用次数+1
UPDATE [MatchCard] SET UseTimes = UseTimes + 1 WHERE CardNo = @CardNo
--使用成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @CoolSeconds AS CoolSeconds, @TimeMemo AS TimeMemo, @SceneMemo AS SceneMemo
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_MatchData_AddStatistics] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MatchData_AddStatistics]
-- @MatchID = 100005
-- @MatchType = 'Combo'
-- @GameID = 37
-- @MaxUserCount = 20
-- @TableUserCount = 4
-- @JoinUserCount = 20
-- @EnrollFee = '30002,2000;'
-- @StartTime = 1692340700
-- @EndTime = 1692344337
-- @SerialNumber = '0'
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 赛事数据添加统计
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MatchData_AddStatistics]
@MatchID INT, --赛事ID
@MatchType VARCHAR(64), --101 SNG,102 配置赛
@GameID INT, --游戏ID
@MaxUserCount INT, --最多报名人数
@TableUserCount INT, --每张桌子人数
@JoinUserCount INT, --加入的用户数
@EnrollFee VARCHAR(256), --报名费(存在多种报名方式)[ItemId, Count]
@StartTime INT, --开始时间
@EndTime INT, --结束时间
@SerialNumber VARCHAR(32) OUTPUT --比赛场次
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回新的比赛场次
set @SerialNumber = CONVERT(NVARCHAR(8), GETDATE(), 112) + REPLACE( CONVERT ( VARCHAR ( 16 ), GETDATE( ), 114 ), ':', '' )
--添加赛事数据统计
INSERT INTO [MatchDataStatistics]
(
SerialNumber, MatchID, MatchType, GameID, EnrollFee, MaxUserCount, TableUserCount, JoinUserCount, StartTime, EndTime
)
VALUES
(
@SerialNumber, @MatchID, @MatchType, @GameID, @EnrollFee, @MaxUserCount, @TableUserCount,
@JoinUserCount, dbo.fn_StampToTime(@StartTime), dbo.fn_StampToTime(@EndTime)
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_MatchData_AddUser] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MatchData_AddUser]
-- @SerialNumber = '2023081801'
-- @Rank = 1
-- @UserID = 999
-- @ItemID = 10001
-- @ItemCount = 200
-- @EnrollTime = '2023-08-18 00:00:00'
-- @Score = 99
-- @Prize = '10004,200;'
-- ==============================================
-- Author: wolf
-- Create Date: 2023-08-18
-- Mendor: wolf
-- Alter Date: 2023-08-18
-- Description: 赛事数据添加用户
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MatchData_AddUser]
@SerialNumber VARCHAR(32), --比赛场次
@GameID INT, --游戏ID
@Rank INT, --排名
@UserID INT, --用户ID
@ItemID INT, --道具ID(报名道具)
@ItemCount INT, --报名道具的数量
@EnrollTime DATETIME, --报名时间
@Score INT, --分数
@Prize VARCHAR(128) --奖品
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--赛事数据用户名单
INSERT INTO [MatchDataUserList]
(
SerialNumber, GameID, [Rank], UserID, ItemID, ItemCount, EnrollTime, Score, Prize
)
VALUES
(
@SerialNumber, @GameID, @Rank, @UserID, @ItemID, @ItemCount, @EnrollTime, @Score, @Prize
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Money_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Money_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-02
-- Mendor: wolf
-- Alter Date: 2014-12-10
-- Description: 获取金币
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Money_GetInfo]
@UserID INT, --用户ID
@Gold BIGINT OUTPUT, --金币数
@Bank BIGINT OUTPUT --保险柜
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @Gold = 0
SET @Bank = 0
--金币
EXEC [p_if_getmoney] @userid = @UserID, @moneyamount = @Gold OUTPUT, @Bank = @Bank OUTPUT
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Money_Give] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- DECLARE @RetCode TINYINT
-- EXEC [WS_Money_Give]
-- @UserID = 10001,
-- @SourceName = '',
-- @Amount = 100,
-- @LogType = 1,
-- @IPAddress = '',
-- @RetCode = @RetCode OUTPUT
-- SELECT @RetCode AS RetCode
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-09-04
-- Description: 加金币接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Money_Give]
@UserID INT, --用户ID
@Amount BIGINT, --金币数
@LogType INT, --日志类型
@SourceName NVARCHAR(32), --源名称
@Remark NVARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述: 1=操作成功 11=传入参数错误
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--加金豆
EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = @SourceName, @GameID = 0, @WantedAmount = @Amount,
@LogType = @LogType, @Remark = @Remark, @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Money_Reduce] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Money_Reduce]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 扣除金币接口(供其他接口调用)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Money_Reduce]
@UserID INT, --用户ID
@Amount BIGINT, --操作金币(必须>0)
@LogType INT, --日志类型
@SourceName NVARCHAR(64), --源名称
@Remark NVARCHAR(128), --备注
@IPAddress VARCHAR(16), --IP地址
@RetCode TINYINT OUTPUT --操作结果
--操作结果描述:1=操作成功 11=金币不足 12=参数异常 21=金币锁
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--扣减(检查泥码)
EXEC [Game_Money_ReduceMoney] @UserID = @UserID, @WantedAmount = @Amount, @LogType = @LogType,
@SourceName = @SourceName, @GameID = 0, @Remark = @Remark, @IPAddress = @IPAddress,
@RetCode = @RetCode OUTPUT
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_MonthlyCard_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MonthlyCard_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 月卡信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MonthlyCard_GetInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
ProductID, ProductName, Price, Awards, DayItems, Memo
FROM
[MonthlyCard]
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_MyMatch_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MyMatch_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户比赛列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MyMatch_GetList]
@UserID INT, --用户ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
DECLARE @tmpTable TABLE(
Rid INT NOT NULL, --标识
MatchName NVARCHAR(32) NOT NULL, --比赛名称
Rank INT NOT NULL, --名次
Items VARCHAR(128) NOT NULL, --道具
Status SMALLINT NOT NULL, --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
Crdate VARCHAR(16) NOT NULL -- 时间
)
INSERT INTO @tmpTable
(
Rid, MatchName, Rank, Items, Status, Crdate
)
SELECT
Rid, MatchName, Rank, Items, Status, Crdate
FROM
[MyMatch]
WHERE
UserID = @UserID AND Crdate >= GETDATE() - 30
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, MatchName, Rank, Items, Status, Crdate
FROM
@tmpTable
)
--返回信息
SELECT
Rid, MatchName, Rank, Items, Status,
CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_MyMatch_SetStatus] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MyMatch_SetStatus]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户比赛状态
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MyMatch_SetStatus]
@Rid INT, --标识
@UserID INT, --用户ID
@Status SMALLINT --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT
UPDATE [MyMatch] SET Status = @Status WHERE Rid = @Rid AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_MyMatch_Write] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_MyMatch_Write]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户比赛数据写入
-- ==============================================
CREATE PROCEDURE [dbo].[WS_MyMatch_Write]
@UserID INT, --用户ID
@MatchName NVARCHAR(32), --比赛名称
@Rank INT, --名次
@Items VARCHAR(128), --道具
@Status SMALLINT, --状态(0=没有奖励 1=可领取 2=等待发放 3=已领取)
@Crdate VARCHAR(16) -- 时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
INSERT INTO [MyMatch]
(
UserID, MatchName, Rank, Items, Status, Crdate
)
VALUES
(
@UserID, @MatchName, @Rank, @Items, @Status, @Crdate
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewSavingPot_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewSavingPot_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 存钱罐信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewSavingPot_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
UserID, CurrentLevel, BuyAmount, BuyTimes,
dbo.fn_TimeToStamp(DuringTime) AS DuringTime, MultiplyStatus
FROM
[NewUserSavingPot]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewSavingPot_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewSavingPot_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 存钱罐更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewSavingPot_Update]
@UserID INT, --用户ID
@CurrentLevel INT,
@BuyAmount INT,
@BuyTimes INT,
@DuringTime INT,
@MultiplyStatus INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新
UPDATE
[NewUserSavingPot]
SET
CurrentLevel = @CurrentLevel, BuyAmount = @BuyAmount, BuyTimes = @BuyTimes,
DuringTime = dbo.fn_StampToTime(@DuringTime), MultiplyStatus = @MultiplyStatus
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [NewUserSavingPot]
(
UserID, CurrentLevel, BuyAmount, BuyTimes, DuringTime, MultiplyStatus
)
VALUES
(
@UserID, @CurrentLevel, @BuyAmount, @BuyTimes, dbo.fn_StampToTime(@DuringTime), @MultiplyStatus
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewUserGift_GetConfig] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewUserGift_GetConfig]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手登录奖励配置
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewUserGift_GetConfig]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT DayIndex, Awards FROM [NewGiftConfig] ORDER BY DayIndex ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewUserGift_GetUserGift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewUserGift_GetUserGift]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手登录奖励信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewUserGift_GetUserGift]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
DayIndex, Status, CONVERT(VARCHAR(20), DateFlag, 120) AS DateFlag
FROM
[NewUserGift]
WHERE
UserID = @UserID
ORDER BY
DayIndex ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewUserGift_Receive] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewUserGift_Receive]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手登录领取
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewUserGift_Receive]
@UserID INT, --用户ID
@DayIndex INT --天序号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [NewUserGift] SET Status = 1 WHERE UserID = @UserID AND DayIndex = @DayIndex
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewUserVip_AddPurchaseLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewUserVip_AddPurchaseLog]
-- @UserId = 100
-- @ProductId = "1",
-- @PurchaseTime = 1685555555
-- ==============================================
-- Author: wolf
-- Create Date: 2023-04-13
-- Mendor: wolf
-- Alter Date: 2023-04-13
-- Description: 添加新版用户vip的购买记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewUserVip_AddPurchaseLog]
@UserId INT, --用户Id
@ProductId VARCHAR(32), --产品Id
@PurchaseTime INT --购买时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 新增数据
INSERT INTO [NewUserVipPurchaseLog]
(
UserId, ProductId, PurchaseTime
)
VALUES
(
@UserId, @ProductId, @PurchaseTime
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewUserVip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewUserVip_GetInfo]
-- @UserId = 100
-- ==============================================
-- Author: wolf
-- Create Date: 2023-04-13
-- Mendor: wolf
-- Alter Date: 2023-04-13
-- Description: 获取新版vip信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewUserVip_GetInfo]
@UserId INT --用户Id
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 获取信息
SELECT
VipLevel AS [Level], VipPoint AS Point, Expire, DailyPackageClaimDay
FROM
[UserVip]
WHERE
UserId = @UserId
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewUserVip_GetPurchaseList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewUserVip_GetPurchaseList]
-- @UserId = 100
-- ==============================================
-- Author: wolf
-- Create Date: 2023-04-13
-- Mendor: wolf
-- Alter Date: 2023-04-13
-- Description: 新版用户vip的购买列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewUserVip_GetPurchaseList]
@UserId INT --用户Id
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
ProductId, PurchaseTime
FROM
[NewUserVipPurchaseLog]
WHERE
UserId = @UserId
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewUserVip_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewUserVip_Update]
-- @UserId = 100
-- @Level = 1
-- @Point = 10
-- @Expire = 0
-- @DailyPackageClaimDay = 1681729908
-- ==============================================
-- Author: wolf
-- Create Date: 2023-04-13
-- Mendor: wolf
-- Alter Date: 2023-04-13
-- Description: 更新新版用户vip信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewUserVip_Update]
@UserId INT, --用户ID
@Level SMALLINT, --等级
@Point INT, --当前点数(经验值)
@Expire INT, --过期时间戳
@DailyPackageClaimDay INT --上一次领取的时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 更新数据
UPDATE
[UserVip]
set
VipLevel = @Level, VipPoint = @Point, Expire = @Expire, DailyPackageClaimDay = @DailyPackageClaimDay
WHERE
UserId = @UserId
IF (@@ROWCOUNT > 0)
RETURN
-- 初始化数据
INSERT INTO [UserVip]
(
UserId, VipLevel, VipPoint, Expire, DailyPackageClaimDay
)
VALUES
(
@UserId, @Level, @Point, @Expire, @DailyPackageClaimDay
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewYearGift_GetConfig] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewYearGift_GetConfig]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手登录奖励配置
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewYearGift_GetConfig]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT DayIndex, Awards FROM [NewYearGiftConfig] ORDER BY DayIndex ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewYearGift_GetUserGift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewYearGift_GetUserGift]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手登录奖励信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewYearGift_GetUserGift]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
IF(@DateFlag NOT BETWEEN '2022-01-31' AND '2022-02-06')
RETURN
--还没有数据
IF NOT EXISTS(SELECT UserID FROM [NewUserYearGift] WHERE UserID = @UserID)
BEGIN
--生成新手登录任务
INSERT INTO [NewUserYearGift]
(
UserID, DayIndex, Status, DateFlag
)
SELECT
@UserID, DayIndex, 0, @DateFlag + (DayIndex - 1)
FROM
[NewYearGiftConfig]
ORDER BY
DayIndex ASC
END
--返回信息
SELECT
DayIndex, Status, CONVERT(VARCHAR(20), DateFlag, 120) AS DateFlag
FROM
[NewUserYearGift]
WHERE
UserID = @UserID AND DateFlag <= '2022-02-06'
ORDER BY
DayIndex ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NewYearGift_Receive] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NewYearGift_Receive]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手登录领取
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NewYearGift_Receive]
@UserID INT, --用户ID
@DayIndex INT --天序号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [NewUserYearGift] SET Status = 1 WHERE UserID = @UserID AND DayIndex = @DayIndex
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_AddBigAward] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_AddBigAward]
-- @UserID = 10001
-- @Crdate = '2023-07-20 00:00:00'
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-20
-- Mendor: wolf
-- Alter Date: 2023-07-20
-- Description: 新手福利 - 添加大奖记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_AddBigAward]
@UserID INT, --用户ID
@Crdate DATETIME --创建时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[NoviceWelfareBigAward]
SET
Status = 1
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [NoviceWelfareBigAward]
(
UserID, Status, Crdate
)
VALUES
(
@UserID, 1, @Crdate
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetBigAward] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_GetBigAward]
-- @UserID = 10001
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-20
-- Mendor: wolf
-- Alter Date: 2023-07-20
-- Description: 新手福利 - 获取大奖记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetBigAward]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
Status
FROM
[NoviceWelfareBigAward]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetUserGiftPacks] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_GetUserGiftPacks]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手福利--获取用户礼包
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetUserGiftPacks]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
PackageId, StartDay, Status
FROM
[UserGiftPack]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetUserTaskList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_GetUserTaskList]
-- @UserID = 10001
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-17
-- Mendor: wolf
-- Alter Date: 2023-07-17
-- Description: 新手福利 - 用户任务列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetUserTaskList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
DayIndex, Scheduled, Status, UnlockDayIndex
FROM
[UserNoviceWelfare]
WHERE
UserID = @UserID
ORDER BY
DayIndex ASC
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_GetUserTerms] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_GetUserTerms]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手福利--获取已购买礼包的领取列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_GetUserTerms]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
PackageId, TermIndex, ClaimDay
FROM
[UserGrowthTerm]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_SetUserGiftPacks] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_SetUserGiftPacks]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手福利--设置用户礼包
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_SetUserGiftPacks]
@UserID INT, --用户ID
@PackageId INT, --礼包ID
@StartDay INT, --生成时间,用于显示倒计时
@Status TINYINT --用户的礼包状态
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserGiftPack]
SET
StartDay = @StartDay, Status = @Status
WHERE
UserID = @UserID AND PackageId = @PackageId
IF(@@ROWCOUNT > 0)
RETURN
INSERT INTO [UserGiftPack]
(
UserID, PackageId, StartDay, Status
)
VALUES
(
@UserID, @PackageId, @StartDay, @Status
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_SetUserTerm] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_SetUserTerm]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 新手福利--设置用户购买礼包
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_SetUserTerm]
@UserID INT, --用户ID
@PackageId INT, --礼包ID
@TermIndex INT, --index
@ClaimDay INT --领取时间,0表示未领取
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserGrowthTerm]
SET
ClaimDay = @ClaimDay
WHERE
UserID = @UserID AND PackageId = @PackageId AND TermIndex = @TermIndex
IF(@@ROWCOUNT > 0)
RETURN
INSERT INTO [UserGrowthTerm]
(
UserID, PackageId, TermIndex, ClaimDay
)
VALUES
(
@UserID, @PackageId, @TermIndex, @ClaimDay
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_NoviceWelfare_UpdateUserTask] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_NoviceWelfare_UpdateUserTask]
-- @UserID = 10001,
-- @DayIndex = 1,
-- @Scheduled = 1,
-- @Status = 1,
-- @UnlockDayIndex = 19576
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-18
-- Mendor: wolf
-- Alter Date: 2023-07-18
-- Description: 新手福利 - 更新用户任务
-- ==============================================
CREATE PROCEDURE [dbo].[WS_NoviceWelfare_UpdateUserTask]
@UserID INT, --用户ID
@DayIndex INT, --天数索引
@Scheduled INT, --完成进度
@Status INT, --任务状态(0=未解锁,1=未完成,2=完成,3=已领取奖励)
@UnlockDayIndex SMALLINT -- 解锁天索引
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserNoviceWelfare]
SET
Scheduled = @Scheduled, Status = @Status, UnlockDayIndex = @UnlockDayIndex
WHERE
UserID = @UserID AND DayIndex = @DayIndex
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserNoviceWelfare]
(
UserID, DayIndex, Scheduled, Status, UnlockDayIndex
)
VALUES
(
@UserID, @DayIndex, @Scheduled, @Status, @UnlockDayIndex
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Pay_Trigger] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Pay_Trigger]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 充值触发事件
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Pay_Trigger]
@UserID INT, --用户ID
@ProductID VARCHAR(32), --产品ID
@ShopType INT, --产品类型
@Price DECIMAL(18, 2) --价格
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--获取用户充值产品
INSERT INTO [UserRechargeProduct](UserID, ProductID, ShopType, Crdate) VALUES(@UserID, @ProductID, @ShopType, GETDATE())
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrivateRoom_WriteHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrivateRoom_WriteHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 私人场写历史记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrivateRoom_WriteHistory]
@RoomNo VARCHAR(32), --房间号
@GameID INT, --游戏ID
@OwnerUserID INT, --创建者
@BeginTime INT, --开始时间
@EndTime INT, --结束时间
@TotalAwardAmount BIGINT, --奖金
@TotalFee BIGINT, --总费用(报名)
@TotalTax BIGINT, --总税收
@UserInfo VARCHAR(1024), --用户信息(椅子号1,用户ID1,报名费用1,税收1,奖金1;椅子号2,用户ID2,报名费用2,税收2,奖金2;)
@ExtInfo VARCHAR(1024), --扩展信息
@Crdate INT --创建时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RoomID INT --房间ID
DECLARE @ChairNo INT --椅子号
DECLARE @UserID INT --用户ID
DECLARE @Fee BIGINT --费用(报名)
DECLARE @Tax BIGINT --税收
DECLARE @AwardAmount BIGINT --奖金
DECLARE @Score INT --积分
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
DECLARE @RoomCrdate DATETIME --房间创建时间
DECLARE @tmptable TABLE(
ChairNo INT NOT NULL, --椅子号
UserID INT NOT NULL, --用户ID
Fee BIGINT NOT NULL, --费用(报名)
Tax BIGINT NOT NULL, --税收
AwardAmount BIGINT NOT NULL, --奖金
Score INT NOT NULL --积分
)
SET @RoomCrdate = dbo.fn_StampToTime(@Crdate)
--房间记录
INSERT INTO [RoomHistory]
(
RoomNo, GameID, OwnerUserID, BeginTime, EndTime,
TotalAwardAmount, TotalFee, TotalTax, ExtInfo, Crdate
)
VALUES
(
@RoomNo, @GameID, @OwnerUserID, dbo.fn_StampToTime(@BeginTime), dbo.fn_StampToTime(@EndTime),
@TotalAwardAmount, @TotalFee, @TotalTax, @ExtInfo, @RoomCrdate
)
--房间ID
SET @RoomID = SCOPE_IDENTITY()
SET @StartIndex = 0
SET @EndIndex = 0
WHILE(1=1)
BEGIN
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
IF(@EndIndex <= 0)
BREAK
SET @ChairNo = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
SET @UserID = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
SET @Fee = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
SET @Tax = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
SET @AwardAmount = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(';', @UserInfo, @StartIndex)
SET @Score = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
SET @StartIndex = @EndIndex + 1
--初始化表变量
INSERT INTO @tmptable
(
ChairNo, UserID, Fee, Tax, AwardAmount, Score
)
VALUES
(
@ChairNo, @UserID, @Fee, @Tax, @AwardAmount, @Score
)
END
--椅子记录
INSERT INTO [ChairHistory]
(
RoomID, ChairNo, UserID, Fee, Tax, AwardAmount, Crdate, Score
)
SELECT
@RoomID, ChairNo, UserID, Fee, Tax, AwardAmount, @RoomCrdate, Score
FROM
@tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizePool_GetEnergy] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizePool_GetEnergy]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户奖池能量
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizePool_GetEnergy]
@UserID INT, --用户ID
@RoomName VARCHAR(32) --房间名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT Energy FROM [PrizePoolEnergy] WHERE UserID = @UserID AND RoomName = @RoomName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizePool_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizePool_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 奖池信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizePool_GetInfo]
@RoomName VARCHAR(32), --房间名称
@Pool INT OUTPUT --奖池
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @Pool = 0
SELECT @Pool = Pool FROM [PrizePool] WHERE RoomName = @RoomName
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizePool_ModifyEnergy] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizePool_ModifyEnergy]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户奖池能量修改
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizePool_ModifyEnergy]
@UserID INT, --用户ID
@RoomName VARCHAR(32), --房间名称
@Energy INT --能量
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--修改
UPDATE [PrizePoolEnergy] SET Energy = @Energy WHERE UserID = @UserID AND RoomName = @RoomName
IF(@@ROWCOUNT > 0)
RETURN
--初始化
INSERT INTO [PrizePoolEnergy](UserID, RoomName, Energy) VALUES(@UserID, @RoomName, @Energy)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizePool_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizePool_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 奖池更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizePool_Update]
@RoomName VARCHAR(32), --房间名称
@Pool INT --奖池
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--修改
UPDATE [PrizePool] SET Pool = @Pool WHERE RoomName = @RoomName
IF(@@ROWCOUNT > 0)
RETURN
--初始化
INSERT INTO [PrizePool](RoomName, Pool) VALUES(@RoomName, @Pool)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizeWheel_AddRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizeWheel_AddRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 转盘添加记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizeWheel_AddRecord]
@UserID INT, --用户ID
@WheelID INT, --转盘ID
@Items VARCHAR(256) --奖励
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加记录
INSERT INTO [UserPrizeWheelHistory]
(
UserID, WheelID, Items, Crdate
)
VALUES
(
@UserID, @WheelID, @Items, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizeWheel_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizeWheel_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 转盘奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizeWheel_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
Rid, Chance, Items
FROM
[PrizeWheel]
ORDER BY
Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizeWheel_GetRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizeWheel_GetRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 转盘获取记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizeWheel_GetRecord]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT TOP 50
h.UserID, u.NickName, h.WheelID, h.Items,
CONVERT(VARCHAR(20), h.Crdate, 120) AS Crdate
FROM
[UserPrizeWheelHistory] h INNER JOIN [AllUser] u ON h.UserID = u.UserID
ORDER BY
h.Rid DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizeWheel_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizeWheel_GetUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 转盘用户信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizeWheel_GetUserInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--获取次数
SELECT Times, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate FROM [UserPrizeWheel] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_PrizeWheel_UpdateUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_PrizeWheel_UpdateUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-09
-- Mendor: wolf
-- Alter Date: 2014-12-22
-- Description: 修改转盘用户信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_PrizeWheel_UpdateUserInfo]
@UserID INT, --用户ID
@Times INT --操作次数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新信息
UPDATE
[UserPrizeWheel]
SET
Times = @Times, Crdate = GETDATE()
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--生成转盘信息
INSERT INTO [UserPrizeWheel](UserID, Times, Crdate) VALUES(@UserID, @Times, GETDATE())
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Purchase_Bet] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Purchase_Bet]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 100购活动抽奖
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Purchase_Bet]
@UserID INT, --用户ID
@SN INT, --期数
@Number INT --中奖码
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT
SET @RetCode = 0
INSERT INTO [UserPurchase]
(
UserID, SN, Number
)
VALUES
(
@UserID, @SN, @Number
)
IF(@@ROWCOUNT = 0)
BEGIN
SELECT @RetCode AS RetCode
RETURN
END
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Purchase_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Purchase_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 100购活动信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Purchase_GetInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP 1
SN, CONVERT(CHAR(23), BeginTime, 121) AS BeginTime,
CONVERT(CHAR(23), EndTime, 121) AS EndTime, LuckNumber, Status
FROM
[Purchase]
WHERE
Status > 0
ORDER BY
SN DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Purchase_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Purchase_GetUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 100购活动用户信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Purchase_GetUserInfo]
@SN INT --期数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
UserID, Number
FROM
[UserPurchase]
WHERE
SN = @SN
ORDER BY
Rid ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Purchase_Open] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Purchase_Open]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 100购活动开启
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Purchase_Open]
@SN INT, --期数
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@LuckNumber INT, --中奖码
@Status INT --状态(0=空闲 1=活动中 2=派奖 3=结束)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT
SET @RetCode = 0
INSERT INTO [Purchase]
(
SN, BeginTime, EndTime, LuckNumber, Status
)
VALUES
(
@SN, @BeginTime, @EndTime, @LuckNumber, @Status
)
IF(@@ROWCOUNT = 0)
BEGIN
SELECT @RetCode AS RetCode
RETURN
END
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Purchase_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Purchase_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 100购活动更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Purchase_Update]
@SN INT, --期数
@LuckNumber INT, --中奖码
@Status INT --状态(0=空闲 1=活动中 2=派奖 3=结束)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT
SET @RetCode = 0
UPDATE
[Purchase]
SET
LuckNumber = @LuckNumber, Status = @Status
WHERE
SN = @SN
IF(@@ROWCOUNT = 0)
BEGIN
SELECT @RetCode AS RetCode
RETURN
END
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_Award] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_Award]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 领取榜单奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_Award]
@UserID INT, --用户ID
@RankType TINYINT, --榜单类型
@DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--2=赢金榜
IF(@RankType = 2)
BEGIN
EXEC [WS_Rank_AwardWin] @UserID = @UserID, @DoubleFlag = @DoubleFlag
RETURN
END
--4=积分榜
ELSE IF(@RankType = 4)
BEGIN
EXEC [WS_Rank_AwardScore] @UserID = @UserID, @DoubleFlag = @DoubleFlag
RETURN
END
--5=单局最大赢金榜
ELSE IF(@RankType = 5)
BEGIN
EXEC [WS_Rank_AwardMaxWin] @UserID = @UserID, @DoubleFlag = @DoubleFlag
RETURN
END
--6=视频榜
ELSE IF(@RankType = 6)
BEGIN
EXEC [WS_Rank_AwardVideo] @UserID = @UserID, @DoubleFlag = @DoubleFlag
RETURN
END
--7=收徒榜
ELSE IF(@RankType = 7)
BEGIN
EXEC [WS_Rank_AwardTeacher] @UserID = @UserID, @DoubleFlag = @DoubleFlag
RETURN
END
SELECT 11 AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_AwardMaxWin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_AwardMaxWin]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 领取单次最大赢金榜奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_AwardMaxWin]
@UserID INT, --用户ID
@DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
SET @RetCode = 0
--返回信息
SELECT
@IsGift = IsGift, @IsDouble = IsDouble
FROM
[MaxWinRank]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@IsGift = 2 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 0 AND @IsGift = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 1 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--更新领取状态
UPDATE
[MaxWinRank]
SET
IsGift = 2,
IsDouble = CASE
WHEN @DoubleFlag = 1 THEN 2
ELSE IsDouble
END
WHERE
UserID = @UserID
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_AwardScore] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_AwardScore]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 领取积分榜奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_AwardScore]
@UserID INT, --用户ID
@DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
SET @RetCode = 0
--返回信息
SELECT
@IsGift = IsGift, @IsDouble = IsDouble
FROM
[ScoreRank]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@IsGift = 2 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 0 AND @IsGift = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 1 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--更新领取状态
UPDATE
[ScoreRank]
SET
IsGift = 2,
IsDouble = CASE
WHEN @DoubleFlag = 1 THEN 2
ELSE IsDouble
END
WHERE
UserID = @UserID
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_AwardTeacher] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_AwardTeacher]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 领取收徒榜奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_AwardTeacher]
@UserID INT, --用户ID
@DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
SET @RetCode = 0
--返回信息
SELECT
@IsGift = IsGift, @IsDouble = IsDouble
FROM
[TeacherRank]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@IsGift = 2 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 0 AND @IsGift = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 1 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--更新领取状态
UPDATE
[TeacherRank]
SET
IsGift = 2,
IsDouble = CASE
WHEN @DoubleFlag = 1 THEN 2
ELSE IsDouble
END
WHERE
UserID = @UserID
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_AwardVideo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_AwardVideo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 领取视频榜奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_AwardVideo]
@UserID INT, --用户ID
@DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
SET @RetCode = 0
--返回信息
SELECT
@IsGift = IsGift, @IsDouble = IsDouble
FROM
[VideoRank]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@IsGift = 2 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 0 AND @IsGift = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 1 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--更新领取状态
UPDATE
[VideoRank]
SET
IsGift = 2,
IsDouble = CASE
WHEN @DoubleFlag = 1 THEN 2
ELSE IsDouble
END
WHERE
UserID = @UserID
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_AwardWin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_AwardWin]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 领取积分榜奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_AwardWin]
@UserID INT, --用户ID
@DoubleFlag TINYINT --是否双倍(0=单次 1=双倍)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @IsGift TINYINT --是否领取(0=无效 1=可领取 2=已领取)
DECLARE @IsDouble TINYINT --是否双倍(0=无效 1=可领取 2=已领取)
SET @RetCode = 0
--返回信息
SELECT
@IsGift = IsGift, @IsDouble = IsDouble
FROM
[WinRank]
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@IsGift = 2 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 0 AND @IsGift = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--已经领取过
IF(@DoubleFlag = 1 AND @IsDouble = 2)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--更新领取状态
UPDATE
[WinRank]
SET
IsGift = 2,
IsDouble = CASE
WHEN @DoubleFlag = 1 THEN 2
ELSE IsDouble
END
WHERE
UserID = @UserID
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetAwardList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetAwardList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 榜单奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetAwardList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
RankType, Rank, Tools
FROM
[RankAward]
ORDER BY
RankType ASC, Rank ASC, AwardID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetBadgePoints] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetBadgePoints]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-24
-- Mendor: wolf
-- Alter Date: 2023-07-24
-- Description: 获取徽章点数
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetBadgePoints]
@UserID INT, --用户ID
@RankType INT --榜单类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @PointsAmount BIGINT --徽章点数
--5=徽章榜
IF(@RankType = 5)
BEGIN
SELECT
@PointsAmount = SUM(Points)
FROM
[UserBadge]
WHERE
UserID = @UserID AND Points > 0
END
SET @PointsAmount = ISNULL(@PointsAmount, 0)
--返回信息
SELECT @PointsAmount AS PointsAmount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetCharm] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetCharm]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-07-24
-- Mendor: wolf
-- Alter Date: 2023-07-24
-- Description: 获取榜单魅力值
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetCharm]
@UserID INT, --用户ID
@RankType INT --榜单类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @TimeFlag SMALLDATETIME --日期标识
DECLARE @WeekFlag SMALLDATETIME --周开始
DECLARE @MonthFlag SMALLDATETIME --月开始
DECLARE @EndFlag SMALLDATETIME --截止时间
DECLARE @CharmAmount BIGINT --魅力值
SET @CurrTime = GETDATE()
SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
SET @MonthFlag = CONVERT(CHAR(8), @TimeFlag, 120) + '01'
--本周日
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
--本周日还没到,取上周日日期
IF(@WeekFlag > @DateFlag)
BEGIN
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
END
--8=魅力日榜
IF(@RankType = 8)
BEGIN
SELECT
@CharmAmount = SUM(Charm)
FROM
[UserCharmHistory]
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND Charm > 0
END
--9=魅力周榜
ELSE IF(@RankType = 9)
BEGIN
SELECT
@CharmAmount = SUM(Charm)
FROM
[UserCharmHistory]
WHERE
DateFlag >= @WeekFlag AND DateFlag < @EndFlag AND UserID = @UserID AND Charm > 0
END
--10=魅力月榜
ELSE IF(@RankType = 10)
BEGIN
SELECT
@CharmAmount = SUM(Charm)
FROM
[UserCharmHistory]
WHERE
DateFlag >= @MonthFlag AND DateFlag < @EndFlag AND UserID = @UserID AND Charm > 0
END
SET @CharmAmount = ISNULL(@CharmAmount, 0)
--返回信息
SELECT @CharmAmount AS CharmAmount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 榜单信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetInfo]
@UserID INT, --用户ID
@RankType INT --排行榜类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @TimeFlag SMALLDATETIME --日期标识
DECLARE @WeekFlag SMALLDATETIME --周开始
DECLARE @MonthFlag SMALLDATETIME --月开始
DECLARE @Amount BIGINT --数额
SET @CurrTime = GETDATE()
SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
SET @MonthFlag = CONVERT(CHAR(8), @TimeFlag, 120) + '01'
--本周日
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
--本周日还没到,取上周日日期
IF(@WeekFlag > @DateFlag)
BEGIN
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
END
--2=每日赚金榜
IF(@RankType = 2)
BEGIN
SELECT
@Amount = SUM(WinAmount)
FROM
[DailyBetStat]
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND WinAmount > 0
END
--3=每周赚金榜
ELSE IF(@RankType = 3)
BEGIN
SELECT
@Amount = SUM(WinAmount)
FROM
[DailyBetStat]
WHERE
DateFlag >= @WeekFlag AND UserID = @UserID AND WinAmount > 0
END
--4=每月赚金榜
ELSE IF(@RankType = 4)
BEGIN
SELECT
@Amount = SUM(WinAmount)
FROM
[DailyBetStat]
WHERE
DateFlag >= @MonthFlag AND UserID = @UserID AND WinAmount > 0
END
--6=语聊房本周榜
ELSE IF(@RankType = 6)
BEGIN
SELECT
@Amount = SUM(Exps)
FROM
[AudioRoomExpLog]
WHERE
DateFlag >= @WeekFlag AND UserID = @UserID AND Exps > 0
END
--7=语聊房上周榜
ELSE IF(@RankType = 7)
BEGIN
SELECT
@Amount = Amount
FROM
[AllRank]
WHERE
UserID = @UserID AND RankType = 7
END
--8=魅力日榜
ELSE IF(@RankType = 8)
BEGIN
SELECT
@Amount = SUM(Charm)
FROM
[UserCharmHistory]
WHERE
DateFlag >= @DateFlag AND UserID = @UserID AND Charm > 0
END
--9=魅力周榜
ELSE IF(@RankType = 9)
BEGIN
SELECT
@Amount = SUM(Charm)
FROM
[UserCharmHistory]
WHERE
DateFlag >= @WeekFlag AND UserID = @UserID AND Charm > 0
END
--10=魅力月榜
ELSE IF(@RankType = 10)
BEGIN
SELECT
@Amount = SUM(Charm)
FROM
[UserCharmHistory]
WHERE
DateFlag >= @MonthFlag AND UserID = @UserID AND Charm > 0
END
--11=语聊房赠送礼物日榜
ELSE IF(@RankType = 11)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @DateFlag AND Sender = @UserID
END
--12=语聊房赠送礼物周榜
ELSE IF(@RankType = 12)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @WeekFlag AND Sender = @UserID
END
--13=语聊房赠送礼物月榜
ELSE IF(@RankType = 13)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @MonthFlag AND Sender = @UserID
END
--14=语聊房接收礼物日榜
ELSE IF(@RankType = 14)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @DateFlag AND Receiver = @UserID
END
--15=语聊房接收礼物周榜
ELSE IF(@RankType = 15)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @WeekFlag AND Receiver = @UserID
END
--16=语聊房接收礼物月榜
ELSE IF(@RankType = 16)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @MonthFlag AND Receiver = @UserID
END
--17=语聊房房间消耗钻石日榜
ELSE IF(@RankType = 17)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @DateFlag AND RoomID = @UserID
END
--18=语聊房房间消耗钻石周榜
ELSE IF(@RankType = 18)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @WeekFlag AND RoomID = @UserID
END
--19=语聊房房间消耗钻石月榜
ELSE IF(@RankType = 19)
BEGIN
SELECT
@Amount = SUM(DiamondAmount)
FROM
[AudioRoomGiftHistory]
WHERE
Crdate >= @MonthFlag AND RoomID = @UserID
END
--20=好友房赢局数日榜
ELSE IF(@RankType = 20)
BEGIN
SELECT
@Amount = SUM(WinCount)
FROM
[DailyBetStat]
WHERE
DateFlag >= @DateFlag AND UserID = @UserID AND ServerName = 'PrivateRoom'
END
--21=好友房赢局数周榜
ELSE IF(@RankType = 21)
BEGIN
SELECT
@Amount = SUM(WinCount)
FROM
[DailyBetStat]
WHERE
DateFlag >= @WeekFlag AND UserID = @UserID AND ServerName = 'PrivateRoom'
END
SET @Amount = ISNULL(@Amount, 0)
--返回信息
SELECT @Amount AS Amount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 榜单列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
RankType, Rank, UserID, Amount, IsGift, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[AllRank]
ORDER BY
RankType ASC, Rank ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetMaxWin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetMaxWin]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 单局最大赢金
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetMaxWin]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Score BIGINT --积分
DECLARE @DateFlag SMALLDATETIME
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SELECT
@Score = SUM(WinAmount)
FROM
[UserMaxWin]
WHERE
DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND UserID = @UserID
SET @Score = ISNULL(@Score, 0)
--返回信息
SELECT @Score AS Score
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetRoomExp] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetRoomExp]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 语聊房榜单房间经验
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetRoomExp]
@RoomID INT, --房间ID
@RankType INT --榜单类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @TimeFlag SMALLDATETIME --日期标识
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @WeekFlag SMALLDATETIME --周开始
DECLARE @Amount INT --数量
SET @CurrTime = GETDATE()
SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
--本周日
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
--本周日还没到,取上周日日期
IF(@WeekFlag > @DateFlag)
BEGIN
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
END
--本周榜单
IF(@RankType = 6)
BEGIN
SELECT
@Amount = SUM(Exps)
FROM
[AudioRoomExpLog]
WHERE
DateFlag >= @WeekFlag AND RoomID = @RoomID AND Exps > 0
END
--上周榜单
ELSE IF(@RankType = 7)
BEGIN
SELECT @Amount = Amount FROM [AudioRoomLastWeekRank] WHERE UserID = @RoomID
END
SET @Amount = ISNULL(@Amount, 0)
--返回信息
SELECT @Amount AS Amount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetTeacher] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetTeacher]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 收徒榜信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetTeacher]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Score BIGINT --积分
DECLARE @DateFlag SMALLDATETIME
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SELECT
@Score = COUNT(StudentID)
FROM
[UserTeacher]
WHERE
Crdate >= @DateFlag - 1 AND Crdate < @DateFlag AND TeacherID = @UserID
SET @Score = ISNULL(@Score, 0)
--返回信息
SELECT @Score AS Score
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetUserScore] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetUserScore]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 积分
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetUserScore]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Score BIGINT --积分
SELECT
@Score = SUM(Score)
FROM
[UserScore]
WHERE
DateFlag >= CONVERT(CHAR(10), GETDATE() - 1, 120) AND UserID = @UserID
SET @Score = ISNULL(@Score, 0)
--返回信息
SELECT @Score AS Score
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetVideo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetVideo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 视频榜信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetVideo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Score BIGINT --积分
DECLARE @DateFlag SMALLDATETIME
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SELECT
@Score = SUM(VideoPlayTimes)
FROM
[UserDailyStat]
WHERE
DateFlag >= @DateFlag - 1 AND DateFlag < @DateFlag AND UserID = @UserID
SET @Score = ISNULL(@Score, 0)
--返回信息
SELECT @Score AS Score
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_GetWinAmount] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_GetWinAmount]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 盈利额
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_GetWinAmount]
@UserID INT, --用户ID
@RankType INT --榜单类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @TimeFlag SMALLDATETIME --日期标识
DECLARE @WeekFlag SMALLDATETIME --周开始
DECLARE @MonthFlag SMALLDATETIME --月开始
DECLARE @EndFlag SMALLDATETIME --截止时间
DECLARE @WinAmount BIGINT --盈利额
SET @CurrTime = GETDATE()
SET @TimeFlag = DATEADD(MINUTE, -2, @CurrTime)
SET @DateFlag = CONVERT(CHAR(10), @TimeFlag, 120)
SET @MonthFlag = CONVERT(CHAR(8), @TimeFlag, 120) + '01'
--本周日
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) + 7, @TimeFlag))
--本周日还没到,取上周日日期
IF(@WeekFlag > @DateFlag)
BEGIN
SET @WeekFlag = CONVERT(DATE, DATEADD(DAY, -DATEPART(WEEKDAY ,@TimeFlag + @@DATEFIRST - 1) - 0, @TimeFlag))
END
--2=每日赚金榜
IF(@RankType = 2)
BEGIN
SELECT
@WinAmount = SUM(WinAmount)
FROM
[DailyBetStat]
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND WinAmount > 0
END
--3=每周赚金榜
ELSE IF(@RankType = 3)
BEGIN
SELECT
@WinAmount = SUM(WinAmount)
FROM
[DailyBetStat]
WHERE
DateFlag >= @WeekFlag AND DateFlag < @EndFlag AND UserID = @UserID AND WinAmount > 0
END
--4=每月赚金榜
ELSE IF(@RankType = 4)
BEGIN
SELECT
@WinAmount = SUM(WinAmount)
FROM
[DailyBetStat]
WHERE
DateFlag >= @MonthFlag AND DateFlag < @EndFlag AND UserID = @UserID AND WinAmount > 0
END
SET @WinAmount = ISNULL(@WinAmount, 0)
--返回信息
SELECT @WinAmount AS WinAmount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Rank_ReloadBadgeRanking] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Rank_ReloadBadgeRanking]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-10-20
-- Mendor: wolf
-- Alter Date: 2023-10-20
-- Description: 重新加载徽章排名
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Rank_ReloadBadgeRanking]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME -- 当前日期
SET @CurrTime = GETDATE()
IF(DATEPART(MINUTE, @CurrTime) < 3)
BEGIN
SET @CurrTime = DATEADD(MINUTE, -3, @CurrTime)
END
--删除榜单数据(5=徽章榜)
DELETE FROM [AllRank] WHERE RankType = 5
--5=徽章榜
INSERT INTO [AllRank]
(
RankType, Rank, UserID, Amount, Crdate, IsGift
)
SELECT TOP 50
5, ROW_NUMBER() OVER(ORDER BY SUM(Points) DESC) AS Rank, UserID, SUM(Points), @CurrTime, 1
FROM
[UserBadge]
WHERE
Points > 0
GROUP BY
UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_RechargeCard_Use] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_RechargeCard_Use]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 充值卡使用
-- ==============================================
CREATE PROCEDURE [dbo].[WS_RechargeCard_Use]
@UserID INT, --用户ID
@CardNo VARCHAR(32) --卡号
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @GoldAmount BIGINT --金币数
DECLARE @ErrorTimes INT --错误次数
DECLARE @Crdate DATETIME --时间
DECLARE @CoolSeconds INT --冷却时长
SET @RetCode = 0
SET @GoldAmount = 0
SET @ErrorTimes = 0
SET @CoolSeconds = 0
SET @CurrTime = GETDATE()
--充值卡已使用
IF EXISTS(SELECT CardNo FROM [RechargeCard] WHERE CardNo = @CardNo AND UserID > 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
RETURN
END
--获取充值卡日志
SELECT
@ErrorTimes = ErrorTimes, @Crdate = Crdate
FROM
[CardErrorLog]
WHERE
UserID = @UserID
--初始化数据
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [CardErrorLog]
(
UserID, ErrorTimes, Crdate
)
VALUES
(
@UserID, 0, @CurrTime
)
END
--每5秒仅能输入1次兑换码
IF(@Crdate >= DATEADD(SECOND, -5, @CurrTime))
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
RETURN
END
--当5分钟内连续输错10次兑换码时,禁止使用此功能5分钟
IF(@Crdate >= DATEADD(MINUTE, -5, @CurrTime) AND @ErrorTimes >= 10)
BEGIN
SET @RetCode = 13
--计算冷却时间
SET @CoolSeconds = DATEDIFF(SECOND, @CurrTime, DATEADD(MINUTE, 5, @Crdate))
SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
RETURN
END
--使用充值卡
UPDATE
[RechargeCard]
SET
UserID = @UserID, UseTime = @CurrTime, @GoldAmount = GoldAmount
WHERE
CardNo = @CardNo AND UserID <= 0
IF(@@ROWCOUNT = 0)
BEGIN
--超过5分钟
IF(@Crdate < DATEADD(MINUTE, -5, @CurrTime))
BEGIN
SET @ErrorTimes = 0
END
--错误次数+1
UPDATE
[CardErrorLog]
SET
ErrorTimes = @ErrorTimes + 1, Crdate = @CurrTime
WHERE
UserID = @UserID
SET @RetCode = 14
SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
RETURN
END
--充值卡使用记录
UPDATE [CardErrorLog] SET ErrorTimes = 0, Crdate = @CurrTime WHERE UserID = @UserID
--使用成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @GoldAmount AS GoldAmount, @CoolSeconds AS CoolSeconds
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_RedPoint_Check] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_RedPoint_Check]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 小红点检查
-- ==============================================
CREATE PROCEDURE [dbo].[WS_RedPoint_Check]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @SignTime DATETIME --签到时间
DECLARE @MailTip TINYINT --邮件提醒
DECLARE @MailVIPTip TINYINT --重要邮件提醒
DECLARE @MsgTip TINYINT --留言提醒
DECLARE @SpreadTip TINYINT --邀请(推广)提醒
DECLARE @ReviewTip TINYINT --评论提醒
SET @CurrTime = GETDATE()
SET @SignTime = '2021-01-01'
SET @MailTip = 0
SET @MailVIPTip = 0
SET @MsgTip = 0
SET @SpreadTip = 0
SET @ReviewTip = 0
--最近签到时间
SELECT TOP 1 @SignTime = Crdate FROM [UserSigninHistory] WHERE UserID = @UserID ORDER BY Rid DESC
--未读邮件
SELECT
@MailTip = CASE WHEN MsgType = 0 THEN 1 ELSE @MailTip END, -- 0=普通邮件
@MailVIPTip = CASE WHEN MsgType = 1 THEN 1 ELSE @MailVIPTip END -- 1=重要邮件
FROM
[SysMessage]
WHERE
UserID = @UserID AND Crdate >= @CurrTime - 3 AND Status = 0
--留言提醒
IF EXISTS(SELECT TOP 1 MessageID FROM [ServiceMessage] WHERE ToUserID = @UserID AND Crdate > @CurrTime - 3 AND IsRead = 0)
BEGIN
SET @MsgTip = 1
END
--邀请(推广)提醒
IF EXISTS(SELECT TOP 1 Code FROM [SpreadMember] WHERE Code = @UserID AND IsGift = 0)
BEGIN
SET @SpreadTip = 1
END
--状态
IF EXISTS(SELECT TOP 1 UserID FROM [UserReview] WHERE UserID = @UserID AND AppName = 'google' AND Status = 0)
BEGIN
SET @ReviewTip = 1
END
--返回信息
SELECT
CONVERT(VARCHAR(20), @SignTime, 120) AS SignTime, @MailTip AS MailTip, @MsgTip AS MsgTip,
@SpreadTip AS SpreadTip, @ReviewTip AS ReviewTip, 0 AS AgentGrade, @MailVIPTip AS MailVIPTip
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Request_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Request_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2015-11-05
-- Description: 游戏审核显示的游戏名
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Request_GetInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
PartnerID, VersionCode, GameName
FROM
[GameRequest]
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Review_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Review_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-04-03
-- Description: 获取评论信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Review_GetInfo]
@UserID INT, --用户ID
@AppName VARCHAR(32) --应用名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果 1=可以领取 11=已经领取过 12=玩家连续登录未超过2天 13=玩家在游戏未充值或者平台、游戏内累计观看视频未超过3次
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @RegTime SMALLDATETIME --注册日期
DECLARE @PayMoney DECIMAL(18, 2) --充值金额
DECLARE @Status TINYINT --状态
SET @RetCode = 13
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
--状态
SELECT @Status = Status FROM [UserReview] WHERE UserID = @UserID AND AppName = @AppName
--用户评论
IF(@Status = 1)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--判断是否连续2天登录
IF NOT EXISTS(SELECT Crdate FROM [UserLoginLog_bak] WHERE Crdate >= @DateFlag - 1 AND Crdate < @DateFlag AND UserID = @UserID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--用户信息
SELECT @PayMoney = PayMoney, @RegTime = CONVERT(CHAR(10), RegTime, 120) FROM [AllUser] WHERE UserID = @UserID
--有充值
IF(@PayMoney > 0)
BEGIN
SET @RetCode = 1
END
--充值或观看视频超过3次
IF((SELECT SUM(VideoPlayTimes) FROM [UserDailyStat] WHERE DateFlag >= @RegTime AND UserID = @UserID) >= 3)
BEGIN
SET @RetCode = 1
END
--首次触发
IF(@Status IS NULL)
BEGIN
--记录
INSERT INTO [UserReview]
(
UserID, AppName, Status, Crdate
)
VALUES
(
@UserID, @AppName, 0, GETDATE()
)
END
--返回信息
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Review_Gift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Review_Gift]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-04
-- Mendor: wolf
-- Alter Date: 2015-04-03
-- Description: 领取评论
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Review_Gift]
@UserID INT, --用户ID
@AppName VARCHAR(32) --应用名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--领取
UPDATE
[UserReview]
SET
Status = 1
WHERE
UserID = @UserID AND AppName = @AppName AND Status = 0
IF(@@ROWCOUNT > 0)
BEGIN
SELECT 1 AS RetCode
RETURN
END
SELECT 0 AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SafeBox_Transfer] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*************************
用途:保险柜转账
说明:税为0%、单次转账最大额1E、最小额100、
说明:同时判断接收方加金币不超过20E(INT最大值)
**************************/
CREATE PROCEDURE [dbo].[WS_SafeBox_Transfer]
@UserID INT, --转账方ID
@AcceptUserID INT, --接收方ID
@WantAmount BIGINT, --要转多少金币,保证为正数
@Esafeboxpwd VARCHAR(32), --保险柜密码
@IPAddress VARCHAR(15), --IP地址
@ErrMsg NVARCHAR(128) OUTPUT, --消息
@StillAmount BIGINT OUTPUT, --剩余保险柜
@RetCode INT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @MAX_AMOUNT BIGINT --单次转账最大量
DECLARE @MIN_AMOUNT BIGINT --单次转账最小量
DECLARE @AcceptCurrAmount BIGINT --接收者的当前金币量
DECLARE @TaxAmount BIGINT --税
DECLARE @CurrAmount BIGINT --当前的金币量
DECLARE @TotalAmount BIGINT --实际总共改变的金币量,等于@WantAmount +@TaxAmount
DECLARE @NickName NVARCHAR(32) --昵称
DECLARE @AcceptNickName NVARCHAR(32) --接收方昵称
DECLARE @AcceptStillAmount BIGINT --接收者剩余金币
DECLARE @CurrTime DATETIME --时间
DECLARE @Msg NVARCHAR(256) --消息
DECLARE @DailyTransferAmount BIGINT --日转账
DECLARE @TransferAmount BIGINT --转账金额
DECLARE @SysMsgID INT
SET @StillAmount = 0
SET @TaxAmount = 0
SET @TotalAmount = @WantAmount + @TaxAmount -- 消耗的金币 = 转出的金币+税
SET @NickName = ''
SET @AcceptNickName = ''
SET @MAX_AMOUNT = 100000000
SET @MIN_AMOUNT = 1
SET @RetCode = 0
SET @CurrTime = GETDATE()
IF(@WantAmount IS NULL OR @WantAmount < 0)
BEGIN
SET @RetCode = -1
SET @ErrMsg = N'Safe amount input error'
RETURN
END
IF(@UserID IS NULL OR @AcceptUserID IS NULL OR @UserID < 0 OR @AcceptUserID < 0)
BEGIN
IF @UserID IS NULL
SET @UserID = 0
IF @AcceptUserID IS NULL
SET @AcceptUserID = 0
INSERT INTO [MoneyLog]
(
[GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, 'BANK', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
)
SET @RetCode = -2
SET @ErrMsg = N'User parameter error'
RETURN
END
IF(@WantAmount < @MIN_AMOUNT OR @WantAmount > @MAX_AMOUNT)
BEGIN
INSERT INTO [MoneyLog]
(
[GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, 'BANK', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming amount error', @CurrTime, 0
)
SET @RetCode = -3
SET @ErrMsg = N'The transfer amount of safe exceeds the limit'
RETURN
END
--获取当前自己的昵称
SELECT @NickName = NickName FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [MoneyLog]
(
[GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, 'BANK', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Incoming user parameter error', @CurrTime, 0
)
SET @RetCode = -2
SET @ErrMsg = N'User parameter error'
RETURN
END
--获取当前自己的昵称
SELECT @AcceptNickName = NickName FROM [AllUser] WHERE UserID = @AcceptUserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [MoneyLog]
(
[GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, 'BANK', @UserID, 0, -@WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Receive ID does not exist', @CurrTime, 0
)
SET @RetCode = -5
SET @ErrMsg = N'Receive ID does not exist'
RETURN
END
--日转账限额
SELECT @DailyTransferAmount = DailyTransferAmount FROM [PlatformConfig] WHERE ConfigID = 1
--有设置转账限额
IF(@DailyTransferAmount > 0)
BEGIN
--今天转账金额
SELECT
@TransferAmount = ISNULL(SUM(-WantAmount), 0)
FROM
[TransferLog]
WHERE
Crdate >= CONVERT(CHAR(10), @CurrTime, 120) AND UserID = @UserID
--判断是否达到上限
IF((@TransferAmount + @WantAmount) > @DailyTransferAmount)
BEGIN
SET @RetCode = -9
SET @ErrMsg = N'Up to today transfer limit'
RETURN
END
END
SET @AcceptCurrAmount = (SELECT [Bank] FROM [Money] WHERE [UserID] = @AcceptUserID)
IF @AcceptCurrAmount IS NULL
SET @AcceptCurrAmount = 0
--接收方的现金看会不会超过INT值的最大限度,一个账号上现金最多接收转账不超过10E
IF(@AcceptCurrAmount + @WantAmount > 1000000000)
BEGIN
INSERT INTO [MoneyLog]
(
[GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, 'BANK', @UserID, 0, @WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:The amount is too large!', @CurrTime, 0
)
SET @RetCode = -6
SET @ErrMsg = N'The receiver safe is more than 10 million yuan and cannot be sent!'
RETURN
END
--开始金币的转账操作
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN
--检查用户现金
SET @CurrAmount = (SELECT [Bank] FROM [Money] WHERE [UserID] = @UserID)
IF @CurrAmount IS NULL
SET @CurrAmount = 0
IF(@CurrAmount < @TotalAmount)
BEGIN
ROLLBACK TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
INSERT INTO [MoneyLog]
(
[GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
VALUES
(
0, 'BANK', @UserID, 0, @WantAmount,
0, @TaxAmount, @IPAddress, N'Safe transfer:Cash is not enough', @CurrTime, 0
)
SET @RetCode = -7
SET @ErrMsg = N'Your current safe is not less than the amount sent'
RETURN
END
--可以进行保险柜操作了
UPDATE [Money] SET [Bank] = [Bank] - @TotalAmount WHERE [UserID] = @UserID
UPDATE [Money] SET [Bank] = [Bank] + @WantAmount WHERE [UserID] = @AcceptUserID
IF(@@RowCount = 0)
BEGIN
INSERT INTO [Money]
(
[UserID],[Amount], RegisterTime, RefreshTime, bank
)
VALUES
(
@AcceptUserID, @WantAmount, @CurrTime, @CurrTime, 0
)
END
COMMIT TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
--写日志
INSERT INTO [MoneyLog]
(
[GameID], [MoneyType], [UserID], [CurrentAmount], [ModifyAmount],
[StillAmount], [TaxAmount], [IPAddress], [Remark], [Crdate], [LogType]
)
SELECT
0, 'BANK', @AcceptUserID, @AcceptCurrAmount, @WantAmount,
@AcceptCurrAmount + @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Receiving OK', @CurrTime, 11
UNION ALL
SELECT
0, 'BANK', @UserID, @CurrAmount, -@WantAmount,
@CurrAmount - @WantAmount, @TaxAmount, @IPAddress, N'Safe transfer:Send OK', @CurrTime, 111
--剩余金币
SET @StillAmount = @CurrAmount - @TotalAmount
SET @AcceptStillAmount = @AcceptCurrAmount + @WantAmount
SET @ErrMsg = N'Safe transfer succeeded, you have sent ' + CAST(@WantAmount AS VARCHAR(32)) + ',You still have the safe account ' + CAST(@StillAmount AS VARCHAR(32))
--保险柜日志
INSERT INTO [BankLog]
(
UserID, ToUserID, CurrentAmount, WantedAmount, StillAmount, remark, Crdate, IPAddress
)
SELECT @UserID, @AcceptUserID, @CurrAmount, -@WantAmount, @StillAmount, N'Safe transfer out', @CurrTime, @IPAddress
UNION ALL
SELECT @AcceptUserID, @UserID, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount, N'Safe transfer in', @CurrTime, @IPAddress
--转账日志
INSERT INTO [TransferLog]
(
[UserID], [NickName],[CurrAmount],[WantAmount], [StillAmount],
[AcceptUserID], [AcceptNickName], [AcceptCurrAmount], [AcceptWantAmount], [AcceptStillAmount],
[TaxAmount], [IPAddress], [Memo], [Crdate]
)
VALUES
(
@UserID, @NickName, @CurrAmount, -@WantAmount, @StillAmount,
@AcceptUserID, @AcceptNickName, @AcceptCurrAmount, @WantAmount, @AcceptStillAmount,
@TaxAmount, @IPAddress, @ErrMsg, @CurrTime
)
SET @Msg = N'You recieved a transfer from ' + LTRIM(STR(@UserID)) + '(' + @NickName + ').'
--发送消息
EXEC [WS_SysMessage_Send] @UserID = @AcceptUserID, @Title = N'System', @Content = @Msg, @Status = 0, @SourceName = 'Transfer',
@Crdate = @CurrTime, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SavingPot_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SavingPot_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 存钱罐信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SavingPot_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
UserID, BuyTimes, BuyAmount,
dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime
FROM
[UserSavingPot]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SavingPot_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SavingPot_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2023-06-28
-- Mendor: wolf
-- Alter Date: 2023-06-28
-- Description: 存钱罐更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SavingPot_Update]
@UserID INT, --用户ID
@BuyTimes INT,
@BuyAmount INT,
@UpdateTime INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新
UPDATE
[UserSavingPot]
SET
BuyTimes = @BuyTimes, BuyAmount = @BuyAmount,
UpdateTime = dbo.fn_StampToTime(@UpdateTime)
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserSavingPot]
(
UserID, BuyTimes, BuyAmount, UpdateTime
)
VALUES
(
@UserID, @BuyTimes, @BuyAmount, dbo.fn_StampToTime(@UpdateTime)
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_ServiceMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_ServiceMessage_GetList]
-- @UserID = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2015-08-13
-- Description: 获取客服留言列表(分页显示)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_ServiceMessage_GetList]
@UserID INT, --用户ID
@MessageID INT, --客服留言ID
@SendImgCount INT OUTPUT --发送图片次数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Msg VARCHAR(1024) --操作描述
--申请表变量
DECLARE @tmptable TABLE(
MessageID INT NOT NULL, --消息ID
Title VARCHAR(256) NOT NULL, --标题
UserID INT NOT NULL, --用户ID
ToUserID INT NOT NULL, --对方用户ID
Msg NVARCHAR(512) NOT NULL, --消息
Crdate DATETIME NOT NULL --创建时间
)
--获取最新的客服留言ID
IF(@MessageID > 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
MessageID, Title, UserID, ToUserID, Msg, Crdate
)
SELECT
MessageID, Title, UserID, ToUserID, Msg, Crdate
FROM
[ServiceMessage]
WHERE
(UserID = @UserID OR ToUserID = @UserID) AND MessageID > @MessageID AND Crdate > GETDATE() - 5
END
--第1次进来,获取所有客服留言
ELSE
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
MessageID, Title, UserID, ToUserID, Msg, Crdate
)
SELECT TOP 50
MessageID, Title, UserID, ToUserID, Msg, Crdate
FROM
[ServiceMessage]
WHERE
(UserID = @UserID OR ToUserID = @UserID) AND Crdate > GETDATE() - 5
ORDER BY
MessageID DESC
END
--置为已读
UPDATE [ServiceMessage] SET IsRead = 1 WHERE ToUserID = @UserID AND IsRead = 0
--发送图片次数
SELECT
@SendImgCount = COUNT(ImgID)
FROM
[ServiceMessageImage]
WHERE
Crdate >= CONVERT(VARCHAR(10), GETDATE(), 120) AND UserID = @UserID
--可使用次数
SET @SendImgCount = 15 - @SendImgCount
--返回信息
SELECT
MessageID, Title, UserID, ToUserID, Msg, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
@tmptable
ORDER BY
MessageID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_ServiceMessage_GetTip] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_ServiceMessage_GetTip]
-- @UserID = 1
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2015-08-13
-- Description: 获取客服留言提示
-- ==============================================
CREATE PROCEDURE [dbo].[WS_ServiceMessage_GetTip]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT TOP 1
MessageID
FROM
[ServiceMessage]
WHERE
ToUserID = @UserID AND Crdate > GETDATE() - 5 AND IsRead = 0
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_ServiceMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_ServiceMessage_Send]
-- @UserID = 1,
-- @Msg = ''
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2016-08-18
-- Description: 给客服留言
-- ==============================================
CREATE PROCEDURE [dbo].[WS_ServiceMessage_Send]
@UserID INT, --用户ID
@Title NVARCHAR(256), --标题
@Msg NVARCHAR(512), --留言内容
@Img VARCHAR(1024) --图片(十六进制)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @MessageID INT --留言ID
DECLARE @SendImgCount INT --发送图片次数
SET @MessageID = 0
SET @SendImgCount = 0
SET @CurrTime = GETDATE()
--插入客服留言信息
INSERT INTO [ServiceMessage]
(
UserID, Title, ToUserID, Msg, IsRead, Crdate, OpUserID, OpUserName, TransMsg, TagID
)
VALUES
(
@UserID, @Title, -1, @Msg, 0, @CurrTime, -1, '', '', 0
)
--消息ID
SET @MessageID = SCOPE_IDENTITY()
--发送图片次数
SELECT
@SendImgCount = COUNT(MessageID)
FROM
[ServiceMessageImage]
WHERE
Crdate >= CONVERT(VARCHAR(10), @CurrTime, 120) AND UserID = @UserID
--可使用次数
SET @SendImgCount = 15 - @SendImgCount
--有图片
IF(LEN(@Img) > 0)
BEGIN
INSERT INTO [ServiceMessageImage]
(
MessageID, UserID, Img, Crdate
)
VALUES
(
@MessageID, @UserID, @Img, @CurrTime
)
--可使用次数-1
SET @SendImgCount = @SendImgCount - 1
END
--返回信息
SELECT @MessageID AS MessageID, @SendImgCount AS SendImgCount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SettleVideo_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SettleVideo_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 结算视频列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SettleVideo_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
GameID, LoseAmount, MaxTimes, MaxRate
FROM
[SettleVideo]
ORDER BY
LoseAmount ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Share_GetItems] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Share_GetItems]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 分享
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Share_GetItems]
@UserID INT, --用户ID
@Reward TINYINT --isReward: 0 表示查询 1 表示领取,需要写数据库
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Items VARCHAR(128) --奖励
DECLARE @Crdate DATETIME --时间
DECLARE @DateFlag DATETIME --日期时间
--日期标识
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--获取分享信息
SELECT @Crdate = Crdate FROM [UserShare] WHERE Crdate >= @DateFlag AND UserID = @UserID
--已经领取过了
IF(@Crdate > 0)
RETURN
--物品
SET @Items = '[{"ItemId":1,"Count":3000}]'
--查询
IF(@Reward = 0)
BEGIN
--返回信息
SELECT @Items AS Items
RETURN
END
--添加
INSERT INTO [UserShare](UserID, Crdate) VALUES(@UserID, GETDATE())
--返回信息
SELECT @Items AS Items
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Shop_GetExchangeRate] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Shop_GetExchangeRate]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取汇率列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Shop_GetExchangeRate]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
Currency, CountryName, CountryCode, Rate
FROM
[ExchangeRate]
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Shop_GetFirstPurchase] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Shop_GetFirstPurchase]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取首次充值
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Shop_GetFirstPurchase]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
ProductID VARCHAR(32) NOT NULL, --产品ID
IsFirst TINYINT NOT NULL --是否首次
)
--初始化表变量
INSERT INTO @tmptable(ProductID, IsFirst)
SELECT ProductID, 0 FROM [DiamondMall] WHERE PayType = 1
--获取用户充值
UPDATE
@tmptable
SET
IsFirst = 1
WHERE
ProductID NOT IN (SELECT ProductID FROM [UserRechargeProduct] WHERE UserID = @UserID)
--返回信息
SELECT ProductID, IsFirst FROM @tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Shop_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Shop_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取商城列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Shop_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
ProductID, ProductName, Amount, Price, PayType, IsHot, Bonus, Extra, ShopType, ShowPrice,
Sort, AnimationType, UserType, IsBottom, ProductDesc
FROM
[DiamondMall]
UNION ALL
SELECT
ProductID, PackName, 1, Price, 1, 0, 0, '', 5, Price,
0, 0, 0, 0, ''
FROM
[GiftPack]
UNION ALL
SELECT
ProductID, PackName, 1, Price, 1, 0, 0, '', 6, Price,
0, 0, 0, 0, ''
FROM
[GrowthPack]
UNION ALL
SELECT
ProductID, ProductName, 1, Price, 1, 0, 0, '', 7, Price,
0, 0, 0, 0, ''
FROM
[MonthlyCard]
UNION ALL
SELECT
ProductID, VipDealName, 1, Price, 1, 0, 0, '', 8, Price,
0, 0, 0, 0, ''
FROM
[VipDeal]
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Shop_GetLotteryList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Shop_GetLotteryList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 抽奖商城列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Shop_GetLotteryList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
ShopType, ProductID, Ratio, MinOdds, MaxOdds
FROM
[LotteryMall]
ORDER BY
ProductID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Shop_GetRechargeList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Shop_GetRechargeList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 充值记录列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Shop_GetRechargeList]
@UserID INT, --用户ID
@ShopType INT --产品类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@ShopType > 0)
BEGIN
--返回信息
SELECT
ProductID, ShopType
FROM
[UserRechargeProduct]
WHERE
UserID = @UserID AND Crdate >= CONVERT(CHAR(10), GETDATE(), 120) AND ShopType = @ShopType
RETURN
END
--返回信息
SELECT
ProductId, ShopType
FROM
[UserRechargeProduct]
WHERE
UserID = @UserID AND Crdate >= CONVERT(CHAR(10), GETDATE(), 120)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Shop_GetShopTypeCount] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Shop_GetShopTypeCount]
-- @UserID = 0
-- @ShopType = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取商品类型的数量
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Shop_GetShopTypeCount]
@UserID INT, --用户ID
@ShopType INT --产品类型
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
COUNT(ProductID) as Num
FROM
[UserRechargeProduct]
WHERE
UserID = @UserID AND ShopType = @ShopType
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Sign_GetContinueList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Sign_GetContinueList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 连续签到信息列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Sign_GetContinueList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT Day, Award FROM [ContinueSignInfo] ORDER BY Day ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Sign_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Sign_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 签到信息列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Sign_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT SignID, Award, DoubleVipLevel FROM [SignInfo] ORDER BY SignID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SigninWheel_DoSignin] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SigninWheel_DoSignin]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 签到
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SigninWheel_DoSignin]
@UserID INT, --用户ID
@Base INT, --基础数值
@Multiple INT, --倍率
@Amount BIGINT, --金币
@ItemID INT, --道具ID
@ItemPack VARCHAR(128) --道具
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加
INSERT INTO [UserSigninHistory]
(
UserID, Base, Multiple, ItemID, Amount, Crdate, Awards
)
VALUES
(
@UserID, @Base, @Multiple, @ItemID, @Amount, GETDATE(), @ItemPack
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SigninWheel_GetConfig] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SigninWheel_GetConfig]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 签到配置信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SigninWheel_GetConfig]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT Info FROM [SigninConfig] WHERE ConfigID = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SigninWheel_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SigninWheel_History]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 签到历史
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SigninWheel_GetHistory]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
Base INT NOT NULL, --基础数值
Multiple INT NOT NULL, --倍率
ItemID INT NOT NULL, --道具ID
Awards VARCHAR(128) NOT NULL --道具
)
--初始化表变量
INSERT INTO @tmptable
(
Rid, UserID, Base, Multiple, ItemID, Awards
)
SELECT TOP 50
Rid, UserID, Base, Multiple, ItemID, Awards
FROM
[UserSigninHistory]
ORDER BY
Rid DESC
--返回信息
SELECT
UserID, Base, Multiple, ItemID, Awards
FROM
@tmptable
ORDER BY
Rid DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SigninWheel_GetLastTime] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SigninWheel_GetLastTime]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 签到最近签到时间
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SigninWheel_GetLastTime]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回最近签到时间
SELECT TOP 1 CONVERT(VARCHAR(20), Crdate, 120) AS Crdate FROM [UserSigninHistory] WHERE UserID = @UserID ORDER BY Rid DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SlotUser_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SlotUser_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-09-04
-- Description: Slot广告用户
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SlotUser_GetInfo]
@UserID INT, --用户ID
@GameID INT --游戏ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @TotalAdCount INT --广告次数
DECLARE @FreeSpinCount INT --免费次数
DECLARE @MoneySum BIGINT --输赢金币
DECLARE @StillAdCount INT --剩余广告次数
DECLARE @UpdateTime DATETIME --更新时间
DECLARE @CurrTime DATETIME --时间
DECLARE @DateFlag SMALLDATETIME --日期
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @MoneySum = 0
SET @GameID = CASE WHEN @GameID = 0 THEN 51 ELSE @GameID END
--输赢金币
SELECT @MoneySum = MoneySum FROM [DailyBetStat] WHERE DateFlag = @DateFlag AND UserID = @UserID AND GameID = @GameID
--配置信息
SELECT @TotalAdCount = TotalAdCount, @FreeSpinCount = FreeSpinCount FROM [SlotAdCfg] WHERE GameID = @GameID
--Slot广告用户信息
SELECT
@StillAdCount = StillAdCount, @UpdateTime = UpdateTime
FROM
[SlotAdUser]
WHERE
UserID = @UserID AND GameID = @GameID
--还没有数据
IF(@@ROWCOUNT = 0)
BEGIN
SET @StillAdCount = @TotalAdCount
INSERT INTO [SlotAdUser]
(
UserID, GameID, StillAdCount, UpdateTime
)
VALUES
(
@UserID, @GameID, @StillAdCount, @CurrTime
)
END
--过期了
IF(@UpdateTime <= @DateFlag)
BEGIN
SET @StillAdCount = @TotalAdCount
UPDATE
[SlotAdUser]
SET
StillAdCount = @StillAdCount, UpdateTime = @CurrTime
WHERE
UserID = @UserID AND GameID = @GameID
END
--返回信息
SELECT
@MoneySum AS MoneySum, @StillAdCount AS StillAdCount, @TotalAdCount AS TotalAdCount,
@FreeSpinCount AS FreeSpinCount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SlotUser_UseAd] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SlotUser_UseAd]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-09-04
-- Description: Slot广告用户
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SlotUser_UseAd]
@UserID INT, --用户ID
@GameID INT = 51 --游戏ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @StillAdCount INT --剩余广告次数
SET @RetCode = 0
SET @StillAdCount = 0
--剩余免费次数-1
UPDATE
[SlotAdUser]
SET
StillAdCount = StillAdCount - 1, @StillAdCount = StillAdCount - 1
WHERE
UserID = @UserID AND GameID = @GameID AND StillAdCount > 0
IF(@@ROWCOUNT = 0)
BEGIN
SELECT @RetCode AS RetCode, @StillAdCount AS StillAdCount
RETURN
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @StillAdCount AS StillAdCount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SNGMatch_WriteHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SNGMatch_WriteHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: SNG比赛历史记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SNGMatch_WriteHistory]
@MatchID INT, --比赛ID
@MatchNo VARCHAR(32), --比赛号
@MatchName VARCHAR(32), --比赛名称
@GameID INT, --游戏ID
@GameName VARCHAR(32), --游戏名称
@StartTime INT, --开始时间
@EndTime INT, --结束时间
@UserInfo VARCHAR(2048) --用户信息(用户ID1,名次1,积分1,报名费用ID1,报名费用1;用户ID2,昵称2,积分2,报名费用ID2,报名费用2;)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @SerialNumber BIGINT --流水号
DECLARE @UserID INT --用户ID
DECLARE @RankId INT --名次
DECLARE @Score INT --积分
DECLARE @ItemId INT --道具ID
DECLARE @Fee BIGINT --费用(报名)
DECLARE @StartIndex INT --起始索引
DECLARE @EndIndex INT --截止索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
RankId INT NOT NULL, --名次
Score INT NOT NULL, --积分
ItemId INT NOT NULL, --道具ID
Fee BIGINT NOT NULL --费用(报名)
)
--房间记录
INSERT INTO [SNGMatchHistory]
(
MatchID, MatchNo, MatchName, GameID, GameName, StartTime, EndTime
)
VALUES
(
@MatchID, @MatchNo, @MatchName, @GameID, @GameName, dbo.fn_StampToTime(@StartTime), dbo.fn_StampToTime(@EndTime)
)
--流水号
SET @SerialNumber = SCOPE_IDENTITY()
SET @StartIndex = 0
SET @EndIndex = 0
--用户ID1,名次1,积分1,报名费用1;
WHILE(1=1)
BEGIN
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
IF(@EndIndex <= 0)
BREAK
SET @UserID = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
SET @RankId = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
SET @Score = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(',', @UserInfo, @StartIndex)
SET @ItemId = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS INT)
SET @StartIndex = @EndIndex + 1
SET @EndIndex = CHARINDEX(';', @UserInfo, @StartIndex)
SET @Fee = CAST(SUBSTRING(@UserInfo, @StartIndex, @EndIndex - @StartIndex) AS BIGINT)
SET @StartIndex = @EndIndex + 1
--初始化表变量
INSERT INTO @tmptable
(
UserID, RankId, Score, ItemId, Fee
)
VALUES
(
@UserID, @RankId, @Score, @ItemId, @Fee
)
END
--SNG比赛椅子历史
INSERT INTO [SNGMatchChairHistory]
(
SerialNumber, UserID, RankId, Score, ItemId, Fee, Crdate
)
SELECT
@SerialNumber, UserID, RankId, Score, ItemId, Fee, dbo.fn_StampToTime(@StartTime)
FROM
@tmptable
ORDER BY
RankId ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Spread_Apply] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Spread_Apply]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 会员申请
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Spread_Apply]
@UserID INT, --用户ID
@Code INT, --推荐码(用户ID)
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--不能绑定自己
IF(@UserID = @Code)
BEGIN
SET @RetCode = 11
RETURN
END
--判断是否用户存在
IF NOT EXISTS(SELECT UserID FROM [AllUser] WHERE UserID = @Code)
BEGIN
SET @RetCode = 13
RETURN
END
--判断是否有过申请
IF EXISTS(SELECT UserID FROM [SpreadMember] WHERE UserID = @UserID)
BEGIN
SET @RetCode = 12
RETURN
END
--推广会员
INSERT INTO [SpreadMember]
(
UserID, Code, IsGift, Crdate
)
VALUES
(
@UserID, @Code, 0, GETDATE()
)
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Spread_GetMembers] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Spread_GetMembers]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 推广会员
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Spread_GetMembers]
@Code INT, --推广码(用户ID)
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartIndex INT --起始行索引
DECLARE @EndIndex INT --截止行索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
IsGift TINYINT NOT NULL, --是否领取奖励
Crdate DATETIME NOT NULL --时间
)
SET @StartIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndIndex = @PageIndex * @PageSize
--初始化
INSERT INTO @tmptable
(
UserID, IsGift, Crdate
)
SELECT
UserID, IsGift, Crdate
FROM
[SpreadMember]
WHERE
Code = @Code
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate ASC) AS RowNumber,
UserID, IsGift, Crdate
FROM
@tmptable
)
--返回信息
SELECT
UserID, IsGift, CONVERT(VARCHAR(20), Crdate, 120) AS Crdate
FROM
[List]
WHERE
RowNumber BETWEEN @StartIndex AND @EndIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Spread_Gift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Spread_Gift]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 领取奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Spread_Gift]
@Code INT, --推广码
@FromUserID INT, --用户ID
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--领取奖励
UPDATE [SpreadMember] SET IsGift = 1 WHERE Code = @Code AND UserID = @FromUserID AND IsGift = 0
IF(@@ROWCOUNT = 0)
RETURN
--领取成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SysBroadcast_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SysBroadcast_GetList]
-- @BroadcastID = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2013-08-10
-- Mendor: wolf
-- Alter Date: 2015-05-28
-- Description: 获取广播列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SysBroadcast_GetList]
@BroadcastID INT --广播ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @Rid INT --标识
DECLARE @InterMinutes INT --间隔分钟
DECLARE @Msg VARCHAR(512) --广播消息
SET @CurrTime = GETDATE()
--获取定时广播信息
SELECT TOP 1
@Rid = Rid, @Msg = Msg, @InterMinutes = InterMinutes
FROM
[TimeBroadcast]
WHERE
BeginDate + BeginTime <= @CurrTime
AND EndDate + EndTime >= @CurrTime
AND CONVERT(CHAR(11), @CurrTime, 120) + BeginTime <= @CurrTime
AND CONVERT(CHAR(11), @CurrTime, 120) + EndTime >= @CurrTime
AND DATEDIFF(MINUTE, UpdateTime, @CurrTime) >= InterMinutes
ORDER BY
UpdateTime ASC
--有定时广播消息
IF(@Rid > 0)
BEGIN
--加间隔分钟
UPDATE [TimeBroadcast] SET UpdateTime = @CurrTime WHERE Rid = @Rid
--广播消息
SET @Msg = 'System message:' + @Msg
--发送消息
INSERT INTO [SysBroadcast](UserID, Msg, Crdate, Priority) VALUES(-1, @Msg, @CurrTime, 110)
END
--第1次进来
IF(@BroadCastID = 0)
BEGIN
SELECT TOP 10
BroadcastID, Msg, Priority, UserID, '' AS Ext
FROM
[SysBroadcast]
WHERE
Crdate >= DATEADD(MINUTE, -1, @CurrTime)
ORDER BY
BroadcastID ASC
RETURN
END
--返回信息:广播ID(bid)(int)、消息(m)(varchar(1024))
SELECT TOP 10
BroadcastID, Msg, Priority, UserID, '' AS Ext
FROM
[SysBroadcast]
WHERE
BroadcastID > @BroadcastID AND Crdate >= DATEADD(MINUTE, -1, @CurrTime)
ORDER BY
BroadcastID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SysMessage_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SysMessage_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 删除系统消息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SysMessage_Del]
@UserID INT, --用户ID
@SysMsgID INT, --系统消息ID
@RetCode INT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--删除系统消息
--DELETE FROM [SysMessage] WHERE UserID = @UserID AND SysMsgID = @SysMsgID
UPDATE [SysMessage] SET Status = 3 WHERE UserID = @UserID AND SysMsgID = @SysMsgID AND Status IN (1, 2)
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SysMessage_GetGiftList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SysMessage_GetGiftList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取系统领取列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SysMessage_GetGiftList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
SysMsgID, Title, Content, Status, SourceName,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools, MsgType
FROM
[SysMessage]
WHERE
UserID = @UserID AND Crdate >= GETDATE() - 15 AND Status IN (0, 1)
ORDER BY
SysMsgID DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SysMessage_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SysMessage_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取系统消息信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SysMessage_GetInfo]
@UserID INT, --用户ID
@SysMsgID INT --系统消息ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
SysMsgID, Title, Content, Status, SourceName,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools
FROM
[SysMessage]
WHERE
UserID = @UserID AND SysMsgID = @SysMsgID AND Status < 3
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SysMessage_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SysMessage_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取系统消息列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SysMessage_GetList]
@UserID INT, --用户ID
@SysMsgID INT --系统消息ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@SysMsgID = 0)
BEGIN
SELECT TOP 50
SysMsgID, Title, Content, Status, SourceName,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools, MsgType
FROM
[SysMessage]
WHERE
UserID = @UserID AND Crdate >= GETDATE() - 10 AND Status < 3
ORDER BY
SysMsgID DESC
RETURN
END
SELECT
SysMsgID, Title, Content, Status, SourceName,
CONVERT(VARCHAR(20), Crdate, 120) AS Crdate, Tools, MsgType
FROM
[SysMessage]
WHERE
UserID = @UserID AND SysMsgID > @SysMsgID AND Status < 3
ORDER BY
SysMsgID DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SysMessage_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SysMessage_Send]
-- ==============================================
-- Author: wolf
-- Create Date: 2018-03-20
-- Mendor: wolf
-- Alter Date: 2018-03-20
-- Description: 发送邮件
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SysMessage_Send]
@UserID INT, --用户ID
@Title NVARCHAR(32), --标题
@Content NVARCHAR(256), --内容
@Status INT, --状态
@SourceName NVARCHAR(64), --源名称
@Crdate INT, --时间
@Tools VARCHAR(1024), --附件(json格式)
@SysMsgID INT OUTPUT, --邮件ID
@MsgType TINYINT = 0 --邮件类型(0=普通邮件 1=重要邮件)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--邮件
INSERT INTO [SysMessage]
(
UserID, Title, Content, Status, SourceName, Crdate, Tools, MsgType
)
VALUES
(
@UserID, @Title, @Content, @Status, @SourceName, dbo.fn_StampToTime(@Crdate), @Tools, @MsgType
)
SET @SysMsgID = SCOPE_IDENTITY()
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_SysMessage_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_SysMessage_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 更新系统消息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_SysMessage_Update]
@UserID INT, --用户ID
@SysMsgID INT, --系统消息ID
@Status INT, --状态
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--修改信息
UPDATE [SysMessage] SET Status = @Status WHERE SysMsgID = @SysMsgID AND UserID = @UserID
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Task_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Task_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 系统任务数值列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Task_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
TaskID, Title, [Desc], Action, Target, Repeatable, Duration, PreTask,
LimitedStart, LimitedDuration, Awards, SceneID, [Scope]
FROM
[Task]
ORDER BY
TaskID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_TransferCfg_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_TransferCfg_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-02-06
-- Mendor: wolf
-- Alter Date: 2016-09-11
-- Description: 赠送配置信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_TransferCfg_GetInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
SET @CurrTime = GETDATE()
--返回信息
SELECT
Fee, CONVERT(VARCHAR(16), FreeBeginTime, 120) AS FreeBeginTime, CONVERT(VARCHAR(16), FreeEndTime, 120) AS FreeEndTime,
CASE WHEN @CurrTime BETWEEN FreeBeginTime AND FreeEndTime THEN 1 ELSE 0 END AS FreeFlag,
CONVERT(VARCHAR(16), RefundBeginTime, 120) AS RefundBeginTime, CONVERT(VARCHAR(16), RefundEndTime, 120) AS RefundEndTime,
RefundRatio, RefundMaxAmount,
CASE WHEN @CurrTime BETWEEN RefundBeginTime AND RefundEndTime THEN 1 ELSE 0 END AS RefundFlag,
CONVERT(VARCHAR(16), MinBeginTime, 120) AS MinBeginTime, CONVERT(VARCHAR(16), MinEndTime, 120) AS MinEndTime,
MinAmount, CASE WHEN @CurrTime BETWEEN MinBeginTime AND MinEndTime THEN 1 ELSE 0 END AS MinFlag
FROM
[TransferConfig]
WHERE
ConfigID = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAchievement_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAchievement_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 用户成就列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAchievement_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT TaskID FROM [UserAchievement] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAchievement_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAchievement_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 用户成就设置
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAchievement_Update]
@UserID INT, --用户ID
@TaskID INT, --任务ID
@Status TINYINT --状态 1=设置 2=清理
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--1=设置
IF(@Status = 1)
BEGIN
IF EXISTS(SELECT UserID FROM [UserAchievement] WHERE UserID = @UserID AND TaskID = @TaskID)
RETURN
INSERT INTO [UserAchievement](UserID, TaskID) VALUES(@UserID, @TaskID)
RETURN
END
--2=清理
IF(@Status = 2)
BEGIN
DELETE FROM [UserAchievement] WHERE UserID = @UserID AND TaskID = @TaskID
RETURN
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_Apply] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_Apply]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 代理--申请
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_Apply]
@UserID INT, --用户信息
@Memo NVARCHAR(128) --备注(联系信息,如:电话)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @RetCode TINYINT
DECLARE @AuditEnabled TINYINT --审核是否启用
DECLARE @HigherUserID INT --上级ID
SET @RetCode = 0
SET @HigherUserID = 0
--判断是否已注册
IF EXISTS(SELECT UserID FROM [UserAgent] WHERE UserID = @UserID)
BEGIN
--操作成功
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--IMei
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--操作成功
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--不是facebook账号
IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.' AND LEFT(@IMei, 3) != 'gg.' AND LEFT(@deviceid, 3) != 'gg.')
BEGIN
--操作成功
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--是否需要审核
SELECT @AuditEnabled = AuditEnabled FROM [AgentConfig] WHERE ConfigID = 1
--审核,需要加入申请表
IF(@AuditEnabled = 1)
BEGIN
--判断是否已经申请过
--状态(0=审核 1=已通过 2=拒绝)
IF EXISTS(SELECT UserID FROM [AgentApply] WHERE UserID = @UserID AND ApplyStatus = 0)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
--上级
SELECT @HigherUserID = HigherUserID FROM [AgentMember] WHERE UserID = @UserID
--申请代理
INSERT INTO [AgentApply]
(
UserID, HigherUserID, ApplyStatus, Memo, DealTime, Crdate
)
VALUES
(
@UserID, @HigherUserID, 0, @Memo, GETDATE(), GETDATE()
)
END
--不需要审核,直接成为代理
ELSE
BEGIN
--初始化
INSERT INTO [UserAgent]
(
UserID, Commission, Profit, Members, Enabled, Crdate
)
VALUES
(
@UserID, 0, 0, 0, 1, GETDATE()
)
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_Bind] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_Bind]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 代理--绑定
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_Bind]
@UserID INT, --用户ID
@HigherUserID INT --代理ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @SysMsgID INT
DECLARE @TimeStamp INT --时间戳
DECLARE @Msg VARCHAR(256) --消息
DECLARE @DateFlag SMALLDATETIME --日期标识
SET @RetCode = 0
--不能绑定自己
IF(@UserID = 0 OR @UserID = @HigherUserID)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--IMei
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--操作成功
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
--不是facebook账号
IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.' AND LEFT(@IMei, 3) != 'gg.' AND LEFT(@deviceid, 3) != 'gg.')
BEGIN
--操作成功
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
--判断是否是代理
IF NOT EXISTS(SELECT UserID FROM [UserAgent] WHERE UserID = @HigherUserID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--判断是否已经绑定
IF EXISTS(SELECT UserID FROM [UserAgent] WHERE UserID = @UserID)
BEGIN
SET @RetCode = 14
SELECT @RetCode AS RetCode
RETURN
END
--判断是否已经绑定
IF EXISTS(SELECT UserID FROM [AgentMember] WHERE UserID = @UserID)
BEGIN
SET @RetCode = 15
SELECT @RetCode AS RetCode
RETURN
END
--绑定
INSERT INTO [AgentMember]
(
UserID, HigherUserID, Commission, BindTime, LoginTime
)
VALUES
(
@UserID, @HigherUserID, 0, GETDATE(), GETDATE()
)
--徒弟数+1
UPDATE [UserAgent] SET Members = Members + 1 WHERE UserID = @HigherUserID
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--生成任务
INSERT INTO [UserTask]
(
UserID, TaskID, Scheduled, Status, Start, Duration
)
SELECT
@UserID, TaskID, 0, 0, @DateFlag, 0
FROM
[Task]
WHERE
Action = 14
UNION ALL
SELECT
@UserID, TaskID, 0, 0, @DateFlag + (TaskID % 1400000 - 1), 86400
FROM
[Task]
WHERE
Action = 12 AND SceneID = 4
ORDER BY
TaskID ASC
--更新utm渠道流量,4方支付
UPDATE [UTM] SET Source = 'agentinvite' WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UTM]
(
UserID, Source, Medium, Term, Content, Campaign
)
VALUES
(
@UserID, 'agentinvite', '', '', '', ''
)
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_BindAwards] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_BindAwards]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 代理--绑定奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_BindAwards]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT Members, Profit FROM [AgentBindAward] ORDER BY Members ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_CommissionLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_CommissionLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 代理--收益列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_CommissionLog]
@UserID INT, --用户ID
@FromUserID INT, --源用户ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@Commission BIGINT OUTPUT, --佣金
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
GameID INT NOT NULL, --游戏ID
FromUserID INT NOT NULL, --源用户ID
WantCommission BIGINT NOT NULL, --操作佣金
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
IF(@FromUserID > 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable(GameID, FromUserID, WantCommission, Crdate)
SELECT
GameID, FromUserID, WantCommission, Crdate
FROM
[CommissionLog]
WHERE
Crdate >= GETDATE() - 30 AND UserID = @UserID AND FromUserID = @FromUserID AND Direct > 0
UNION ALL
SELECT
GameID, FromUserID, WantCommission, Crdate
FROM
[CommissionLogHistory]
WHERE
Crdate >= GETDATE() - 30 AND UserID = @UserID AND FromUserID = @FromUserID AND Direct > 0
END
ELSE
BEGIN
--初始化表变量
INSERT INTO @tmptable(GameID, FromUserID, WantCommission, Crdate)
SELECT
GameID, FromUserID, WantCommission, Crdate
FROM
[CommissionLog]
WHERE
Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct > 0
UNION ALL
SELECT
GameID, FromUserID, WantCommission, Crdate
FROM
[CommissionLogHistory]
WHERE
Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct > 0
END
--记录数
SET @RecordCount = @@ROWCOUNT
--累计收益
SET @Commission = ISNULL((SELECT SUM(WantCommission) FROM @tmptable WHERE WantCommission > 0), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Crdate DESC) AS RowNumber,
GameID, FromUserID, WantCommission, Crdate
FROM
@tmptable
)
--返回信息
SELECT
ISNULL(g.ChineseName, '') AS ChineseName, l.FromUserID, l.WantCommission,
CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate
FROM
[List] l LEFT JOIN [AllGame] g ON l.GameID = g.GameID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_CommissionStat] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_CommissionStat]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 代理--收益统计
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_CommissionStat]
@UserID INT, --用户ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@Commission BIGINT OUTPUT, --佣金
@Profit BIGINT OUTPUT, --收益
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
DateFlag SMALLDATETIME NOT NULL, --日期标识
Commission BIGINT NOT NULL, --佣金
Direct TINYINT NOT NULL --属级
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--初始化表变量
INSERT INTO @tmptable(DateFlag, Commission, Direct)
SELECT
DateFlag, SUM(Commission), Direct
FROM
[CommissionStat]
WHERE
DateFlag >= GETDATE() - 30 AND UserID = @UserID AND Direct > 0
GROUP BY
DateFlag, Direct
--记录数
SET @RecordCount = @@ROWCOUNT
--累计佣金
SET @Commission = ISNULL((SELECT SUM(Commission) FROM @tmptable WHERE Direct > 0), 0)
INSERT INTO @tmptable(DateFlag, Commission, Direct)
SELECT
Crdate, WantCommission, Direct
FROM
[CommissionLog]
WHERE
Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct = 0
UNION ALL
SELECT
Crdate, WantCommission, Direct
FROM
[CommissionLogHistory]
WHERE
Crdate >= GETDATE() - 30 AND UserID = @UserID AND Direct = 0
--记录数
SET @RecordCount = @RecordCount + @@ROWCOUNT
--累计收益
SET @Profit = ISNULL((SELECT SUM(Commission) FROM @tmptable WHERE Direct = 0), 0)
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY DateFlag DESC, Direct ASC) AS RowNumber,
DateFlag, Commission, Direct
FROM
@tmptable
)
--返回信息
SELECT
CONVERT(VARCHAR(16), DateFlag, 120) AS DateFlag, Commission, Direct
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_CommissionToAmount] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_CommissionToAmount]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-11
-- Mendor: wolf
-- Alter Date: 2017-02-23
-- Description: 佣金转金币
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_CommissionToAmount]
@UserID INT, --用户ID
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @WantCommission BIGINT --操作佣金
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
SET @WantCommission = 0
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--不用事务隔离级别,UPDATE 具有原子性
UPDATE
[UserAgent]
SET
Commission = 0, Profit = Profit + Commission, @WantCommission = Commission
WHERE
UserID = @UserID AND Commission > 0
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @WantCommission AS Commission
RETURN
END
--佣金日志
INSERT INTO [CommissionLog]
(
UserID, GameID, FromUserID, Tax, WantCommission, StillCommission, Direct,
Memo, Crdate
)
VALUES
(
@UserID, 0, @UserID, 0, -@WantCommission, 0, 0,
N'Commission To Cash', GETDATE()
)
--加金币
EXEC [Game_Money_GiveMoney] @UserID = @UserID, @SourceName = N'Commission', @GameID = 0, @WantedAmount = @WantCommission,
@LogType = 8, @Remark = N'Commission To Cash', @IPAddress = @IPAddress, @RetCode = @RetCode OUTPUT
--更新佣金统计
UPDATE
[CommissionStat]
SET
Commission = Commission - @WantCommission
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND Direct = 0
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [CommissionStat]
(
DateFlag, UserID, GameID, FromUserID, Commission, Direct
)
VALUES
(
@DateFlag, @UserID, 0, @UserID, -@WantCommission, 0
)
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @WantCommission AS Commission
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_ConfigInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_ConfigInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 代理--配置信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_ConfigInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
IsOpen, BindSend, BetOneDirect, BetTwoDirect,
TaxOneDirect, TaxTwoDirect, PayOneDirect, PayTwoDirect
FROM
[AgentConfig]
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_GetGroup] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_GetGroup]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 代理--群组
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_GetGroup]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--群组信息
SELECT Info FROM [AgentGroup] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 代理--获取信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Members INT --会员数
DECLARE @Commission BIGINT --佣金
DECLARE @Profit BIGINT --收益
DECLARE @Enabled TINYINT --是否代理 0=不是代理 1=代理 2=申请中
DECLARE @Crdate DATETIME --时间
DECLARE @ValidMembers INT --有效会员数
SET @Members = 0
SET @Commission = 0
SET @Profit = 0
SET @Enabled = 0
SET @Crdate = '2022-01-01'
SET @ValidMembers = 0
--申请中
IF EXISTS(SELECT UserID FROM [AgentApply] WHERE UserID = @UserID AND ApplyStatus = 0)
BEGIN
SET @Enabled = 2
END
--代理信息
SELECT
@Members = Members, @Commission = Commission, @Profit = Profit,
@Enabled = Enabled, @Crdate = Crdate
FROM
[UserAgent]
WHERE
UserID = @UserID
--有效会员数
SELECT @ValidMembers = COUNT(UserID) FROM [AgentMember] WHERE HigherUserID = @UserID AND Commission > 0
--返回信息
SELECT
@Members AS Members, @Commission AS Commission, @Profit AS Profit,
@Enabled AS Enabled, CONVERT(VARCHAR(16), @Crdate, 120) AS Crdate,
@ValidMembers AS ValidMembers
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_GetMembers] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_GetMembers]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-07-18
-- Mendor: wolf
-- Alter Date: 2017-01-05
-- Description: 代理--会员列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_GetMembers]
@UserID INT, --用户ID
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT, --记录数
@OnlineCount INT OUTPUT --在线人数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
UserID INT NOT NULL, --用户ID
BindTime DATETIME NOT NULL, --绑定时间
IsOnline TINYINT NOT NULL --是否在线
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--初始化表变量
INSERT INTO @tmptable(UserID, BindTime, IsOnline)
SELECT
UserID, BindTime, 0
FROM
[AgentMember]
WHERE
HigherUserID = @UserID AND LoginTime != BindTime
--记录数
SET @RecordCount = @@ROWCOUNT
--实时在线
UPDATE t SET t.IsOnline = 1 FROM @tmptable t INNER JOIN [t_onlineuser] c ON t.UserID = c.UserID
--在线人数
SELECT @OnlineCount = COUNT(UserID) FROM @tmptable WHERE IsOnline = 1
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY BindTime DESC) AS RowNumber,
UserID, BindTime, IsOnline
FROM
@tmptable
)
--返回信息
SELECT
UserID, CONVERT(VARCHAR(16), BindTime, 120) AS BindTime, IsOnline
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAgent_UpdateGroup] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAgent_UpdateGroup]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 代理--修改群组
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAgent_UpdateGroup]
@UserID INT, --用户ID
@Info NVARCHAR(MAX) --群组信息
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--修改代理信息
UPDATE [AgentGroup] SET Info = @Info WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [AgentGroup](UserID, Info) VALUES(@UserID, @Info)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAward_GetSysInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAward_GetSysInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 活动系统数值
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAward_GetSysInfo]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
ActiveID, ActiveName, TotalTimes, Awards, PerDay
FROM
[AwardInfo]
ORDER BY
ActiveID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserAward_Send] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserAward_Send]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-09-03
-- Mendor: wolf
-- Alter Date: 2014-12-02
-- Description: 活动记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserAward_Send]
@UserID INT, --用户ID
@ActiveID INT, --活动ID
@TotalTimes INT, --总次数
@PerDay INT, --每隔几天
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @CurrTimes INT --当前次数
DECLARE @DateFlag SMALLDATETIME --日期标识
SET @RetCode = 0
SET @CurrTimes = 0
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--统计次数
SELECT
@CurrTimes = COUNT(UserID)
FROM
[UserAwardLog]
WHERE
UserID = @UserID AND ActiveID = @ActiveID AND Crdate >= @DateFlag - @PerDay
--超过总次数
IF(@CurrTimes >= @TotalTimes)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
--记录
INSERT INTO [UserAwardLog]
(
UserID, ActiveID, IPAddress, Crdate
)
VALUES
(
@UserID, @ActiveID, @IPAddress, GETDATE()
)
--操作成功
SET @RetCode = 1
--返回信息
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserBadge_GetBadgeList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserBadge_GetBadgeList]
-- @UserId = 100
-- ==============================================
-- Author: wolf
-- Create Date: 2023-05-12
-- Mendor: wolf
-- Alter Date: 2023-05-12
-- Description: 获取用户的徽章列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserBadge_GetBadgeList]
@UserId INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
BadgeId, [Level], Exps, Points, Times, [Position], ExpiresTime, ObtainDate, Crdate
FROM
[UserBadge]
WHERE
UserId = @UserId
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserBadge_SaveBadge] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserBadge_SaveBadge]
-- @UserId = 100
-- @BadgeId = 100
-- @Level = 1
-- @Exps = 150
-- @Points = 1
-- @Times = 1
-- @Position = 1
-- @ExpiresTime = 0
-- @ObtainDate = "[\"2023-05-16 15:15:15\"]"
-- ==============================================
-- Author: wolf
-- Create Date: 2023-05-16
-- Mendor: wolf
-- Alter Date: 2023-05-16
-- Description: 保存用户徽章
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserBadge_SaveBadge]
@UserId INT, -- 用户ID
@BadgeId INT, -- 徽章id
@Level SMALLINT, -- 徽章等级
@Exps INT, -- 徽章经验
@Points TINYINT, -- 徽章点数(用于排行榜)
@Times INT, -- 获取次数
@Position SMALLINT, -- 位置(-1=未佩戴 0递增对应位置)
@ExpiresTime INT, -- 到期时间戳
@ObtainDate VARCHAR(128), -- 徽章多个等级的获得日期
@Crdate DATETIME -- 创建日期
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
-- 修改数据:穿戴徽章
UPDATE
[UserBadge]
SET
[Level] = @Level, Exps = @Exps, Points = @Points, Times = @Times, [Position] = @Position,
ExpiresTime = @ExpiresTime, ObtainDate = @ObtainDate, Crdate = @Crdate
WHERE
BadgeId = @BadgeId AND UserId = @UserId
IF(@@ROWCOUNT = 0)
BEGIN
-- 新增用户徽章信息
INSERT INTO [UserBadge]
(
UserId, BadgeId, [Level], Exps, Points, Times, [Position], ExpiresTime, ObtainDate, Crdate
)
VALUES
(
@UserId, @BadgeId, @Level, @Exps, @Points, @Times, @Position, @ExpiresTime, @ObtainDate, @Crdate
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserCharm_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserCharm_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 更新魅力值
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserCharm_Update]
@UserID INT, --用户ID
@Charm INT --魅力值
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @WantCharm INT --变化魅力值
SET @WantCharm = 0
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--更新魅力值信息
UPDATE
[UserCharm]
SET
Charm = @Charm, @WantCharm = @Charm - Charm
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserCharm]
(
UserID, Charm
)
VALUES
(
@UserID, @Charm
)
--变化魅力值
SET @WantCharm = @Charm
END
--历史
UPDATE
[UserCharmHistory]
SET
Charm = Charm + @WantCharm
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--记录历史
INSERT INTO [UserCharmHistory]
(
DateFlag, UserID, Charm
)
VALUES
(
@DateFlag, @UserID, @WantCharm
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserChipScore_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserChipScore_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户元宝积分信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserChipScore_GetInfo]
@UserID INT, --用户ID
@RankType TINYINT --榜单类型 (9=元宝积分昨天榜 10=元宝积分今天榜 11=元宝积分总榜)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Score BIGINT --积分
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
--9=昨天的
IF(@RankType = 9)
BEGIN
SELECT @Score = SUM(Score) FROM [UserChipScore] WHERE DateFlag = @DateFlag - 1 AND UserID = @UserID
END
--10=今天的
ELSE IF(@RankType = 10)
BEGIN
SELECT @Score = SUM(Score) FROM [UserChipScore] WHERE DateFlag = @DateFlag AND UserID = @UserID
END
--11=总分榜
ELSE IF(@RankType = 11)
BEGIN
SELECT @Score = SUM(Score) FROM [UserChipScore] WHERE UserID = @UserID
END
SELECT ISNULL(@Score, 0) AS Score
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserChipSubsidy_Gift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserChipSubsidy_Gift]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 元宝补助
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserChipSubsidy_Gift]
@UserID INT, --用户ID
@LowerAmount BIGINT, --最低金额
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Amount BIGINT --金币数
DECLARE @Bank BIGINT --保险柜
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
SET @RetCode = 0
--是否超过3次
IF((SELECT COUNT(Rid) FROM [UserChipSubsidy] WHERE Crdate >= @DateFlag AND UserID = @UserID) >= 3)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--IP已经领取过
IF EXISTS(SELECT Rid FROM [UserChipSubsidy] WHERE Crdate >= @DateFlag AND IPAddress = @IPAddress AND UserID != @UserID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--筹码
EXEC [Game_Chip_GetInfo] @UserID = @UserID, @Amount = @Amount OUTPUT, @Bank = @Bank OUTPUT
--判断是否触发低保
IF((@Amount + @Bank) >= @LowerAmount)
BEGIN
SET @RetCode = 13
SELECT @RetCode AS RetCode
RETURN
END
--初始化
INSERT INTO [UserChipSubsidy](UserID, IPAddress, Crdate) VALUES(@UserID, @IPAddress, @CurrTime)
--返回信息
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserDecoration_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserDecoration_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 获取用户装扮列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserDecoration_GetList]
@UserID INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
DecorationType AS [Type], ItemID
FROM
[UserDecoration]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserDecoration_SaveInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserDecoration_SaveInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 保存用户装扮
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserDecoration_SaveInfo]
@UserID INT,
@DecorationType INT, --装扮类型
@ItemID INT --道具ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
SET @RetCode = 0
--修改
UPDATE
[UserDecoration]
SET
ItemID = @ItemID
WHERE
UserID = @UserID AND DecorationType = @DecorationType
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDecoration]
(
UserID, DecorationType, ItemID
)
VALUES
(
@UserID, @DecorationType, @ItemID
)
END
SET @RetCode = 1
--返回信息
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserDot_Insert] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserDot_Insert]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 添加打点数据
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserDot_Insert]
@UserID VARCHAR(16), --用户ID
@DateFlag SMALLDATETIME, --日期标识
@Scene VARCHAR(32), --场景
@Event VARCHAR(32), --事件
@Action TINYINT, --动作(1=点击 2=完成 3=领取)
@Times INT --次数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新统计
UPDATE
[UserDot]
SET
Times = Times + @Times
WHERE
UserID = @UserID AND DateFlag = @DateFlag AND Scene = @Scene AND Event = @Event AND Action = @Action
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDot]
(
UserID, DateFlag, Scene, Event, Action, Times
)
VALUES
(
@UserID, @DateFlag, @Scene, @Event, @Action, @Times
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFacebook_Bind] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFacebook_Bind]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: facebook 绑定
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFacebook_Bind]
@UserID INT, --用户ID
@OpenID VARCHAR(64), --openid
@NickName NVARCHAR(32), --昵称
@FaceUrl VARCHAR(1024) --头像URL
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果 1=绑定成功 11=该账号已绑定 12=facebook账号已使用
DECLARE @IMei VARCHAR(64) --IMei
DECLARE @deviceid VARCHAR(64) --设备号
DECLARE @Amount INT --赠送金币
SET @RetCode = 0
SET @Amount = 0
--不是facebook账号
IF(LEFT(@OpenID, 3) != 'fb.' AND LEFT(@OpenID, 3) != 'gg.')
BEGIN
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--设备号
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
--已绑定
IF(LEFT(@IMei, 3) = 'fb.' OR LEFT(@IMei, 3) = 'gg.')
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--已绑定
IF(LEFT(@deviceid, 3) = 'fb.' OR LEFT(@deviceid, 3) = 'gg.')
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--判断是否已绑定
IF EXISTS(SELECT deviceid FROM [AllUser] WHERE deviceid = @OpenID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--判断是否已绑定
IF EXISTS(SELECT IMei FROM [AllUser] WHERE IMei = @OpenID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--修改信息
UPDATE [AllUser] SET NickName = @NickName, deviceid = @OpenID WHERE UserID = @UserID
--更新头像
UPDATE [UserFace] SET FaceUrl = @FaceUrl, FaceID = 0 WHERE UserID = @UserID
--获取绑定赠送
SELECT @Amount = BindFacebook FROM [PlatformConfig] WHERE ConfigID = 1
--操作结果
SET @RetCode = 1
--返回信息
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_AddBlack] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_AddBlack]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 添加黑名单
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_AddBlack]
@UserID INT, --用户ID
@ToUserID INT, --目标用户ID
@Crdate DATETIME --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE [BlackFriends] SET Crdate = @Crdate WHERE UserID = @UserID AND ToUserID = @ToUserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [BlackFriends]
(
UserID, ToUserID, Crdate
)
VALUES
(
@UserID, @ToUserID, @Crdate
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_AddPotential] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_AddPotential]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 添加潜在好友
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_AddPotential]
@UserID INT, --用户ID
@FriendUserID INT, --潜在好友ID
@Memo NVARCHAR(64), --描述
@MetTime INT --时间戳
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加
INSERT INTO [PotentialFriends]
(
UserID, FriendUserID, Memo, MetTime
)
VALUES
(
@UserID, @FriendUserID, @Memo, dbo.fn_StampToTime(@MetTime)
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_Apply] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_Apply]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 好友申请
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_Apply]
@UserID INT, --用户ID
@ToUserID INT --目标用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--好友申请
INSERT INTO [UserFriendsApply]
(
UserID, ToUserID, Status, DealTime, Crdate
)
VALUES
(
@UserID, @ToUserID, 0, GETDATE(), GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_DealApply] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_DealApply]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 好友申请处理
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_DealApply]
@UserID INT, --用户ID
@FromUserID INT, --请求用户ID
@Status TINYINT --状态 1=同意 2=拒绝
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--处理
UPDATE
[UserFriendsApply]
SET
Status = @Status, DealTime = GETDATE()
WHERE
ToUserID = @UserID AND UserID = @FromUserID AND Status = 0
--拒绝
IF(@Status != 1)
RETURN
--好友
INSERT INTO [UserFriends]
(
UserID, ToUserID, IsGift, GiftTime, GiveTime, Crdate
)
SELECT @UserID, @FromUserID, 0, '2021-01-01', '2021-01-01', GETDATE()
UNION ALL
SELECT @FromUserID, @UserID, 0, '2021-01-01', '2021-01-01', GETDATE()
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 好友删除
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_Del]
@UserID INT, --用户ID
@ToUserID INT --删除用户
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--好友历史
INSERT INTO [UserFriendsHistory]
(
FriendID, UserID, ToUserID, Crdate, DelTime
)
SELECT
FriendID, UserID, ToUserID, Crdate, GETDATE()
FROM
[UserFriends]
WHERE
UserID = @UserID AND ToUserID = @ToUserID
UNION ALL
SELECT
FriendID, UserID, ToUserID, Crdate, GETDATE()
FROM
[UserFriends]
WHERE
UserID = @ToUserID AND ToUserID = @UserID
--删除自己好友
DELETE FROM [UserFriends] WHERE UserID = @UserID AND ToUserID = @ToUserID
--删除对方好友
DELETE FROM [UserFriends] WHERE UserID = @ToUserID AND ToUserID = @UserID
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_DelBlack] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_DelBlack]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 删除黑名单
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_DelBlack]
@UserID INT, --用户ID
@ToUserID INT --目标用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--删除
DELETE FROM [BlackFriends] WHERE UserID = @UserID AND ToUserID = @ToUserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_DelPotential] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_DelPotential]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 删除潜在好友
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_DelPotential]
@UserID INT, --用户ID
@FriendUserID INT --潜在好友ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--删除
DELETE FROM [PotentialFriends] WHERE UserID = @UserID AND FriendUserID = @FriendUserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_ExistBlack] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_ExistBlack]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 是否在黑名单中
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_ExistBlack]
@UserID INT, --用户ID
@ToUserID INT --目标用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --是否存在
SET @RetCode = 0
IF EXISTS(SELECT UserID FROM [BlackFriends] WHERE UserID = @UserID AND ToUserID = @ToUserID)
BEGIN
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
IF EXISTS(SELECT UserID FROM [BlackFriends] WHERE UserID = @ToUserID AND ToUserID = @UserID)
BEGIN
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_GetApplyList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_GetApplyList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 申请列表(自己申请的)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_GetApplyList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL --目标用户ID
)
--初始化表变量
INSERT INTO @tmptable
(
UserID
)
SELECT
ToUserID
FROM
[UserFriendsApply]
WHERE
UserID = @UserID AND Status = 0
--没有用户信息
IF(@@ROWCOUNT = 0)
BEGIN
--返回信息
SELECT UserID FROM @tmptable
RETURN
END
--返回信息
SELECT UserID FROM @tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_GetBlackList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_GetBlackList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-17
-- Mendor: wolf
-- Alter Date: 2016-08-16
-- Description: 黑名单列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_GetBlackList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
ToUserID AS UserID, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[BlackFriends]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_GetGift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_GetGift]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 领取好友礼物
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_GetGift]
@UserID INT, --用户ID
@ToUserID INT --目标用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--好友
UPDATE
[UserFriends]
SET
IsGift = 2, GiftTime = GETDATE()
WHERE
UserID = @UserID AND ToUserID = @ToUserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 好友列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_GetList]
@UserID INT, --用户ID
@ToUserID INT --目标用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
ToUserID INT NOT NULL, --目标用户ID
IsGift TINYINT NOT NULL, --是否有礼物领取(0=没有礼物 1=有礼物还没领 2=有礼物已领取)
GiftTime DATETIME NOT NULL, --礼物时间
GiveTime DATETIME NOT NULL --赠送时间
)
--查询某个用户
IF(@ToUserID > 0)
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
ToUserID, IsGift, GiftTime, GiveTime
)
SELECT
ToUserID, IsGift, GiftTime, GiveTime
FROM
[UserFriends]
WHERE
UserID = @UserID AND ToUserID = @ToUserID
END
--查询所有用户
ELSE
BEGIN
--初始化表变量
INSERT INTO @tmptable
(
ToUserID, IsGift, GiftTime, GiveTime
)
SELECT
ToUserID, IsGift, GiftTime, GiveTime
FROM
[UserFriends]
WHERE
UserID = @UserID
END
--没有用户信息
IF(@@ROWCOUNT = 0)
BEGIN
--返回信息
SELECT
ToUserID, IsGift, CONVERT(VARCHAR(20), GiftTime, 120) AS GiftTime,
CONVERT(VARCHAR(20), GiveTime, 120) AS GiveTime
FROM
@tmptable
RETURN
END
--返回信息
SELECT
ToUserID, IsGift, CONVERT(VARCHAR(20), GiftTime, 120) AS GiftTime,
CONVERT(VARCHAR(20), GiveTime, 120) AS GiveTime
FROM
@tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_GetPotentialList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_GetPotentialList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-06-11
-- Description: 潜在好友列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_GetPotentialList]
@UserID INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
FriendUserID AS UserId, Memo, dbo.fn_TimeToStamp(MetTime) AS MetTime
FROM
[PotentialFriends]
WHERE
UserID = @UserID
ORDER BY
MetTime DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_GetVerifyList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_GetVerifyList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 审核列表(谁来申请的)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_GetVerifyList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--申请表变量
DECLARE @tmptable TABLE(
UserID INT NOT NULL --目标用户ID
)
--初始化表变量
INSERT INTO @tmptable
(
UserID
)
SELECT
UserID
FROM
[UserFriendsApply]
WHERE
ToUserID = @UserID AND Status = 0
--没有用户信息
IF(@@ROWCOUNT = 0)
BEGIN
--返回信息
SELECT UserID FROM @tmptable
RETURN
END
--返回信息
SELECT UserID FROM @tmptable
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserFriends_GiveGift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserFriends_GiveGift]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-03-13
-- Mendor: wolf
-- Alter Date: 2017-02-16
-- Description: 好友赠送礼物
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserFriends_GiveGift]
@UserID INT, --用户ID
@ToUserID INT --目标用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--赠送时间
UPDATE [UserFriends] SET GiveTime = GETDATE() WHERE UserID = @UserID AND ToUserID = @ToUserID
--获赠方标识
UPDATE [UserFriends] SET IsGift = 1 WHERE UserID = @ToUserID AND ToUserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGameCount_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGameCount_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户游戏局数列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGameCount_GetList]
@UserID INT, --用户ID
@GameID INT --游戏ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
IF(@GameID > 0)
BEGIN
SELECT
GameID, TotalCount, WinCount, MaxWinAmount, CardStat
FROM
[UserGameCount]
WHERE
UserID = @UserID AND GameID = @GameID
RETURN
END
--返回信息
SELECT
GameID, TotalCount, WinCount, MaxWinAmount, CardStat
FROM
[UserGameCount]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGameCount_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGameCount_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户游戏局数更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGameCount_Update]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@CardStat VARCHAR(1024) --牌型统计
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新信息
UPDATE
[UserGameCount]
SET
CardStat = CASE WHEN @CardStat != '' THEN @CardStat ELSE CardStat END
WHERE
UserID = @UserID AND GameID = @GameID
IF(@@ROWCOUNT > 0)
RETURN
--用户游戏局数
INSERT INTO [UserGameCount]
(
UserID, GameID, TotalCount, WinCount, MaxWinAmount, CardStat
)
VALUES
(
@UserID, @GameID, 0, 0, 0, @CardStat
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGameSettleVideo_Add] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGameSettleVideo_Add]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 游戏返还视频添加
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGameSettleVideo_Add]
@UserID INT, --用户ID
@GameID INT, --游戏ID
@LoseAmount BIGINT, --输金币
@MaxTimes TINYINT, --最大次数
@SettleTimes TINYINT, --返还次数
@MaxAmount BIGINT, --最大金币
@SettleAmount BIGINT, --返还金币
@Crdate DATETIME --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @SettleID INT --结算ID
INSERT INTO [UserSettleVideo]
(
UserID, GameID, LoseAmount, MaxTimes, SettleTimes, MaxAmount, SettleAmount, Crdate
)
VALUES
(
@UserID, @GameID, @LoseAmount, @MaxTimes, @SettleTimes, @MaxAmount, @SettleAmount, @Crdate
)
SET @SettleID = SCOPE_IDENTITY()
--返回信息
SELECT @SettleID AS SettleID
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGameSettleVideo_Award] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGameSettleVideo_Award]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2015-08-10
-- Description: 游戏返还视频奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGameSettleVideo_Award]
@UserID INT, --用户ID
@SettleID INT, --结算ID
@SettleTimes TINYINT, --结算次数
@SettleAmount BIGINT --结算金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新信息
UPDATE
[UserSettleVideo]
SET
SettleTimes = @SettleTimes, SettleAmount = @SettleAmount
WHERE
SettleID = @SettleID AND UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGameSettleVideo_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGameSettleVideo_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-08-29
-- Mendor: wolf
-- Alter Date: 2015-08-10
-- Description: 用户游戏返还视频
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGameSettleVideo_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返还信息
SELECT TOP 20
SettleID, GameID, LoseAmount, MaxTimes, SettleTimes,
MaxAmount, SettleAmount, dbo.fn_TimeToStamp(Crdate) AS ts,
CONVERT(CHAR(16), Crdate, 120) AS Crdate
FROM
[UserSettleVideo]
WHERE
UserID = @UserID
ORDER BY
SettleID DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGiftPack_GetHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGiftPack_GetHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户礼包历史
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGiftPack_GetHistory]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
GiftPackId, LastPhaseTime
FROM
[UserGiftPackHistory]
WHERE
UserID = @UserID
UNION ALL
SELECT
GiftPackId = 0, LastPhaseTime = RegTime
FROM
[AllUser]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGiftPack_UpdateHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGiftPack_UpdateHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 更新用户礼包历史
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGiftPack_UpdateHistory]
@UserID INT, --用户ID
@GiftPackId INT, --礼包ID
@LastPhaseTime DATETIME, --时间
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--更新用户礼包历史
UPDATE
[UserGiftPackHistory]
SET
LastPhaseTime = @LastPhaseTime
WHERE
UserID = @UserID AND GiftPackId = @GiftPackId
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
RETURN
END
--初始化
INSERT INTO [UserGiftPackHistory]
(
UserId, GiftPackId, LastPhaseTime
)
VALUES
(
@UserID, @GiftPackId, @LastPhaseTime
)
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGrowthPack_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGrowthPack_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-02
-- Mendor: wolf
-- Alter Date: 2014-12-10
-- Description: 获取用户成长礼包
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGrowthPack_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
GrowthPackID, TermIndex, Bullet, Status
FROM
[UserGrowthPack]
WHERE
UserID = @UserID
ORDER BY
GrowthPackID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserGrowthPack_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserGrowthPack_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-02
-- Mendor: wolf
-- Alter Date: 2014-12-10
-- Description: 更新用户成长礼包
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserGrowthPack_Update]
@UserID INT, --用户ID
@GrowthPackID INT, --礼包ID
@TermIndex INT, --解锁条件Index
@Bullet INT, --目标炮台等级
@Status TINYINT, --状态(0=没有 1=可领取 2=已领取)
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--更新信息
UPDATE
[UserGrowthPack]
SET
Bullet = @Bullet, Status = @Status
WHERE
UserID = @UserID AND GrowthPackID = @GrowthPackID AND TermIndex = @TermIndex
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
RETURN
END
--初始化
INSERT INTO [UserGrowthPack]
(
UserID, GrowthPackID, TermIndex, Bullet, Status
)
VALUES
(
@UserID, @GrowthPackID, @TermIndex, @Bullet, @Status
)
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserItem_AddLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserItem_AddLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户道具日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserItem_AddLog]
@UserID INT, --用户ID
@ItemID INT, --道具ID
@CurrCount BIGINT, --当前数量
@WantCount BIGINT, --道具数量
@StillCount BIGINT, --剩余数量
@Remark NVARCHAR(128), --备注
@IPAddress VARCHAR(16) --IP地址
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
--记录日志
INSERT INTO [UserItemLog]
(
UserID, ItemID, CurrCount, WantCount, StillCount,
Remark, IPAddress, Crdate
)
VALUES
(
@UserID, @ItemID, @CurrCount, @WantCount, @StillCount,
@Remark, @IPAddress, GETDATE()
)
--620100=红包券
IF(@ItemID = 620100)
BEGIN
SET @DateFlag = CONVERT(CHAR(11), GETDATE(), 120) + LTRIM(STR(DATEPART(HOUR, GETDATE()))) + ':00'
--更新
UPDATE
[UserCouponStat]
SET
CouponCount = CouponCount + @WantCount
WHERE
DateFlag = @DateFlag AND UserID = @UserID AND Remark = @Remark
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserCouponStat]
(
DateFlag, UserID, Remark, CouponCount
)
VALUES
(
@DateFlag, @UserID, @Remark, @WantCount
)
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserItem_Del] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserItem_Del]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户道具删除
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserItem_Del]
@UserID INT, --用户ID
@ItemID INT --道具ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--删除
DELETE FROM [UserItem] WHERE UserID = @UserID AND ItemID = @ItemID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserItem_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserItem_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户道具列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserItem_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
ItemID AS ItemId, ItemCount AS Count, Start,
Duration, EnegyPoint
FROM
[UserItem]
WHERE
UserID = @UserID
ORDER BY
ItemID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserItem_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserItem_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户道具更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserItem_Update]
@UserID INT, --用户ID
@ItemID INT, --道具ID
@ItemCount INT, --道具数
@Start INT, --开始时间
@Duration INT, --持续时间(叠加)
@EnegyPoint INT --道具能量
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新
UPDATE
[UserItem]
SET
ItemCount = @ItemCount, Start = @Start, Duration = @Duration, EnegyPoint = @EnegyPoint
WHERE
UserID = @UserID AND ItemID = @ItemID
IF(@@ROWCOUNT > 0)
RETURN
--添加数据
INSERT INTO [UserItem]
(
UserID, ItemID, ItemCount, Start, Duration, EnegyPoint
)
VALUES
(
@UserID, @ItemID, @ItemCount, @Start, @Duration, @EnegyPoint
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserLabel_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserLabel_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户标签信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserLabel_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--数据
SELECT
TypeID, LabelID, TotalValue, JsonData
FROM
[UserLabel]
WHERE
UserID = @UserID
ORDER BY
TypeID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserLabel_Save] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserLabel_Save]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户标签保存
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserLabel_Save]
@UserID INT, --用户ID
@TypeID INT, --类型ID
@LabelID VARCHAR(32), --标签ID
@TotalValue INT, --累计值
@JsonData VARCHAR(4096),
@Days INT --时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UserLabel]
SET
LabelID = @LabelID, TotalValue = @TotalValue, JsonData = @JsonData, UpdateTime = GETDATE()
WHERE
UserID = @UserID AND TypeID = @TypeID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserLabel]
(
UserID, TypeID, LabelID, TotalValue, JsonData, UpdateTime
)
VALUES
(
@UserID, @TypeID, @LabelID, @TotalValue, @JsonData, GETDATE()
)
END
--标签池
UPDATE
[LabelPool]
SET
LabelID = @LabelID, RegTime = GETDATE(), Expire = GETDATE() + @Days
WHERE
UserID = @UserID AND TypeID = @TypeID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [LabelPool]
(
TypeID, LabelID, UserID, RegTime, Expire
)
VALUES
(
@TypeID, @LabelID, @UserID, GETDATE(), GETDATE() + @Days
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserMonthlyCard_Buy] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserMonthlyCard_Buy]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 用户月卡购买
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserMonthlyCard_Buy]
@UserID INT, --用户ID
@MonthExpire INT, --月卡过期时间戳
@WeekExpire INT, --周卡过期时间戳
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--购买
UPDATE
[UserMonthlyCard]
SET
MonthExpire = CASE WHEN @MonthExpire > 0 THEN dbo.fn_StampToTime(@MonthExpire) ELSE MonthExpire END,
WeekExpire = CASE WHEN @WeekExpire > 0 THEN dbo.fn_StampToTime(@WeekExpire) ELSE WeekExpire END
WHERE
UserID = @UserID
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
RETURN
END
--初始化
INSERT INTO [UserMonthlyCard]
(
UserID, MonthGift, MonthExpire, WeekGift, WeekExpire
)
VALUES
(
@UserID, '1970-01-01', dbo.fn_StampToTime(@MonthExpire), '1970-01-01', dbo.fn_StampToTime(@WeekExpire)
)
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserMonthlyCard_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserMonthlyCard_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 月卡信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserMonthlyCard_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
CONVERT(VARCHAR(20), MonthGift, 120) AS MonthGift, CONVERT(VARCHAR(20), MonthExpire, 120) AS MonthExpire,
CONVERT(VARCHAR(20), WeekGift, 120) AS WeekGift, CONVERT(VARCHAR(20), WeekExpire, 120) AS WeekExpire
FROM
[UserMonthlyCard]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserMonthlyCard_Gift] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserMonthlyCard_Gift]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 用户月卡领取物品
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserMonthlyCard_Gift]
@UserID INT, --用户ID
@MonthGift INT, --月卡领取时间戳
@WeekGift INT, --周卡领取时间戳
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--更新领取时间
UPDATE
[UserMonthlyCard]
SET
MonthGift = CASE WHEN @MonthGift > 0 THEN dbo.fn_StampToTime(@MonthGift) ELSE MonthGift END,
WeekGift = CASE WHEN @WeekGift > 0 THEN dbo.fn_StampToTime(@WeekGift) ELSE WeekGift END
WHERE
UserID = @UserID
IF(@@ROWCOUNT <= 0)
RETURN
--操作成功
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSign_GetContinueList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSign_GetContinueList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户连续签到信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSign_GetContinueList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
[Day], Status
FROM
[UserContinueSign]
WHERE
UserID = @UserID
ORDER BY
[Day] ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSign_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSign_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户签到信息列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSign_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT SignID, dbo.fn_TimeToStamp(SignTime) AS SignTime FROM [UserSign] WHERE UserID = @UserID ORDER BY SignID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSign_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSign_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户签到信息更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSign_Update]
@UserID INT, --用户ID
@SignID INT, --签到id
@SignTime INT --签到时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新用户签到信息
UPDATE [UserSign] SET SignTime = dbo.fn_StampToTime(@SignTime) WHERE UserID = @UserID AND SignID = @SignID
IF(@@ROWCOUNT > 0)
RETURN
--生成数据
INSERT INTO [UserSign]
(
UserID, SignID, SignTime
)
VALUES
(
@UserID, @SignID, dbo.fn_StampToTime(@SignTime)
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSign_UpdateContinue] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSign_UpdateContinue]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户连续签到信息更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSign_UpdateContinue]
@UserID INT, --用户ID
@Day INT, --连续多少天
@Status TINYINT --状态 0=空闲,未完成 1=完成,未领取 2=完成,已领取
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新用户连续签到信息
UPDATE [UserContinueSign] SET Status = @Status WHERE UserID = @UserID AND Day = @Day
--还没有数据
IF(@@ROWCOUNT > 0)
RETURN
--生成数据
INSERT INTO [UserContinueSign]
(
UserID, Day, Status
)
VALUES
(
@UserID, @Day, @Status
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSubsidy_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSubsidy_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户补助信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSubsidy_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
GiftTimes, dbo.fn_TimeToStamp(Crdate) AS Crdate, dbo.fn_TimeToStamp(CoolTime) AS CoolTime
FROM
[UserSubsidy]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSubsidy_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSubsidy_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 修改补助信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSubsidy_Update]
@UserID INT, --用户ID
@GiftTimes INT, --领取次数
@CoolTime INT, --冷却时间
@Crdate INT, --时间
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--修改补助信息
UPDATE
[UserSubsidy]
SET
GiftTimes = @GiftTimes, Crdate = dbo.fn_StampToTime(@Crdate), CoolTime = dbo.fn_StampToTime(@CoolTime)
WHERE
UserID = @UserID
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
RETURN
END
--初始化
INSERT INTO [UserSubsidy]
(
UserID, GiftTimes, CoolTime, Crdate
)
VALUES
(
@UserID, @GiftTimes, dbo.fn_StampToTime(@CoolTime), dbo.fn_StampToTime(@Crdate)
)
--操作结果
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSwitch_ChangeStatus] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSwitch_ChangeStatus]
-- @UserID = 100,
-- @Status = 1,
-- @SwitchType = 0
-- ==============================================
-- Author: wolf
-- Create Date: 2023-04-06
-- Mendor: wolf
-- Alter Date: 2023-04-06
-- Description: 用户开关修改
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSwitch_ChangeStatus]
@UserID INT, --用户ID
@SwitchType NVARCHAR(32), --开关类型(旁观、跟踪)
@SwitchStatus TINYINT --开关状态(0=关闭 1=开启)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新
UPDATE
[UserSwitch]
SET
SwitchStatus = @SwitchStatus
WHERE
UserID = @UserID AND SwitchType = @SwitchType
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserSwitch]
(
UserID, SwitchType, SwitchStatus
)
VALUES
(
@UserID, @SwitchType, @SwitchStatus
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserSwitch_GetSwitchInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserSwitch_GetSwitchInfo]
-- @UserID = 100
-- ==============================================
-- Author: wolf
-- Create Date: 2023-04-06
-- Mendor: wolf
-- Alter Date: 2023-04-06
-- Description: 获取用户开关信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserSwitch_GetSwitchInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
SwitchType, SwitchStatus
FROM
[UserSwitch]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTask_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTask_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户任务列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTask_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
TaskID, Scheduled, Status, CONVERT(VARCHAR(20), Start, 120) AS Start, Duration
FROM
[UserTask]
WHERE
UserID = @UserID
ORDER BY
TaskID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTask_Remove] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTask_Remove]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 删除用户任务
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTask_Remove]
@UserID INT, --用户ID
@TaskID INT --任务ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DELETE FROM [UserTask] WHERE UserID = @UserID AND TaskID = @TaskID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTask_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTask_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户任务列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTask_Update]
@UserID INT, --用户ID
@TaskID INT, --任务ID
@Scheduled INT, --进度
@Status TINYINT, --状态(0=active 任务进行中 1=complete 完成 2=awarded 已领取奖励 3=inactive 未开始 4=expired 已过期)
@Start INT, --开始时间戳
@Duration INT --持续时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新信息
UPDATE
[UserTask]
SET
Scheduled = @Scheduled, Status = @Status, Start = dbo.fn_StampToTime(@Start), Duration = @Duration
WHERE
UserID = @UserID AND TaskID = @TaskID
IF(@@ROWCOUNT > 0)
RETURN
--生成数据
INSERT INTO [UserTask]
(
UserID, TaskID, Scheduled, Status, Start, Duration
)
VALUES
(
@UserID, @TaskID, @Scheduled, @Status, dbo.fn_StampToTime(@Start), @Duration
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_AddProfit] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_AddProfit]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--添加收益
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_AddProfit]
@StudentID INT, --徒弟ID
@Price DECIMAL(18, 2) --充值金额
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @TeacherID INT --师父ID
DECLARE @Profit DECIMAL(18, 2) --收益
--师父ID
SELECT @TeacherID = TeacherID FROM [UserTeacher] WHERE StudentID = @StudentID
--师父ID无效
IF(@TeacherID IS NULL OR @TeacherID <= 0)
RETURN
--计算收益(比例5%)
SET @Profit = @Price * 0.05
--收益
UPDATE
[Teacher]
SET
Profit = Profit + @Profit, TotalProfit = TotalProfit + @Profit
WHERE
UserID = @TeacherID
--累加收益
UPDATE [UserTeacher] SET Profit = Profit + @Profit WHERE StudentID = @StudentID
--添加收益记录
INSERT INTO [TeacherProfit]
(
StudentID, TeacherID, Profit, ProfitType, Price, Remark, Crdate
)
VALUES
(
@StudentID, @TeacherID, @Profit, 2, @Price, '充值收益', GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_Bind] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_Bind]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--绑定
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_Bind]
@StudentID INT, --徒弟ID
@TeacherID INT --师父ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT
DECLARE @Students INT --徒弟数
DECLARE @Profit BIGINT --收益
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @Amount BIGINT --金额
DECLARE @SysMsgID INT
DECLARE @TimeStamp INT --时间戳
DECLARE @Msg VARCHAR(256) --消息
SET @RetCode = 0
SET @Amount = 0
--不能绑定自己
IF(@StudentID = 0 OR @StudentID = @TeacherID)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--IMei
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @StudentID
IF(@@ROWCOUNT = 0)
BEGIN
--操作成功
SET @RetCode = 13
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--不是facebook账号
IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.')
BEGIN
--操作成功
SET @RetCode = 13
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--判断师父ID有效
IF NOT EXISTS(SELECT UserID FROM [Teacher] WHERE UserID = @TeacherID)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--判断是否已经绑定
IF EXISTS(SELECT StudentID FROM [UserTeacher] WHERE StudentID = @StudentID)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
--绑定
INSERT INTO [UserTeacher]
(
StudentID, TeacherID, Profit, Crdate
)
VALUES
(
@StudentID, @TeacherID, 0, GETDATE()
)
--徒弟数+1
UPDATE [Teacher] SET Students = Students + 1, @Students = Students + 1 WHERE UserID = @TeacherID
--收益
SELECT @Profit = Profit FROM [TeacherBindAward] WHERE Students = @Students
IF(@Profit > 0)
BEGIN
--加收益
UPDATE [Teacher] SET Profit = Profit + @Profit WHERE UserID = @TeacherID
IF(@@ROWCOUNT > 0)
BEGIN
INSERT INTO [TeacherProfit]
(
StudentID, TeacherID, Profit, ProfitType, Price, Remark, Crdate
)
VALUES
(
@StudentID, @TeacherID, @Profit, 1, 0, '绑码成功', GETDATE()
)
END
SET @TimeStamp = dbo.fn_TimeToStamp(GETDATE())
SET @Msg = 'Selamat, jumlah pengguna yang diundang telah mencapai ' + LTRIM(STR(@Students)) + ', dan Anda telah memperoleh ' + LTRIM(STR(@Profit)) +
' dari pendapatan agensi. Hadiah telah didistribusikan secara langsung. Silakan periksa halaman agensi'
--发送消息
EXEC [WS_SysMessage_Send] @UserID = @TeacherID, @Title = 'Pemberitahuan Agen', @Content = @Msg, @Status = 0, @SourceName = '绑码',
@Crdate = @TimeStamp, @Tools = '', @SysMsgID = @SysMsgID OUTPUT
END
--操作成功
SET @RetCode = 1
SET @Amount = 2000000
SELECT @RetCode AS RetCode, @Amount AS Amount
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--师父信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_GetInfo]
@TeacherID INT --师父ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Students INT --徒弟数
DECLARE @Profit BIGINT --收益
DECLARE @TotalProfit BIGINT --总收益
DECLARE @TodayProfit BIGINT --今日收益
DECLARE @RetCode TINYINT --操作结果
SET @Students = 0
SET @Profit = 0
SET @TotalProfit = 0
SET @TodayProfit = 0
SET @RetCode = 0
--基本信息
SELECT
@Profit = Profit, @Students = Students, @TotalProfit = TotalProfit
FROM
[Teacher]
WHERE
UserID = @TeacherID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT
@RetCode AS RetCode, @Students AS Students, @Profit AS Profit,
@TodayProfit AS TodayProfit, @TotalProfit AS TotalProfit
RETURN
END
--今日收益
SELECT
@TodayProfit = ISNULL(SUM(Profit), 0)
FROM
[TeacherProfit]
WHERE
Crdate >= CONVERT(CHAR(10), GETDATE(), 120) AND TeacherID = @TeacherID
SET @RetCode = 1
--返回信息
SELECT
@RetCode AS RetCode, @Students AS Students, @Profit AS Profit,
@TodayProfit AS TodayProfit, @TotalProfit AS TotalProfit
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetLoginAwardLog] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_GetLoginAwardLog]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--登录奖励日志
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_GetLoginAwardLog]
@StudentID int --徒弟ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
Rid, dbo.fn_TimeToStamp(DateFlag) AS DayIndex, Days, TeacherID, Status
FROM
[TeacherLoginAwardLog]
WHERE
StudentID = @StudentID AND DateFlag >= CONVERT(CHAR(10), GETDATE() - 1, 120)
ORDER BY
Days ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetProfitList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_GetProfitList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--收益列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_GetProfitList]
@TeacherID INT, --师父ID
@Days INT, --最近天数
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标志
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
SET @DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
SET @RecordCount = 0
--表变量
DECLARE @tmptable TABLE(
StudentID INT NOT NULL, --徒弟ID
Profit DECIMAL(18, 2) NOT NULL, --收益
Price DECIMAL(18, 2) NOT NULL --充值金额
)
INSERT INTO @tmptable
(
StudentID, Profit, Price
)
SELECT
StudentID, SUM(Profit), SUM(Price)
FROM
[TeacherProfit]
WHERE
Crdate >= @DateFlag - @Days AND TeacherID = @TeacherID AND ProfitType = 2
GROUP BY
StudentID
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Profit DESC) AS RowNumber,
StudentID, Profit, Price
FROM
@tmptable
)
--返回信息
SELECT
RowNumber, StudentID, Profit, Price
FROM
[List]
WHERE
RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_GetStudentList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_GetStudentList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--徒弟列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_GetStudentList]
@TeacherID INT --师父ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
StudentID, Profit, CONVERT(VARCHAR(16), Crdate, 120) AS Crdate
FROM
[UserTeacher]
WHERE
TeacherID = @TeacherID
ORDER BY
Crdate DESC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_GiftBindAward] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_GiftBindAward]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--领取绑定奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_GiftBindAward]
@TeacherID INT, --师父ID
@Rid INT --标志
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Profit BIGINT --收益
SET @RetCode = 0
SET @Profit = 0
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
--更新
UPDATE
[TeacherBindAwardLog]
SET
Status = 1, @Profit = Profit
WHERE
Rid = @Rid AND TeacherID = @TeacherID AND Status = 0
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_GiftLoginAward] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_GiftLoginAward]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--领取登录奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_GiftLoginAward]
@TeacherID INT, --师父ID
@Rid INT --标识
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Days INT --天数
DECLARE @Profit INT --收益
SET @RetCode = 0
SET @Profit = 0
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
--更新
UPDATE
[TeacherLoginAwardLog]
SET
Status = 1, @Days = Days
WHERE
Rid = @Rid AND TeacherID = @TeacherID
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
--收益
SELECT @Profit = Profit FROM [TeacherLoginAward] WHERE Days = @Days
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_PlayVideo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_PlayVideo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--播放广告视频
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_PlayVideo]
@TeacherID INT, --师父ID
@StudentID INT, --徒弟ID
@Rid INT --标志
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @Retcode TINYINT --操作结果
DECLARE @DBTeacherID INT --师父ID
DECLARE @DBStudentID INT --徒弟ID
DECLARE @Profit BIGINT --收益
SET @RetCode = 0
SET @Profit = 0
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
--获取
SELECT
@DBTeacherID = TeacherID, @DBStudentID = StudentID, @Profit = Profit
FROM
[TeacherProfit]
WHERE
Rid = @Rid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
IF(@TeacherID != @DBTeacherID OR @StudentID != @DBStudentID)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
--更新
UPDATE
[TeacherProfit]
SET
Profit = Profit + @Profit
WHERE
Rid = @Rid
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 12
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode, @Profit AS Profit
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_ReduceProfit] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_ReduceProfit]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 扣减代理收益
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_ReduceProfit]
@UserID INT, --用户ID
@Profit BIGINT, --收益
@ProfitType TINYINT --收益类型(1=绑码 2=充值 3=兑换 4=提现)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @RetCode TINYINT --操作结果
DECLARE @Remark VARCHAR(128)
SET @RetCode = 0
IF(@Profit IS NULL OR @Profit <= 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--扣减收益
UPDATE [Teacher] SET Profit = Profit - @Profit WHERE UserID = @UserID AND Profit >= @Profit
IF(@@ROWCOUNT = 0)
BEGIN
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
SET @Remark = CASE
WHEN @ProfitType = 3 THEN '兑换'
WHEN @ProfitType = 4 THEN '提现'
ELSE ''
END
--记录
INSERT INTO [TeacherProfit]
(
StudentID, TeacherID, Profit, ProfitType, Price, Remark, Crdate
)
VALUES
(
@UserID, @UserID, -@Profit, @ProfitType, 0, @Remark, GETDATE()
)
SET @RetCode = 1
--返回信息
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_Register] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_Register]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-06-11
-- Mendor: wolf
-- Alter Date: 2014-12-29
-- Description: 师徒--注册
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_Register]
@UserID INT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @IMei VARCHAR(64)
DECLARE @deviceid VARCHAR(64)
DECLARE @RetCode TINYINT
SET @RetCode = 0
--判断是否已注册
IF EXISTS(SELECT UserID FROM [Teacher] WHERE UserID = @UserID)
BEGIN
--操作成功
SET @RetCode = 11
SELECT @RetCode AS RetCode
RETURN
END
--IMei
SELECT @IMei = IMei, @deviceid = deviceid FROM [AllUser] WHERE UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
--操作成功
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--不是facebook账号
IF(LEFT(@IMei, 3) != 'fb.' AND LEFT(@deviceid, 3) != 'fb.')
BEGIN
--操作成功
SET @RetCode = 12
SELECT @RetCode AS RetCode
RETURN
END
--初始化
INSERT INTO [Teacher]
(
UserID, Profit, Students, TotalProfit, Crdate
)
VALUES
(
@UserID, 0, 0, 0, GETDATE()
)
--操作成功
SET @RetCode = 1
SELECT @RetCode AS RetCode
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTeacher_SysBindAward] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTeacher_SysBindAward]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 师徒绑定奖励
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTeacher_SysBindAward]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
AwardID, Students, Profit
FROM
[TeacherBindAward]
ORDER BY
Students
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserTrack_Record] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserTrack_Record]
-- ==============================================
-- Author: wolf
-- Create Date: 2016-07-21
-- Mendor: wolf
-- Alter Date: 2016-11-18
-- Description: 游戏轨迹记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserTrack_Record]
@UserID INT, --用户ID
@Level_1 NVARCHAR(32), --1级类目
@Level_2 NVARCHAR(32), --2级类目
@Level_3 NVARCHAR(32), --3级类目
@VideoName NVARCHAR(32), --视频广告名称
@Amount BIGINT --金币数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @CurrTime DATETIME --系统当前时间
DECLARE @DateFlag SMALLDATETIME --日期标识
DECLARE @Status TINYINT --状态(0=请求 1=播放 2=未播放)
DECLARE @PartnerID INT --渠道ID
SET @CurrTime = GETDATE()
SET @DateFlag = CONVERT(CHAR(10), @CurrTime, 120)
INSERT INTO [UserTrack]
(
UserID, Level_1, Level_2, Level_3, Crdate
)
VALUES
(
@UserID, @Level_1, @Level_2, @Level_3, @CurrTime
)
--游戏轨迹统计
UPDATE
[UserTrackStat]
SET
Times = Times + 1
WHERE
UserID = @UserID AND Level_1 = @Level_1 AND Level_2 = @Level_2 AND Level_3 = @Level_3 AND DateFlag = @DateFlag
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserTrackStat]
(
DateFlag, UserID, Level_1, Level_2, Level_3, Times
)
VALUES
(
@DateFlag, @UserID, @Level_1, @Level_2, @Level_3, 1
)
END
--视频广告统计
IF(@Level_2 IN (N'请求广告', N'请求游戏广告'))
BEGIN
SET @VideoName = ISNULL(@VideoName, '')
SET @Amount = ISNULL(@Amount, 0)
SET @Status = 0
--广告播放
IF(LEFT(@Level_3, 2) = N'获得')
BEGIN
--更新
UPDATE
[UserDailyStat]
SET
VideoPlayTimes = VideoPlayTimes + 1, VideoSendAmount = VideoSendAmount + @Amount
WHERE
DateFlag = @DateFlag AND UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UserDailyStat]
(
DateFlag, UserID, WinAmount, LoseAmount, StillAmount, GameStart, GameEnd,
PlaySeconds, PayMoney, LoginCount, VideoPlayTimes, VideoSendAmount
)
VALUES
(
@DateFlag, @UserID, 0, 0, 0, '2021-01-01', '2021-01-01',
0, 0, 0, 1, @Amount
)
END
--播放
SET @Status = 1
END
--未播放
ELSE IF(LEFT(@Level_3, 3) = N'未获得')
BEGIN
--未播放
SET @Status = 2
END
--广告记录
INSERT INTO [UserVideoLog]
(
VideoName, UserID, ModuleName, Status, Amount, Crdate
)
VALUES
(
@VideoName, @UserID, @Level_1, @Status, @Amount, @CurrTime
)
--广告统计(状态(0=请求 1=播放 2=未播放))
UPDATE
[UserVideoStat]
SET
ReqTimes = CASE WHEN @Status = 0 THEN ReqTimes + 1 ELSE ReqTimes END,
PlayTimes = CASE WHEN @Status = 1 THEN PlayTimes + 1 ELSE PlayTimes END,
UnPlayTimes = CASE WHEN @Status = 2 THEN UnPlayTimes + 1 ELSE UnPlayTimes END,
Amount = Amount + @Amount
WHERE
UserID = @UserID AND VideoName = @VideoName AND DateFlag = @DateFlag AND ModuleName = @Level_1
IF(@@ROWCOUNT = 0)
BEGIN
--渠道ID
SELECT @PartnerID = PartnerID FROM [AllUser] WHERE UserID = @UserID
--视频统计
INSERT INTO [UserVideoStat]
(
DateFlag, UserID, PartnerID, VideoName, ModuleName,
ReqTimes, PlayTimes, UnPlayTimes, Amount
)
VALUES
(
@DateFlag, @UserID, @PartnerID, @VideoName, @Level_1,
CASE WHEN @Status = 0 THEN 1 ELSE 0 END,
CASE WHEN @Status = 1 THEN 1 ELSE 0 END,
CASE WHEN @Status = 2 THEN 1 ELSE 0 END,
@Amount
)
END
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVideo_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVideo_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户视频列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVideo_GetList]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
VideoID, PlayTimes, dbo.fn_TimeToStamp(UpdateTime) AS UpdateTime
FROM
[UserVideo]
WHERE
UserID = @UserID
ORDER BY
VideoID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVideo_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVideo_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 用户视频更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVideo_Update]
@UserID INT, --用户ID
@VideoID INT, --视频ID
@PlayTimes INT, --播放次数
@UpdateTime INT, --更新时间
@IsStat TINYINT --是否统计
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @DateFlag SMALLDATETIME --日期标识
--修改
UPDATE
[UserVideo]
SET
PlayTimes = @PlayTimes, UpdateTime = dbo.fn_StampToTime(@UpdateTime)
WHERE
UserID = @UserID AND VideoID = @VideoID
IF(@@ROWCOUNT = 0)
BEGIN
--初始化
INSERT INTO [UserVideo]
(
UserID, VideoID, PlayTimes, UpdateTime
)
VALUES
(
@UserID, @VideoID, @PlayTimes, dbo.fn_StampToTime(@UpdateTime)
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVip_GetDealHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVip_GetDealHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取Vip购买记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVip_GetDealHistory]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--Vip购买记录
SELECT VipDealId, LastExchangeTime FROM [VipDealHistory] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVip_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVip_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取Vip信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVip_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--Vip信息
SELECT VipLevel, VipPoint FROM [UserVip] WHERE UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVip_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVip_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 用户Vip信息更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVip_Update]
@UserID INT, --用户ID
@VipLevel SMALLINT, --Vip等级
@VipPoint BIGINT --分数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新Vip信息
UPDATE [UserVip] SET VipLevel = @VipLevel, VipPoint = @VipPoint WHERE UserID = @UserID
IF(@@ROWCOUNT > 0)
RETURN
--初始化数据
INSERT INTO [UserVip]
(
UserID, VipLevel, VipPoint
)
VALUES
(
@UserID, @VipLevel, @VipPoint
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVip_UpdateDealHistory] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVip_UpdateDealHistory]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 更新用户vip特惠购买记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVip_UpdateDealHistory]
@UserID INT, --用户ID
@VipDealId INT, --特惠礼包ID
@LastExchangeTime DATETIME --最近特惠时间
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--更新信息
UPDATE
[VipDealHistory]
SET
LastExchangeTime = @LastExchangeTime
WHERE
UserID = @UserID AND VipDealId = @VipDealId
IF(@@ROWCOUNT > 0)
RETURN
--添加特惠礼包新记录
INSERT INTO [VipDealHistory]
(
UserID, VipDealId, LastExchangeTime
)
VALUES
(
@UserID, @VipDealId, @LastExchangeTime
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVitality_GetInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVitality_GetInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 获取活跃度
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVitality_GetInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
DayIndex, DayPoint, WeekIndex, WeekPoint
FROM
[UserVitality]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UserVitality_Update] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UserVitality_Update]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 活跃度更新
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UserVitality_Update]
@UserID INT, --用户ID
@DayIndex INT, --天索引
@DayPoint INT, --天度数
@WeekIndex INT, --周索引
@WeekPoint INT, --周度数
@RetCode TINYINT OUTPUT --操作结果
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SET @RetCode = 0
--更新活跃度
UPDATE
[UserVitality]
SET
DayIndex = @DayIndex, DayPoint = @DayPoint, WeekIndex = @WeekIndex, WeekPoint = @WeekPoint
WHERE
UserID = @UserID
IF(@@ROWCOUNT > 0)
BEGIN
SET @RetCode = 1
RETURN
END
--初始化活跃度
INSERT INTO [UserVitality]
(
UserID, DayIndex, DayPoint, WeekIndex, WeekPoint
)
VALUES
(
@UserID, @DayIndex, @DayPoint, @WeekIndex, @WeekPoint
)
SET @RetCode = 1
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_UTM_Insert] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_UTM_Insert]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-12-29
-- Mendor: wolf
-- Alter Date: 2015-06-01
-- Description: 流量渠道追踪全解析
-- ==============================================
CREATE PROCEDURE [dbo].[WS_UTM_Insert]
@UserID INT, --用户ID
@Source NVARCHAR(128), --广告系列来源。用来标识搜索引擎、简报名称或其他来源。示例: utm_source=google
@Medium NVARCHAR(128), --广告系列媒介。用来标识媒介,比如电子邮件或每次点击费用。示例:utm_medium=cpc
@Term NVARCHAR(128), --广告系列字词。用于付费搜索,用来注明此广告的关键字。示例:utm_term=running+shoes
@Content NVARCHAR(256), --广告系列内容。用于A/B测试和按内容进行定位的广告。区分指向同一网址的广告或链接。示例:utm_content=logolink或utm_content=textlink
@Campaign NVARCHAR(128) --广告系列名称。用于关键字分析。用来标识特定的产品促销活动或战略性广告系列。示例:utm_campaign=spring_sale
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[UTM]
SET
Source = @Source, Medium = @Medium, Term = @Term,
Content = @Content, Campaign = @Campaign
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [UTM]
(
UserID, Source, Medium, Term, Content, Campaign
)
VALUES
(
@UserID, @Source, @Medium, @Term, @Content, @Campaign
)
END
IF(LEN(@Source) <= 0)
RETURN
--新增源渠道
IF NOT EXISTS(SELECT Source FROM [UTMSource] WHERE Source = @Source)
BEGIN
INSERT INTO [UTMSource](Source) VALUES(@Source)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Video_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Video_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2015-10-10
-- Mendor: wolf
-- Alter Date: 2015-10-10
-- Description: 视频列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Video_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
VideoID, PlayTimes, Awards
FROM
[Video]
ORDER BY
VideoID ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_Vip_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_Vip_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Vip系统数值
-- ==============================================
CREATE PROCEDURE [dbo].[WS_Vip_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
SELECT
VipLevel, VipPoint, GiftPack, Privilege, Description
FROM
[VipInfo]
ORDER BY
VipLevel ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_VipDeal_GetList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_VipDeal_GetList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: Vip特惠礼包
-- ==============================================
CREATE PROCEDURE [dbo].[WS_VipDeal_GetList]
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--特惠礼包
SELECT VipDealId, VipDealName, VipLevel, Items, Price, ProductID FROM [VipDeal] ORDER BY VipDealId ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_WaterPool_GetRecordList] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_WaterPool_GetRecordList]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 个人奖池记录列表
-- ==============================================
CREATE PROCEDURE [dbo].[WS_WaterPool_GetRecordList]
@UserID INT, --用户ID
@BeginTime DATETIME, --开始时间
@EndTime DATETIME, --截止时间
@PageIndex INT, --页索引
@PageSize INT, --页大小
@RecordCount INT OUTPUT --记录数
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
DECLARE @StartRowIndex INT --起始行索引
DECLARE @EndRowIndex INT --截止行索引
DECLARE @tmptable TABLE(
Rid INT NOT NULL, --标识
UserID INT NOT NULL, --用户ID
PoolValue BIGINT NOT NULL, --生成后的数值
WantValue BIGINT NOT NULL, --操作的数值
GenType VARCHAR(32) NOT NULL, --生成方式
RoomType INT NOT NULL, --房间类型(1.普通房间,2.加倍场,3.快速场)
RoomName VARCHAR(32) NOT NULL, --房间名称
Crdate DATETIME NOT NULL --时间
)
SET @StartRowIndex = (@PageIndex - 1) * @PageSize + 1
SET @EndRowIndex = @PageIndex * @PageSize
--查询某一用户
IF(@UserID > 0)
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
)
SELECT
Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
FROM
[WaterPoolRecord]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime AND UserID = @UserID
END
ELSE
BEGIN
INSERT INTO @tmptable
(
Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
)
SELECT
Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
FROM
[WaterPoolRecord]
WHERE
Crdate BETWEEN @BeginTime AND @EndTime
END
--记录数
SET @RecordCount = @@ROWCOUNT
;WITH [List] AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Rid DESC) AS RowNumber,
Rid, UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
FROM
@tmptable
)
--返回信息
SELECT
l.Rid, l.UserID, u.NickName, l.PoolValue, l.WantValue, l.GenType,
CONVERT(VARCHAR(16), l.Crdate, 120) AS Crdate, RoomType, RoomName
FROM
[List] l INNER JOIN [AllUser] u ON l.UserID = u.UserID
WHERE
l.RowNumber BETWEEN @StartRowIndex AND @EndRowIndex
ORDER BY
l.RowNumber ASC
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_WaterPool_GetUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_WaterPool_GetUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 个人奖池请求
-- ==============================================
CREATE PROCEDURE [dbo].[WS_WaterPool_GetUserInfo]
@UserID INT --用户ID
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--返回信息
SELECT
PoolType, PoolValue
FROM
[WaterPool]
WHERE
UserID = @UserID
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_WaterPool_GrantRecord] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_WaterPool_GrantRecord]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 个人奖池生成记录
-- ==============================================
CREATE PROCEDURE [dbo].[WS_WaterPool_GrantRecord]
@UserID INT, --用户ID
@PoolValue BIGINT, --生成后的数值
@WantValue BIGINT, --操作的数值
@GenType VARCHAR(32), --生成方式
@RoomType INT, --房间类型(1.普通房间,2.加倍场,3.快速场)
@RoomName VARCHAR(32) --房间名称
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
--添加记录
INSERT INTO [WaterPoolRecord]
(
UserID, PoolValue, WantValue, GenType, RoomType, RoomName, Crdate
)
VALUES
(
@UserID, @PoolValue, @WantValue, @GenType, @RoomType, @RoomName, GETDATE()
)
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_WaterPool_UpdateTotalInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_WaterPool_UpdateTotalInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 更新总奖池信息(累加)
-- ==============================================
CREATE PROCEDURE [dbo].[WS_WaterPool_UpdateTotalInfo]
@PositiveGenAmount BIGINT, --正向生成金
@PositiveExecAmount BIGINT, --正向执行金
@NagetiveGenAmount BIGINT, --负向生成金
@NagetiveExecAmount BIGINT, --负向执行金
@GrantAmount BIGINT --个人发放体验金
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[WaterPoolTotal]
SET
PositiveGenAmount = PositiveGenAmount + @PositiveGenAmount,
PositiveExecAmount = PositiveExecAmount + @PositiveExecAmount,
NagetiveGenAmount = NagetiveGenAmount + @NagetiveGenAmount,
NagetiveExecAmount = NagetiveExecAmount + @NagetiveExecAmount,
GrantAmount = GrantAmount + @GrantAmount
WHERE
DateFlag = CONVERT(CHAR(10), GETDATE(), 120)
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [WaterPoolTotal]
(
DateFlag, PositiveGenAmount, PositiveExecAmount,
NagetiveGenAmount, NagetiveExecAmount, GrantAmount
)
VALUES
(
CONVERT(CHAR(10), GETDATE(), 120), @PositiveGenAmount, @PositiveExecAmount,
@NagetiveGenAmount, @NagetiveExecAmount, @GrantAmount
)
END
RETURN
END
GO
/****** Object: StoredProcedure [dbo].[WS_WaterPool_UpdateUserInfo] Script Date: 2024/1/12 11:01:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- EXEC [WS_WaterPool_UpdateUserInfo]
-- ==============================================
-- Author: wolf
-- Create Date: 2014-01-21
-- Mendor: wolf
-- Alter Date: 2016-11-07
-- Description: 更新玩家个人奖池信息
-- ==============================================
CREATE PROCEDURE [dbo].[WS_WaterPool_UpdateUserInfo]
@UserID INT, --用户ID
@PoolType INT, --调控模式
@PoolValue BIGINT --奖池数据
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON
BEGIN
UPDATE
[WaterPool]
SET
PoolType = @PoolType, PoolValue = @PoolValue
WHERE
UserID = @UserID
IF(@@ROWCOUNT = 0)
BEGIN
INSERT INTO [WaterPool]
(
UserID, PoolType, PoolValue
)
VALUES
(
@UserID, @PoolType, @PoolValue
)
END
RETURN
END
GO