forked from LosaDev/ls-2019-source
LosaDev source snapshot 2019
This commit is contained in:
commit
c198676e97
20588 files changed
+8812878
No files matched your search
@@ -0,0 +1,118 @@
|
||||
USE [LosaGame]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[game_PCBangPlayTime_Reward] Script Date: 2018-01-12 오전 10:31:38 ******/
|
||||
DROP PROCEDURE [dbo].[game_PCBangPlayTime_Reward]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[game_PCBangPlayTime_Reward] Script Date: 2018-01-12 오전 10:31:38 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--IF OBJECT_ID('dbo.game_PCBangPlayTime_Reward','P') IS NOT NULL
|
||||
--
|
||||
-- DROP PROC dbo.game_PCBangPlayTime_Reward
|
||||
--
|
||||
--GO
|
||||
|
||||
-- =============================================
|
||||
-- Subject : dbo.game_PCBangPlayTime_Reward
|
||||
-- DBA :
|
||||
-- DATE : 2015-06-17
|
||||
-- Description : 훈련 데이터 생성
|
||||
-- =============================================
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[game_PCBangPlayTime_Reward]
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @LimitTime INT = 30
|
||||
DECLARE @DateTime NVARCHAR(10) = CONVERT(NVARCHAR(10), GetDate(), 112)
|
||||
|
||||
DECLARE @sendIDX int, @receiveIDX int
|
||||
SET @sendIDX = (
|
||||
SELECT accountIDX
|
||||
FROM [LosaGame].dbo.userMemberDB WITH(NOLOCK)
|
||||
WHERE nickName='개발자K'
|
||||
)
|
||||
|
||||
IF (@sendIDX IS NULL)
|
||||
BEGIN
|
||||
SET @sendIDX = (
|
||||
SELECT accountIDX
|
||||
FROM [LosaGame].dbo.userMemberDB WITH(NOLOCK)
|
||||
WHERE nickName='DeveloperK'
|
||||
)
|
||||
END
|
||||
|
||||
DECLARE @PCbangIndex int = 0, @PCBangCount int = 0
|
||||
DECLARE PCBangPlayTime CURSOR FOR
|
||||
|
||||
SELECT PCBangIndex, count(PCBangIndex) AS PCBangCount FROM LosaGame.dbo.userPCBangPlayTimeDB
|
||||
WHERE AccountIDX NOT IN (SELECT AccountIDX FROM [LosaGame].[dbo].[userMemberDB] WHERE limitType = 100 AND limitDate > Getdate())
|
||||
AND PCBangPlayTime >= 30 AND PCBangDate = @DateTime
|
||||
GROUP by PCBangDate, PCBangIndex ORDER BY PCBangDate, PCBangIndex
|
||||
OPEN PCBangPlayTime
|
||||
|
||||
FETCH NEXT FROM PCBangPlayTime INTO @PCbangIndex , @PCBangCount
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
|
||||
SELECT PCBangDate, AccountIDX, @PCBangCount AS PCBangcount,
|
||||
CASE WHEN @PCBangCount >= 5 THEN 500
|
||||
WHEN @PCBangCount >= 4 THEN 300
|
||||
WHEN @PCBangCount >= 3 THEN 200
|
||||
WHEN @PCBangCount >= 2 THEN 150
|
||||
ELSE 100
|
||||
END AS presentGold
|
||||
FROM LosaGame.dbo.userPCBangPlayTimeDB
|
||||
WHERE AccountIDX NOT IN (SELECT AccountIDX FROM [LosaGame].[dbo].[userMemberDB] WHERE limitType = 100 AND limitDate > Getdate())
|
||||
AND PCBangPlayTime >= 30 AND PCBangDate = @DateTime AND PCBangIndex = @PCbangIndex
|
||||
|
||||
MERGE LosaGame.dbo.userPCBangPregentDB AS Target
|
||||
USING (SELECT PCBangDate, AccountIDX, @PCBangCount AS PCBangcount,
|
||||
CASE WHEN @PCBangCount >= 5 THEN 500
|
||||
WHEN @PCBangCount >= 4 THEN 300
|
||||
WHEN @PCBangCount >= 3 THEN 200
|
||||
WHEN @PCBangCount >= 2 THEN 150
|
||||
ELSE 100
|
||||
END AS presentGold
|
||||
FROM LosaGame.dbo.userPCBangPlayTimeDB
|
||||
WHERE AccountIDX NOT IN (SELECT AccountIDX FROM [LosaGame].[dbo].[userMemberDB] WHERE limitType = 100 AND limitDate > Getdate())
|
||||
AND PCBangPlayTime >= 30 AND PCBangDate = @DateTime AND PCBangIndex = @PCbangIndex) AS Source
|
||||
ON (Target.AccountIDX = Source.AccountIDX AND Target.PCBangDate = Source.PCBangDate)
|
||||
WHEN MATCHED AND Target.PCBangcount < Source.PCBangcount THEN
|
||||
UPDATE SET Target.PCBangCount = Source.PCBangcount, Target.PCBangBonusCash = Source.presentGold
|
||||
WHEN NOT MATCHED BY TARGET THEN
|
||||
INSERT (PCBangDate, AccountIDX, PCBangCount, PCBangBonusCash)
|
||||
VALUES (Source.PCBangDate, Source.AccountIDX, Source.PCBangcount, Source.presentGold)
|
||||
OUTPUT $action, Inserted.*, Deleted.*;
|
||||
|
||||
-- 커서를다음칸으로이동시킨다.
|
||||
FETCH NEXT FROM PCBangPlayTime INTO @PCbangIndex , @PCBangCount
|
||||
END
|
||||
CLOSE PCBangPlayTime
|
||||
DEALLOCATE PCBangPlayTime
|
||||
|
||||
INSERT INTO LosaGame.dbo.userPresentDB
|
||||
(
|
||||
sendIDX, receiveIDX, presentType, value1, value2, value3, value4, msgType, flag, limitDate, regDate
|
||||
)
|
||||
SELECT @sendIDX, AccountIDX, 13, PCBangBonusCash, 7, 0, 0, 1132, 0, GETDATE() + 7, Getdate()
|
||||
FROM LosaGame.dbo.userPCBangPregentDB
|
||||
WHERE PCBangDate = @DateTime
|
||||
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
|
||||
|
||||
Reference in new issue
Block a user