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