/************************************ * Made in date : 2004-03-26 * LOCATION DBNAME : RYLBillingDB ************************************/ -- ¸Å 5ºÐ¸¶´Ù JOBÀ» ½ÇÇà½ÃÄѼ­ Çǽùæ Á¤·®Á¦ ³²Àº½Ã°£À» ¹Ìµð¾îÀ¥ÂÊ¿¡ ³Ñ±æ ÀÚ·á Áغñ CREATE PROC agt_CRM_RemainServiceTime AS SET NOCOUNT ON /* DECLARE @TempTable TABLE ( CRMIndex int primary key , UsingTime int ) */ CREATE TABLE #TempTable ( CRMIndex int primary key , UsingTime int ) -- ÇöÀç Á¢¼ÓÁßÀÎ Çǽù濡 ´ëÇÑ À¯Àú¸¦ Ã¼Å©ÇØ¼­..»ç¿ë·®À» °Ë»çÇÑ´Ù. INSERT INTO #TempTable SELECT intCRMIndex,SUM(DATEDIFF(MINUTE,dateLoginTime,GETDATE())) FROM TblCurrentUser WHERE intCRMIndex > 0 AND strBillingType = 'T' GROUP BY intCRMIndex BEGIN TRAN -- »ç¿ë½Ã°£·®À» ¾÷µ¥ÀÌÆ®ÇÑ´Ù. UPDATE TblPCRoomBilling_Time SET intUsingTime =intUsingTime+UsingTime FROM #TempTable WHERE TblPCRoomBilling_Time.intCRMIndex = #TempTable.CRMIndex IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCRM_SERVICETIME SELECT strCRMCode,'002',intServiceTime - intUsingTime,'N','N',GETDATE() FROM #TempTable a JOIN TblPCRoomBilling_Time b ON a.CRMIndex = b.intCRMIndex JOIN TblPCRoomBillingInfo c ON a.CRMIndex = c.intCRMIndex IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END UPDATE TblCurrentUser SET dateLoginTime = GETDATE() WHERE intCRMIndex > 0 AND strBillingType = 'T' IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN DROP TABLE #TempTable GO CREATE PROC agt_CRM_RemainServiceTime_LOG AS SET NOCOUNT ON INSERT INTO RYLBillingDB_log..TblCRM_SERVICETIME_LOG SELECT strCRMCode,intServiceTime,DelColumn,dateInsertTime FROM TblCRM_SERVICETIME WHERE WebCHK = 'Y' DELETE TblCRM_SERVICETIME WHERE WebCHK = 'Y' GO -- ¸Å 5ºÐ¸¶´Ù JOBÀ» ½ÇÇà½ÃÄѼ­ Çǽùæ Á¤·®Á¦ ³²Àº½Ã°£À» ¹Ìµð¾îÀ¥ÂÊ¿¡ ÁغñµÈ ÀڷḦ ³Ñ±è CREATE PROC agt_CRM_RemainServiceTime_Transfer AS SET NOCOUNT ON DECLARE @Rowid INT DECLARE @strCRMCode VARCHAR(20) DECLARE @intServiceTime INT DECLARE @delColumn CHAR(1) DECLARE @TempTable TABLE ( RowID INT IDENTITY(1,1) PRIMARY KEY , strCRMCode VARCHAR(20) , intServiceTime INT , delColumn CHAR(1) ) -- Áߺ¹µÈ µ¥ÀÌÅÍ´Â ÇѰǸ¸ ó¸®ÇÑ´Ù. INSERT INTO @TempTable SELECT strCRMCode,MIN(intServiceTime),delColumn FROM TblCRM_SERVICETIME WHERE WebCHK = 'N' GROUP BY strCRMCode,delColumn SET @Rowid = @@ROWCOUNT --SET XACT_ABORT ON --BEGIN TRAN UPDATE TblCRM_SERVICETIME SET WebCHK = 'Y' WHERE WebCHK ='N' WHILE @Rowid <> 0 BEGIN SELECT @strCRMCode = strCRMCode,@intServiceTime=intServiceTime,@delColumn=delColumn FROM @TempTable WHERE RowID = @Rowid -- ³ªÁß¿¡ º¯°æÇؾßÇÒ ºÎºÐ IF EXISTS(SELECT CRMCODE FROM MEDIAWEBBILLING..GAME.CRM_SERVICETIME WHERE CRMCODE = @strCRMCode AND GAMECODE ='002' ) BEGIN UPDATE MEDIAWEBBILLING..GAME.CRM_SERVICETIME SET SERVICETIME = @intServiceTime,DELCHK = @delColumn WHERE CRMCODE = @strCRMCode AND GAMECODE ='002' END ELSE BEGIN INSERT MEDIAWEBBILLING..GAME.CRM_SERVICETIME (CRMCODE,GAMECODE,SERVICETIME,DELCHK) VALUES (@strCRMCode,'002',@intServiceTime,@delColumn) END SET @Rowid = @Rowid - 1 END --COMMIT TRAN --SET XACT_ABORT OFF GO -- COMMAND : IPº¯°æ -- 1.ÇØ´ç CRMCODE,PRICETYPE¿¡ ÇØ´çµÇ´Â IP¸¦ º¯°æÇÑ´Ù. CREATE PROC agt_CRM_RYLLOG_ChangeIP @intIndex INT,@strCRMCode VARCHAR(20),@strBillingType CHAR(1), @strCRMIP1 VARCHAR(13),@strStartCRMIP1 INT,@strEndCRMIP1 INT, @strCRMIP2 VARCHAR(13),@strStartCRMIP2 INT,@strEndCRMIP2 INT, @strCRMIP3 VARCHAR(13),@strStartCRMIP3 INT,@strEndCRMIP3 INT AS SET NOCOUNT ON DECLARE @intCRMIndex INT DECLARE @FCRMIP1 VARCHAR(15) DECLARE @FCRMIP2 VARCHAR(15) DECLARE @FCRMIP3 VARCHAR(15) -- ±âÁ¸ °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö °Ë»öÇÑ´Ù. SELECT @intCRMIndex = intCRMIndex FROM TblPCRoomBillingInfo WHERE strCRMCode = @strCRMCode and strBillingType = @strBillingType BEGIN TRAN IF @intCRMIndex > 0 BEGIN -- ±âÁ¸ ¾ÆÀÌÇÇ ´ë¿ªÀ» »èÁ¦ÇÑ´Ù. DELETE TblGameRoomIPList WHERE intCRMIndex = @intCRMIndex -- »õ·Î OPENÇÏ´Â ¾ÆÀÌÇǴ뿪À» ÀÔ·ÂÇÑ´Ù. IF @strStartCRMIP1 > 0 BEGIN -- óÀ½¾ÆÀÌÇǰ¡ ÃÖÁ¾¾ÆÀÌÇǺ¸´Ù ÀÛÀº°æ¿ì±îÁö¸¸ ÀÔ·ÂÇÑ´Ù. WHILE (@strStartCRMIP1 <= @strEndCRMIP1) BEGIN SET @FCRMIP1 = @strCRMIP1 + CAST(@strStartCRMIP1 AS VARCHAR(3)) INSERT INTO TblGameRoomIPList VALUES (@intCRMIndex,@FCRMIP1) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END SET @strStartCRMIP1 = @strStartCRMIP1 + 1 END END -- ¾ÆÀÌÇÇ ´ë¿ªÀ» Ç¥½ÃÇÑ´Ù. IF @strStartCRMIP2 > 0 BEGIN -- óÀ½¾ÆÀÌÇǰ¡ ÃÖÁ¾¾ÆÀÌÇǺ¸´Ù ÀÛÀº°æ¿ì±îÁö¸¸ ÀÔ·ÂÇÑ´Ù. WHILE (@strStartCRMIP2 <= @strEndCRMIP2) BEGIN SET @FCRMIP2 = @strCRMIP2 + CAST(@strStartCRMIP2 AS VARCHAR(3)) INSERT INTO TblGameRoomIPList VALUES (@intCRMIndex,@FCRMIP2) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END SET @strStartCRMIP2 = @strStartCRMIP2 + 1 END END -- ¾ÆÀÌÇÇ ´ë¿ªÀ» Ç¥½ÃÇÑ´Ù. IF @strStartCRMIP3 > 0 BEGIN -- óÀ½¾ÆÀÌÇǰ¡ ÃÖÁ¾¾ÆÀÌÇǺ¸´Ù ÀÛÀº°æ¿ì±îÁö¸¸ ÀÔ·ÂÇÑ´Ù. WHILE (@strStartCRMIP3 <= @strEndCRMIP3) BEGIN SET @FCRMIP3 = @strCRMIP3 + CAST(@strStartCRMIP3 AS VARCHAR(3)) INSERT INTO TblGameRoomIPList VALUES (@intCRMIndex,@FCRMIP3) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END SET @strStartCRMIP3 = @strStartCRMIP3 + 1 END END -- ¾ÆÀÌÇǰ¡ ¾ø¾îÁö´Â °÷¿¡ °ÔÀÓÀ» ÇÏ´Â À¯Àú´Â ¹Ù·Î ²÷¾î¾ßÇÑ´Ù. -- Á¤¾×Á¦ ÇǽùæÀÌ ¾ÆÀÌÇǸ¦ º¯°æÇÒ °æ¿ì¿¡´Â ¸ðµç À¯ÀúµéÀ» ƨ½ÃŲ´Ù. IF (@strBillingType ='D') BEGIN -- ÇØ´çÀ¯ÀúµéÀ» Àμ­Æ®ÇÑ´Ù. INSERT INTO TblCurrentUser_Disconn SELECT strClientID,UID,tinyServerID,'ED' FROM TblCurrentUser WHERE intCRMIndex = @intCRMIndex AND strIP NOT in ( SELECT strIP FROM TblGameRoomIpList WHERE intCRMIndex = @intCRMIndex ) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END END -- Á¤·®Á¦ ÇǽùæÀÏ °æ¿ì ÇØ´ç ¾ÆÀÌÇǸ¸ ƨ½ÃŲ´Ù. ELSE IF (@strBillingType ='T') BEGIN -- ÇØ´çÀ¯ÀúµéÀ» Àμ­Æ®ÇÑ´Ù. INSERT INTO TblCurrentUser_Disconn SELECT strClientID,UID,tinyServerID,'ET' FROM TblCurrentUser WHERE intCRMIndex = @intCRMIndex AND strIP NOT in ( SELECT strIP FROM TblGameRoomIpList WHERE intCRMIndex = @intCRMIndex ) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END END UPDATE TblCRM_RYLLOG SET strConvertCHK = 'Y' WHERE intIndex = @intIndex AND strCommand ='E' AND strConvertCHK ='N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END COMMIT TRAN GO -- COMMAND : CLOSE (ÇØÁö) -- 1.ÇØÁö½Ã Á¤·®Á¦¿¡ ÇÑÇÏ¿© CRMCODE,PRICETYPE¿¡ ÇØ´çµÇ´Â ÀÜ¿©½Ã°£À» CRM_SERVICETIME¿¡ ±â·ÏÇÑ´Ù. -- 2.ÇöÀç À¯Àú°¡ Ç÷¹ÀÌÁßÀÎÁö ¾Æ´ÑÁö¸¦ Ã¼Å©ÇØ¾ßÇÑ´Ù. CREATE PROC agt_CRM_RYLLOG_CLOSE @intIndex INT,@strCRMCode VARCHAR(20),@strBillingType CHAR(1) AS SET NOCOUNT ON DECLARE @intCRMINDEX INT -- ±âÁ¸ °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö °Ë»öÇÑ´Ù. SELECT @intCRMIndex = intCRMIndex FROM TblPCRoomBillingInfo WHERE strCRMCode = @strCRMCode and strBillingType = @strBillingType BEGIN TRAN -- ÇØÁöÇÒ ÇǽùæÀÌ Á¸ÀçÇÑ´Ù¸é IF @intCRMIndex > 0 BEGIN -- ÇöÀç °°Àº Çǽù濡 Á¢¼ÓµÇ¾îÀÖ´Â À¯Àú°¡ Ç÷¹ÀÌÁßÀÌ¸é °ú±ÝÁ¤º¸¸¦ »èÁ¦ÇÏ¸é ¾ÈµÈ´Ù. IF EXISTS (SELECT strClientid FROM TblCurrentUser WHERE intCRMIndex = @intCRMINDEX) BEGIN IF @strBillingType = 'D' -- Á¤¾×Á¦Àΰæ¿ì BEGIN UPDATE TblPCRoomBilling_Date SET strClosed ='Y' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF (@strBillingType ='T')-- ³ª¸ÓÁö Á¤·®Á¦¶ó°í Çϸé BEGIN UPDATE TblPCRoomBilling_Time SET strClosed ='Y' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END -- ÇØÁöÇÑ Çǽù濡 Á¢¼ÓÇÑ ¸ðµç À¯Àú´Â ¹Ù·Î Á¢¼ÓÀ» ²÷¾î¾ßÇÑ´Ù. -- ÇØ´çÀ¯ÀúµéÀ» Àμ­Æ®ÇÑ´Ù. INSERT INTO TblCurrentUser_Disconn SELECT strClientID,UID,tinyServerID,'BB' FROM TblCurrentUser WHERE intCRMIndex = @intCRMIndex IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END END ELSE -- ÇöÀç ¾Æ¹«µµ ÇØ´ç Çǽù濡 Á¢¼ÓµÈ À¯Àú°¡ ¾øÀ¸¸é BEGIN -- °ú±Ý Á¾·ù¸¦ °¢°¢»èÁ¦ÇÑ´Ù. IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN DELETE TblPCRoomBilling_Date WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF (@strBillingType ='T')-- ³ª¸ÓÁö Á¤·®Á¦ BEGIN DECLARE @Remain INT SELECT @Remain = (intServiceTime - intUsingTime) FROM TblPCRoomBilling_Time WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END DELETE TblPCRoomBilling_Time WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END -- ¹Ìµð¾îÀ¥¿¡ Àü´ÞÇÒ ÀڷḦ Àü´Þ Å×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCRM_SERVICETIME (strCRMCode,strGameCode,intServiceTime,DelColumn,WebCHK) VALUES (@strCRMCode,'002',@Remain,'Y','N') IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END -- ¾ÆÀÌÇÇ Á¤º¸¸¦ »èÁ¦ÇÑ´Ù. DELETE TblGameRoomIpList WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT = 0 BEGIN ROLLBACK TRAN RETURN END DELETE TblPCRoomBillingInfo WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END UPDATE TblCRM_RYLLOG SET strConvertCHK = 'Y' WHERE intIndex = @intIndex AND strCommand ='B' AND strConvertCHK ='N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END COMMIT TRAN GO CREATE PROC agt_CRM_RYLLOG_Delete AS SET NOCOUNT ON DECLARE @MIN INT -- Àü¿¡ °¡Á®¿Ô´ø ÃÖ´ë°ª SELECT @MIN = intCount FROM TblImportedNum WHERE strCompType = 'M' BEGIN TRAN INSERT INTO RYLBillingDB_LOG.dbo.TblCRM_RYLLOG_LOG SELECT * FROM TblCRM_RYLLOG WHERE intIndex <= @MIN IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END DELETE TblCRM_RYLLOG WHERE intIndex <= @MIN IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN GO -- COMMAND : ¹èÄ¡Àç½ÂÀÎ -- 1.CRMCODE,PRICETYPE,IP Á¤º¸°¡ ÀÖÀ½À» ÀüÁ¦ÇÑ´Ù. CREATE PROC agt_CRM_RYLLOG_Exchange @intIndex INT,@strCRMCode VARCHAR(20),@strBillingType CHAR(1), @intServiceTime INT,@dateServiceDay SMALLDATETIME,@tinyServiceIpNum TINYINT AS SET NOCOUNT ON DECLARE @intCRMIndex INT DECLARE @Remain INT -- ±âÁ¸ °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö °Ë»öÇÑ´Ù. SELECT @intCRMIndex = intCRMIndex FROM TblPCRoomBillingInfo WHERE strCRMCode = @strCRMCode and strBillingType = @strBillingType BEGIN TRAN IF @intCRMIndex > 0 BEGIN IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN UPDATE TblPCRoomBilling_Date SET dateEndTime = @dateServiceDay,tinyServiceIpNum = @tinyServiceIpNum,tinyUsedIpNum = 0 WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END -- Á¤¾×Á¦ÀÎ °æ¿ì ÇöÀç Á¢¼ÓµÈ ¸ðµç À¯Àú¸¦ ƨ ¸®½ºÆ®¿¡ µî·ÏÇÑ´Ù. -- ¾ÆÀÌÇǰ¡ ¾ø¾îÁö´Â °÷¿¡ °ÔÀÓÀ» ÇÏ´Â À¯Àú´Â ¹Ù·Î ²÷¾î¾ßÇÑ´Ù. -- ÇØ´çÀ¯ÀúµéÀ» Àμ­Æ®ÇÑ´Ù. INSERT INTO TblCurrentUser_Disconn SELECT strClientID,UID,tinyServerID,'FF' FROM TblCurrentUser WHERE intCRMIndex = @intCRMIndex AND strBillingType ='D' IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END END ELSE IF (@strBillingType ='T')-- ³ª¸ÓÁö Á¤·®Á¦ BEGIN UPDATE TblPCRoomBilling_Time SET intServiceTime = intServiceTime + @intServiceTime WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END -- ½Ã°£ÀÌ Ãß°¡µÇÀÚ ¸¶ÀÚ ¹Ù·Î º¸³»Á®¾ßÇÑ´Ù. SELECT @Remain = (intServiceTime - intUsingTime) FROM TblPCRoomBilling_Time WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END -- ÀÌÀü¿¡ ·Î±×¾Æ¿ôµÈ À¯ÀúÀÇ ¼­ºñ½ºÅ¸ÀÔ±â·ÏÀ» ¾ø¾Ø´Ù. DELETE TblCRM_SERVICETIME WHERE strCRMCode = @strCRMCode IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END -- ¹Ìµð¾îÀ¥¿¡ Àü´ÞÇÒ ÀڷḦ Àü´Þ Å×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCRM_SERVICETIME (strCRMCode,strGameCode,intServiceTime,DelColumn,WebCHK) VALUES (@strCRMCode,'002',@Remain,'N','N') IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END UPDATE TblCRM_RYLLOG SET strConvertCHK = 'Y' WHERE intIndex = @intIndex AND strCommand ='F' AND strConvertCHK ='N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END COMMIT TRAN GO -- °¡Á®¿Â µ¥ÀÌÅ͸¦ ÀüºÎ ½ÇÇàÇÑ´Ù.(1ºÐ¸¶´Ù ½ÇÇà) CREATE PROC agt_CRM_RYLLOG_EXECUTE AS SET NOCOUNT ON DECLARE @ROWID INT DECLARE @intIndex INT DECLARE @strCRMCode VARCHAR(20) DECLARE @strBillingType CHAR(1) DECLARE @strCommand CHAR(1) DECLARE @strCRMIP1 VARCHAR(13) DECLARE @strStartCRMIP1 TINYINT DECLARE @strEndCRMIP1 TINYINT DECLARE @strCRMIP2 VARCHAR(13) DECLARE @strStartCRMIP2 TINYINT DECLARE @strEndCRMIP2 TINYINT DECLARE @strCRMIP3 VARCHAR(13) DECLARE @strStartCRMIP3 TINYINT DECLARE @strEndCRMIP3 TINYINT DECLARE @strTimeProcess CHAR(1) DECLARE @intServiceTime INT DECLARE @dateServiceDay SMALLDATETIME DECLARE @tinyServiceIPNum TINYINT -- ó¸®ÇÒ µ¥ÀÌÅ͸¦ ÀÓ½ÃÅ×ÀÌºí¿¡ º¸°üÇÑ´Ù. DECLARE @TempTable Table ( RowID INT IDENTITY(1,1) PRIMARY KEY , intIndex INT , strCRMCode VARCHAR(20) , strBillingType CHAR(1) , strCommand CHAR(1) , strCRMIP1 VARCHAR(13) , strStartCRMIP1 TINYINT , strEndCRMIP1 TINYINT , strCRMIP2 VARCHAR(13) , strStartCRMIP2 TINYINT , strEndCRMIP2 TINYINT , strCRMIP3 VARCHAR(13) , strStartCRMIP3 TINYINT , strEndCRMIP3 TINYINT , strTimeProcess CHAR(1) , intServiceTime INT , dateServiceDay SMALLDATETIME , tinyServiceIPNum TINYINT ) -- µé¾î¿Â ¼ø¼­´ë·Î 󸮸¦ ÇØ¾ßÇÔ. -- intIndex °ªÀÌ Å«°ÍºÎÅÍ ÀÓ½ÃÅ×ÀÌºí¿¡ ÀÔ·ÂÀ» ÇØ¾ß¸¸ Á¦ÀÏ ³ªÁß¿¡ 󸮵ȴÙ. INSERT INTO @TempTable (intIndex,strCRMCode,strBillingType,strCommand,strCRMIP1,strStartCRMIP1,strEndCRMIP1,strCRMIP2,strStartCRMIP2, strEndCRMIP2,strCRMIP3,strStartCRMIP3,strEndCRMIP3,strTimeProcess,intServiceTime,dateServiceDay,tinyServiceIPNum) SELECT intIndex,strCRMCode,strPriceType,strCommand,strCRMIP1,strStartCRMIP1,strEndCRMIP1,strCRMIP2,strStartCRMIP2,strEndCRMIP2, strCRMIP3,strStartCRMIP3,strEndCRMIP3,strTimeProcess,intServiceTime,dateServiceDay,tinyServiceIPNum FROM TblCRM_RYLLOG WHERE strConvertCHK ='N' ORDER BY intIndex DESC SET @ROWID = @@ROWCOUNT --ó¸®ÇÒ µ¥ÀÌÅÍ ¼ö WHILE (@ROWID <> 0 ) BEGIN -- ÀÓ½ÃÅ×ÀÌºí¿¡¼­ ¼øÂ÷ÀûÀ¸·Î ÇѰǾ¿ ó¸®Çϱâ À§Çؼ­...µ¥ÀÌÅ͸¦ °¡Á®¿Â´Ù. SELECT @intIndex=intindex,@strCRMCode=strCRMCode,@strBillingType=strBillingType,@strCommand = strCommand, @strCRMIP1=strCRMIP1,@strStartCRMIP1=strStartCRMIP1,@strEndCRMIP1=strEndCRMIP1,@strCRMIP2=strCRMIP2, @strStartCRMIP2=strStartCRMIP2,@strEndCRMIP2=strEndCRMIP2,@strCRMIP3=strCRMIP3,@strStartCRMIP3=strStartCRMIP3, @strEndCRMIP3=strEndCRMIP3,@strTimeProcess=strTimeProcess,@intServiceTime=intServiceTime, @dateServiceDay=dateServiceDay,@tinyServiceIPNum=tinyServiceIPNum FROM @TempTable WHERE ROWID = @ROWID IF (@strCommand = 'A') -- ½Å±Ô,Ãß°¡ BEGIN EXEC agt_CRM_RYLLOG_OPEN @intIndex,@strCRMCode,@strBillingType,@strCRMIP1,@strStartCRMIP1, @strEndCRMIP1,@strCRMIP2,@strStartCRMIP2,@strEndCRMIP2,@strCRMIP3,@strStartCRMIP3, @strEndCRMIP3,@strTimeProcess,@intServiceTime,@dateServiceDay,@tinyServiceIPNum END ELSE IF (@strCommand ='B') -- ÇØÁö BEGIN EXEC agt_CRM_RYLLOG_CLOSE @intIndex,@strCRMCode,@strBillingType END ELSE IF (@strCommand ='C') -- ÇØÁö´ë±â : Z·Î º¯°æ BEGIN EXEC agt_CRM_RYLLOG_WAIT @intIndex,@strCRMCode,@strBillingType END ELSE IF (@strCommand = 'D') -- ÇØÁöÃë¼Ò BEGIN EXEC agt_CRM_RYLLOG_WCANCEL @intIndex,@strCRMCode,@strBillingType END ELSE IF (@strCommand ='E') -- ¾ÆÀÌÇǺ¯°æ BEGIN EXEC agt_CRM_RYLLOG_ChangeIP @intIndex,@strCRMCode,@strBillingType,@strCRMIP1,@strStartCRMIP1, @strEndCRMIP1,@strCRMIP2,@strStartCRMIP2,@strEndCRMIP2,@strCRMIP3,@strStartCRMIP3, @strEndCRMIP3 END ELSE IF (@strCommand ='F') -- Àç¹èÄ¡ ½ÂÀÎ BEGIN EXEC agt_CRM_RYLLOG_Exchange @intIndex,@strCRMCode,@strBillingType, @intServiceTime,@dateServiceDay,@tinyServiceIpNum END SET @ROWID = @ROWID - 1 END GO -- µ¥ÀÌÅͼӵµ¸¦ À§Çؼ­ ó¸®µÈ ¸¶Áö¸· INDEX°ªÀ» ¾Ë°íÀÖ¾î¾ßÇÑ´Ù. CREATE PROC agt_CRM_RYLLOG_OPEN @intIndex INT,@strCRMCode VARCHAR(20),@strBillingType CHAR(1),@strCRMIP1 VARCHAR(13),@strStartCRMIP1 INT, @strEndCRMIP1 INT,@strCRMIP2 VARCHAR(13),@strStartCRMIP2 INT,@strEndCRMIP2 INT, @strCRMIP3 VARCHAR(13),@strStartCRMIP3 INT,@strEndCRMIP3 INT,@strTimeProcess CHAR(1), @intServiceTime INT,@dateServiceDay SMALLDATETIME,@tinyServiceIPNum TINYINT AS SET NOCOUNT ON DECLARE @FCRMIP1 VARCHAR(15) DECLARE @FCRMIP2 VARCHAR(15) DECLARE @FCRMIP3 VARCHAR(15) DECLARE @intCRMIndex INT SET @intCRMIndex = 0 DECLARE @Remain INT BEGIN TRAN -- ±âÁ¸ °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö °Ë»öÇÑ´Ù. SELECT @intCRMIndex = intCRMIndex FROM TblPCRoomBillingInfo WHERE strCRMCode = @strCRMCode and strBillingType = @strBillingType -- ±âÁ¸ ÇǽùæÁ¤º¸°¡ Á¸ÀçÇÏ¸é ¾÷µ¥ÀÌÆ®ÇÑ´Ù. IF (@intCRMIndex > 0) BEGIN -- °ú±Ý Á¾·ù¸¦ ±¸ºÐ¿¡ °¢°¢ Å×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN UPDATE TblPCRoomBilling_Date SET strRegProcess = @strTimeProcess,dateEndTime = @dateServiceDay,tinyServiceIpNum = @tinyServiceIPNum,strClosed='N' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF (@strBillingType ='T') -- ³ª¸ÓÁö Á¤·®Á¦ BEGIN IF EXISTS (SELECT intCRMIndex FROM TblPCRoomBilling_Time WHERE intCRMIndex = @intCRMIndex AND strRegProcess = 'M' and strClosed ='Y') BEGIN UPDATE TblPCRoomBilling_Time SET strRegProcess = @strTimeProcess,intServiceTime = @intServiceTime,intUsingTime = 0,strClosed ='N' WHERE intCRMIndex = @intCRMIndex AND strRegProcess = 'M' and strClosed ='Y' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE BEGIN UPDATE TblPCRoomBilling_Time SET strRegProcess = @strTimeProcess,intServiceTime = intServiceTime + @intServiceTime,strClosed ='N' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END -- ½Ã°£ÀÌ Ãß°¡µÇÀÚ ¸¶ÀÚ ¹Ù·Î º¸³»Á®¾ßÇÑ´Ù. SELECT @Remain = (intServiceTime - intUsingTime) FROM TblPCRoomBilling_Time WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END -- ÀÌÀü¿¡ À̵̹é¾î°¡ÀÖ´ø ¼­ºñ½ºÅ¸ÀÔ±â·ÏÀ» ¾ø¾Ø´Ù. DELETE TblCRM_SERVICETIME WHERE strCRMCode = @strCRMCode IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END -- ¹Ìµð¾îÀ¥¿¡ Àü´ÞÇÒ ÀڷḦ Àü´Þ Å×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCRM_SERVICETIME (strCRMCode,strGameCode,intServiceTime,DelColumn,WebCHK) VALUES (@strCRMCode,'002',@Remain,'N','N') IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END END -- Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ELSE IF (@intCRMIndex = 0) BEGIN -- ½Å±Ô°¡ÀÔÇÏ´Â Çǽùæ Á¤º¸¸¦ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblPCRoomBillingInfo (intCRMIndex,strCRMCode,strBillingType) VALUES (@intIndex,@strCRMCode,@strBillingType) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END -- °ú±Ý Á¾·ù¸¦ ±¸ºÐ¿¡ °¢°¢ Å×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN INSERT INTO TblPCRoomBilling_Date (intCRMIndex,strRegProcess,dateStartTime,dateEndTime,tinyServiceIpNum) VALUES (@intIndex,@strTimeProcess,GETDATE(),@dateServiceDay,@tinyServiceIpNum) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF @strBillingType ='T'-- ³ª¸ÓÁö Á¤·®Á¦ BEGIN INSERT INTO TblPCRoomBilling_Time (intCRMIndex,strRegProcess,intServiceTime) VALUES (@intIndex,@strTimeProcess,@intServiceTime) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END -- SET @Remain = @intServiceTime -- ¹Ìµð¾îÀ¥¿¡ Àü´ÞÇÒ ÀڷḦ Àü´Þ Å×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCRM_SERVICETIME (strCRMCode,strGameCode,intServiceTime,DelColumn,WebCHK) VALUES (@strCRMCode,'002',@intServiceTime,'N','N') IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END -- »õ·Î OPENÇÏ´Â ¾ÆÀÌÇǴ뿪À» ÀÔ·ÂÇÑ´Ù. IF @strStartCRMIP1 > 0 BEGIN -- óÀ½¾ÆÀÌÇǰ¡ ÃÖÁ¾¾ÆÀÌÇǺ¸´Ù ÀÛÀº°æ¿ì±îÁö¸¸ ÀÔ·ÂÇÑ´Ù. WHILE (@strStartCRMIP1 <= @strEndCRMIP1) BEGIN SET @FCRMIP1 = @strCRMIP1 + CAST(@strStartCRMIP1 AS VARCHAR(3)) INSERT INTO TblGameRoomIPList VALUES (@intIndex,@FCRMIP1) IF ( @@ERROR <> 0 ) BEGIN ROLLBACK TRAN RETURN END SET @strStartCRMIP1 = @strStartCRMIP1 + 1 END END -- ¾ÆÀÌÇÇ ´ë¿ªÀ» Ç¥½ÃÇÑ´Ù. IF @strStartCRMIP2 > 0 BEGIN -- óÀ½¾ÆÀÌÇǰ¡ ÃÖÁ¾¾ÆÀÌÇǺ¸´Ù ÀÛÀº°æ¿ì±îÁö¸¸ ÀÔ·ÂÇÑ´Ù. WHILE (@strStartCRMIP2 <= @strEndCRMIP2) BEGIN SET @FCRMIP2 = @strCRMIP2 + CAST(@strStartCRMIP2 AS VARCHAR(3)) INSERT INTO TblGameRoomIPList VALUES (@intIndex,@FCRMIP2) IF ( @@ERROR <> 0 ) BEGIN ROLLBACK TRAN RETURN END SET @strStartCRMIP2 = @strStartCRMIP2 + 1 END END -- ¾ÆÀÌÇÇ ´ë¿ªÀ» Ç¥½ÃÇÑ´Ù. IF @strStartCRMIP3 > 0 BEGIN -- óÀ½¾ÆÀÌÇǰ¡ ÃÖÁ¾¾ÆÀÌÇǺ¸´Ù ÀÛÀº°æ¿ì±îÁö¸¸ ÀÔ·ÂÇÑ´Ù. WHILE (@strStartCRMIP3 <= @strEndCRMIP3) BEGIN SET @FCRMIP3 = @strCRMIP3 + CAST(@strStartCRMIP3 AS VARCHAR(3)) INSERT INTO TblGameRoomIPList VALUES (@intIndex,@FCRMIP3) IF ( @@ERROR <> 0 ) BEGIN ROLLBACK TRAN RETURN END SET @strStartCRMIP3 = @strStartCRMIP3 + 1 END END END UPDATE TblCRM_RYLLOG SET strConvertCHK = 'Y' WHERE intIndex = @intIndex AND strCommand ='A' AND strConvertCHK ='N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN GO -- ÇöÀç º¯°æµÈ Àüü µ¥ÀÌÅ͸¦ ¹Ìµð¾î À¥¿¡¼­ °¡Á®¿Â´Ù. CREATE PROC agt_CRM_RYLLOG_Pulling AS SET NOCOUNT ON DECLARE @MIN INT -- Àü¿¡ °¡Á®¿Ô´ø ÃÖ´ë°ª DECLARE @MAX INT --¾ÕÀ¸·Î °¡Á®¿Ã ÃÖ´ë°ª SET @MAX = 0 SELECT @MIN = intCount FROM TblImportedNum WHERE strCompType = 'M' --SET XACT_ABORT ON --BEGIN TRAN -- ¹Ìµð¾îÀ¥¿¡¼­ ó¸®ÇÒ µ¥ÀÌÅ͸¦ °¡Á®¿Â´Ù. INSERT INTO TblCRM_RYLLOG (intIndex,strCRMCode,strPriceType,dateSysDay,strCommand,strCRMIP1,strStartCRMIP1,strEndCRMIP1, strCRMIP2,strStartCRMIP2,strEndCRMIP2,strCRMIP3,strStartCRMIP3,strEndCRMIP3, strTimeprocess,intServiceTime,dateServiceDay,TinyServiceIPNum,dateEndday,intEndTime,strRYLCHK) SELECT * FROM MEDIAWEBBILLING..CRM.CRM_RYLLOG WHERE SEQID > @MIN AND RYLCHK = 'N' -- ÃÑó¸®µÈ µ¥ÀÌÅͼö¸¦ °¡Á®¿Â´Ù. SELECT @MAX = MAX(intIndex) FROM TblCRM_RYLLOG WHERE strRYLCHK = 'N' AND strConvertCHK ='N' IF @MAX > 0 BEGIN UPDATE MEDIAWEBBILLING..CRM.CRM_RYLLOG SET RYLCHK = 'Y' WHERE SEQID > @MIN AND SEQID <= @MAX AND RYLCHK = 'N' -- µ¥ÀÌÅ͸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. UPDATE TblImportedNum SET intCount = @MAX WHERE strCompType = 'M' END --COMMIT TRAN --SET XACT_ABORT OFF GO -- COMMAND : WAIT (ÇØÁö´ë±â) -- 1.TimeProcess¸¦ 'z'·Î º¯°æÇÑ´Ù. CREATE PROC agt_CRM_RYLLOG_WAIT @intIndex INT,@strCRMCode VARCHAR(20),@strBillingType CHAR(1) AS SET NOCOUNT ON DECLARE @intCRMIndex INT -- ±âÁ¸ °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö °Ë»öÇÑ´Ù. SELECT @intCRMIndex = intCRMIndex FROM TblPCRoomBillingInfo WHERE strCRMCode = @strCRMCode and strBillingType = @strBillingType BEGIN TRAN IF @intCRMIndex > 0 BEGIN -- °ú±Ý Á¾·ù¸¦ °¢°¢»èÁ¦ÇÑ´Ù. IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN UPDATE TblPCRoomBilling_Date SET strRegProcess = 'z' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF @strBillingType ='T' -- ³ª¸ÓÁö Á¤·®Á¦ BEGIN UPDATE TblPCRoomBilling_Time SET strRegProcess = 'z' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END UPDATE TblCRM_RYLLOG SET strConvertCHK = 'Y' WHERE intIndex = @intIndex AND strCommand ='C' AND strConvertCHK ='N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END COMMIT TRAN GO -- COMMAND : WCANCEL (ÇØÁöÃë¼Ò) -- 1.TimeProcess¸¦ 'm'·Î º¯°æÇÑ´Ù. CREATE PROC agt_CRM_RYLLOG_WCANCEL @intIndex INT,@strCRMCode VARCHAR(20),@strBillingType CHAR(1) AS SET NOCOUNT ON DECLARE @intCRMIndex INT -- ±âÁ¸ °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö °Ë»öÇÑ´Ù. SELECT @intCRMIndex = intCRMIndex FROM TblPCRoomBillingInfo WHERE strCRMCode = @strCRMCode and strBillingType = @strBillingType BEGIN TRAN IF @intCRMIndex > 0 BEGIN IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN UPDATE TblPCRoomBilling_Date SET strRegProcess = 'm' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF (@strBillingType ='T') -- ³ª¸ÓÁö Á¤·®Á¦ BEGIN UPDATE TblPCRoomBilling_Time SET strRegProcess = 'm' WHERE intCRMIndex = @intCRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END UPDATE TblCRM_RYLLOG SET strConvertCHK = 'Y' WHERE intIndex = @intIndex AND strCommand ='D' AND strConvertCHK ='N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END COMMIT TRAN GO CREATE PROC agt_DeletePcroombiling_Date_Z_Type AS SET NOCOUNT ON CREATE TABLE #TempCrmindex ( ROWID INT IDENTITY(1,1) , CRMINDEX INT ) DECLARE @ROWID INT DECLARE @CRMINDEX INT INSERT INTO #TempCrmindex SELECT intCRMIndex FROM TblPcroombilling_date WHERE strRegProcess = 'z' and dateEndTime < getdate() SET @ROWID = @@ROWCOUNT WHILE @ROWID > 0 BEGIN SELECT @CRMINDEX = CRMINDEX FROM #TempCrmindex WHERE ROWID =@ROWID IF NOT EXISTS (SELECT strClientID FROM TblCurrentUser WHERE intCRMIndex = @CRMINDEX) BEGIN INSERT INTO Rylbillingdb_log..TblPCRoomBilling_Date_DELLOG SELECT * FROM TblPCRoomBilling_Date WHERE intCRMIndex = @CRMIndex INSERT INTO Rylbillingdb_log..TblGameRoomIPList_DELLOG SELECT * FROM TblGameRoomIPList WHERE intCRMIndex = @CRMIndex INSERT INTO Rylbillingdb_log..TblPCRoomBillingInfo_DELLOG SELECT * FROM TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex DELETE TblPCRoomBilling_Date WHERE intCRMIndex = @CRMIndex -- ÇØ´ç ¾ÆÀÌÇǸ¦ »èÁ¦ÇÑ´Ù. DELETE TblGameRoomIPList WHERE intCRMIndex = @CRMIndex -- Çǽùæ Á¤º¸¸¦ »èÁ¦ÇÑ´Ù. DELETE TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex END SET @ROWID = @ROWID - 1 END DROP TABLE #TempCrmindex GO --°¡Á®¿Âµ¥ÀÌÅ͸¦ ó¸®ÇÑ´Ù. CREATE PROC agt_PersonBilling_CHK AS SET NOCOUNT ON DECLARE @ROWID INT DECLARE @intIndex INT DECLARE @strClientID VARCHAR(20) DECLARE @UID INT DECLARE @strBillingType CHAR(1) DECLARE @dateEndTime SMALLDATETIME DECLARE @intServiceTime INT DECLARE @strCorrentState CHAR(1) DECLARE @TempTable TABLE ( RowID INT IDENTITY(1,1) PRIMARY KEY , intIndex INT , strClientID VARCHAR(20) , UID INT , strBillingType CHAR(1) , dateEndTime SMALLDATETIME , intServiceTime INT ) INSERT INTO @TempTable (intIndex,strClientID,UID,strBillingType,dateEndTime,intServiceTime) SELECT intIndex,strClientID,UID,strBillingType,dateEndTime,intServiceTime FROM TblPersonBilling_log WHERE strConvertCHK = 'N' ORDER BY intIndex DESC SET @ROWID = @@ROWCOUNT WHILE @ROWID <> 0 BEGIN SELECT @intIndex = intIndex,@strClientID=strClientID,@UID=UID,@strBillingType=strBillingType,@dateEndTime=dateEndTime ,@intServiceTime=intServiceTime FROM @TempTable WHERE RowID = @ROWID EXEC agt_PersonBilling_CHK_Include @intIndex,@strClientID,@UID,@strBillingType,@dateEndTime,@intServiceTime SET @ROWID = @ROWID - 1 END GO --°¡Á®¿Âµ¥ÀÌÅ͸¦ ó¸®ÇÑ´Ù. CREATE PROC agt_PersonBilling_CHK_2 AS SET NOCOUNT ON DECLARE @ROWID INT DECLARE @intIndex INT DECLARE @strClientID VARCHAR(20) DECLARE @UID INT DECLARE @strBillingType CHAR(1) DECLARE @dateEndTime SMALLDATETIME DECLARE @intServiceTime INT DECLARE @strCorrentState CHAR(1) DECLARE @TempTable TABLE ( RowID INT IDENTITY(1,1) PRIMARY KEY , intIndex INT , strClientID VARCHAR(20) , UID INT , strBillingType CHAR(1) , dateEndTime SMALLDATETIME , intServiceTime INT ) INSERT INTO @TempTable (intIndex,strClientID,UID,strBillingType,dateEndTime,intServiceTime) SELECT DISTINCT intIndex,strClientID,UID,strBillingType,dateEndTime,intServiceTime FROM RYLBILLINGDB_LOG..TblPersonBilling_log_HISTORY WHERE strConvertCHK = 'N' AND INTINDEX >= 122188 ORDER BY intIndex DESC SET @ROWID = @@ROWCOUNT WHILE @ROWID <> 0 BEGIN SELECT @intIndex = intIndex,@strClientID=strClientID,@UID=UID,@strBillingType=strBillingType,@dateEndTime=dateEndTime ,@intServiceTime=intServiceTime FROM @TempTable WHERE RowID = @ROWID EXEC agt_PersonBilling_CHK_Include_2 @intIndex,@strClientID,@UID,@strBillingType,@dateEndTime,@intServiceTime SET @ROWID = @ROWID - 1 END GO CREATE PROC agt_PersonBilling_CHK_Include @intIndex INT,@strClientID VARCHAR(20),@UID INT,@strBillingType CHAR(1), @dateEndTime SMALLDATETIME,@intServiceTime INT AS SET NOCOUNT ON DECLARE @nTime INT IF EXISTS (SELECT strClientID FROM TblPersonInfo WHERE UID =@UID) BEGIN SELECT @nTime = DATEDIFF(DAY,GETDATE(),RegLoginTime) FROM TblPersonInfo WHERE UID = @UID IF @nTime >= 0 BEGIN UPDATE TblPersonInfo SET RegLoginTime = GETDATE() - 1 WHERE UID = @UID END END ELSE BEGIN INSERT INTO TblPersonInfo VALUES (@UID,@strClientID,GETDATE()-1,GETDATE()) END BEGIN TRAN IF EXISTS (SELECT strClientID FROM TblPersonBillingInfo WHERE strClientID = @strClientID) BEGIN IF @strBillingType = 'D' BEGIN UPDATE TblPersonBillingInfo SET dateEndTime = @dateEndTime,dateRegTime = GETDATE() WHERE strClientID = @strClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF @strBillingType = 'T' BEGIN UPDATE TblPersonBillingInfo SET intServiceTime = intServiceTime + @intServiceTime,dateRegTime = GETDATE() WHERE strClientID = @strClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END END -- ±âÁ¸»ç¿ëÀÚ°¡ ¾Æ´Ï¸é Àμ­Æ®ÇÑ´Ù. ELSE BEGIN INSERT INTO TblPersonBillingInfo VALUES (@strClientID,@UID,@dateEndTime,@intServiceTime,0,GETDATE()) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END UPDATE TblPersonBilling_log SET strConvertCHK = 'Y' WHERE intIndex =@intIndex AND strConvertCHK = 'N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN GO CREATE PROC agt_PersonBilling_CHK_Include_2 @intIndex INT,@strClientID VARCHAR(20),@UID INT,@strBillingType CHAR(1), @dateEndTime SMALLDATETIME,@intServiceTime INT AS SET NOCOUNT ON DECLARE @nTime INT IF EXISTS (SELECT strClientID FROM TblPersonInfo WHERE UID =@UID) BEGIN SELECT @nTime = DATEDIFF(DAY,GETDATE(),RegLoginTime) FROM TblPersonInfo WHERE UID = @UID IF @nTime >= 0 BEGIN UPDATE TblPersonInfo SET RegLoginTime = GETDATE() - 1 WHERE UID = @UID END END ELSE BEGIN INSERT INTO TblPersonInfo VALUES (@UID,@strClientID,GETDATE()-1,GETDATE()) END BEGIN TRAN IF EXISTS (SELECT strClientID FROM TblPersonBillingInfo WHERE strClientID = @strClientID) BEGIN IF @strBillingType = 'D' BEGIN UPDATE TblPersonBillingInfo SET dateEndTime = @dateEndTime,dateRegTime = GETDATE() WHERE strClientID = @strClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END ELSE IF @strBillingType = 'T' BEGIN UPDATE TblPersonBillingInfo SET intServiceTime = intServiceTime + @intServiceTime,dateRegTime = GETDATE() WHERE strClientID = @strClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END END -- ±âÁ¸»ç¿ëÀÚ°¡ ¾Æ´Ï¸é Àμ­Æ®ÇÑ´Ù. ELSE BEGIN INSERT INTO TblPersonBillingInfo VALUES (@strClientID,@UID,@dateEndTime,@intServiceTime,0,GETDATE()) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END /* UPDATE TblPersonBilling_log SET strConvertCHK = 'Y' WHERE intIndex =@intIndex AND strConvertCHK = 'N' IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END */ COMMIT TRAN RETURN GO CREATE PROC agt_PersonBilling_Delete AS SET NOCOUNT ON DECLARE @MIN INT -- Àü¿¡ °¡Á®¿Ô´ø ÃÖ´ë°ª SELECT @MIN = intCount FROM TblImportedNum WHERE strCompType = 'H' BEGIN TRAN INSERT INTO RYLBillingDB_LOG.dbo.TblPersonBilling_log_History SELECT * FROM TblPersonBilling_log WHERE intIndex <= @MIN IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END DELETE TblPersonBilling_log WHERE intIndex <= @MIN IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN GO CREATE PROC agt_PersonBilling_Pulling AS SET NOCOUNT ON -- ÇöÀç µ¥ÀÌÅͰ¡ ó¸®µÈ ¹Ìµð¾îÀ¥ °Ç¼ö¸¦ °¡Á®¿Â´Ù. DECLARE @MIN INT DECLARE @MAX INT SET @MAX = 0 SELECT @MIN = intCount FROM TblImportedNum WHERE strCompType = 'H' --SET XACT_ABORT ON --BEGIN TRAN --ÇѰÔÀÓ¿¡¼­ »õ·Ó°Ô ó¸®ÇÒ µ¥ÀÌÅ͸¦ °¡Á®¿Â´Ù. INSERT INTO TblPersonBilling_log (intIndex,strClientID,UID,strBillingType,dateEndTime, intServiceTime,strConvertCHK,dateInsertTime) SELECT BILLNUM,MEMBERID,RYLUID,BILLTYPE,ENDDATE,GAMEMIN,'N',GETDATE() FROM HANBILLING..HANGAME.RYLBILLINGT WHERE BILLNUM > @MIN AND HanCHK = 'N' -- ÃÑó¸®µÈ µ¥ÀÌÅͼö¸¦ °¡Á®¿Â´Ù. SELECT @MAX = MAX(intIndex) FROM TblPersonBilling_log WHERE strConvertCHK ='N' IF @MAX > 0 BEGIN UPDATE HANBILLING..HANGAME.RYLBILLINGT SET HANCHK = 'Y' WHERE BILLNUM > @MIN AND BILLNUM <= @MAX AND HANCHK = 'N' -- µ¥ÀÌÅ͸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. UPDATE TblImportedNum SET intCount = @MAX WHERE strCompType = 'H' END --COMMIT TRAN --SET XACT_ABORT OFF GO CREATE PROC USP_CheckNewBillRemainTime @UID INT AS SET NOCOUNT ON DECLARE @BillingType CHAR(1) DECLARE @RemainTotal INT DECLARE @strClientID VARCHAR(20) DECLARE @RemainDate INT DECLARE @RemainTime INT SET @BillingType = 'N' SET @RemainTotal = 0 SELECT @strClientID = strClientID FROM TblPersonInfo WHERE UID = @UID SELECT @RemainDate=DATEDIFF(DAY,GETDATE(),dateEndTime),@RemainTime = intServiceTime - intUsingTime FROM TblPersonBillingInfo WHERE strClientID = @strClientID -- BillingType ='D' IF @RemainDate > 0 BEGIN SET @BillingType = 'D' SET @RemainTotal = @RemainDate END ELSE IF @RemainDate = 0 BEGIN IF @RemainTime > 0 BEGIN SET @BillingType = 'T' SET @RemainTotal = @RemainTime END ELSE BEGIN SET @BillingType = 'D' SET @RemainTotal = @RemainDate END END ELSE BEGIN IF @RemainTime >= 0 BEGIN SET @BillingType = 'T' SET @RemainTotal = @RemainTime END END SELECT CAST (@BillingType AS CHAR(2)),@RemainTotal GO -- °³ÀÎ Á¤·® ¹× Á¤¾×ÀÌ Á¾·á µÇ¾úÀ»¶§ ÀÚµ¿À¸·Î ²÷±âÀü¿¡ °³Àΰü·Ã ºô¸µÀ» üũÇÑ´Ù. CREATE PROC USPCheckBilling_BeforeLogOut @strClientID VARCHAR(20) AS -- ·Î±×¾Æ¿ô Çϱâ Àü¿¡ °³ÀξÆÀ̵ðÀÇ Ãß°¡ °ú±Ý¿©ºÎ¸¦ üũÇÑ´Ù. SET NOCOUNT ON DECLARE @BillingType CHAR(1) DECLARE @CanPlayTime INT DECLARE @UsedTime INT DECLARE @PlayTime INT -- ÇöÀç Á¢¼ÓµÈ Á¤º¸¸¦ ¾ò¾î¿Â´Ù. SELECT @BillingType = strBillingType,@UsedTime = DATEDIFF(MINUTE,dateLoginTime,GETDATE()) FROM TblCurrentUser WHERE strClientID = @strClientID IF @BillingType = 'T' BEGIN -- ÇöÀç °ú±ÝÁ¤º¸¸¦ ¾ò¾î¿Â´Ù. SELECT @CanPlayTime =( intServiceTime - intUsingTime) FROM TblPersonBillingInfo WHERE strClientID = @strClientID -- ³¯Â¥¸¦ °è»êÇÑ´Ù. SET @PlayTime = @CanPlayTime - @UsedTime SELECT @PlayTime RETURN END ELSE BEGIN SET @PlayTime = 0 SELECT @PlayTime RETURN END GO -- ij¸¯ÅÍ ¼±ÅÃâ °¡±â Àü¿¡ °ú±Ý ¿©ºÎ¸¦ üũÇÑ´Ù. -- ij¸¯ÅÍ ¼±ÅÃâ¿¡¼­ ´Ù½Ã ½ÇÇàÇÑ´Ù. -- Ãß°¡»çÇ× : ºí·°µÈ ij¸¯ÅÍÀÎÁö ¾Æ´ÑÁö¸¦ °¡·Á¾ßÇÑ´Ù. CREATE PROC USPCheckBilling_CharIDLogin @strClientID VARCHAR(20),@UID INT,@check TINYINT,@ClientIP VARCHAR(15),@ServerID TINYINT AS SET NOCOUNT ON DECLARE @strBillingType CHAR(1) --D,T DECLARE @strBillingType2 CHAR(2) -- RETURN VALUES DECLARE @PlayTime INT --³²Àº½Ã°£(ºÐ),³²ÀºÀÏÀÚ DECLARE @CanUseTime INT DECLARE @FLAG INT SET @strBillingType = 'N' SET @PlayTime = 0 SET @CanUseTime = 0 SET @FLAG = -1 DECLARE @IPType CHAR(1) --D,T DECLARE @intCRMIndex1 INT DECLARE @intCRMIndex2 INT SET @intCRMIndex1 =0 SET @intCRMIndex2 =0 DECLARE @BillingDate CHAR(1) DECLARE @BillingTime CHAR(1) SET @BillingDate = 'D' SET @BillingTime = 'T' -- ÇǽùæÁß Á¤·®Á¦¿Í Á¤¾×Á¦¸¦ °°ÀÌ »ç¿ëÇÏ´Â °æ¿ì ÇØ´ç °ú±ÝÀÇ ÇǽùæÀ妽º¸¦ ¾ò¾î¿Í¾ßÇÑ´Ù. DECLARE @OutCRMIndex INT DECLARE @tinyServerID INT SET @tinyServerID = -1 DECLARE @FreeTime INT -- ÇöÀç ·Î±×ÀÎ µÈ »ç¿ëÀÚ ÀÎÁö ¾Æ´ÑÁö üũÇÑ´Ù. SELECT @tinyServerID = tinyServerID FROM TblCurrentUser WHERE strClientid = @strClientID IF @tinyServerID > -1 BEGIN SET @FLAG = 1 --Áߺ¹µÈ À¯ÀúÀÓ. SET @intCRMIndex1 = @tinyServerID SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as ServerID RETURN END -- ¹«·á°èÁ¤ ¿©ºÎ üũ IF (@Check = 1) --¹«·á°èÁ¤ BEGIN SET @FLAG = 0 --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END -- ¹«·á°èÁ¤ÀÎÁö ¾Æ´ÑÁö üũÇÑ´Ù SELECT @FreeTime = DATEDIFF(DAY,GETDATE(),RegLoginTime) FROM TBLPERSONINFO WHERE UID = @UID -- ½ÇÁ¦ ¹«·á °èÁ¤ÀÓÀ» ³ªÅ¸³¿. IF (@FreeTime >= 0) BEGIN SET @FLAG = 0 -- ÀÓ½ÃÅ×À̺í TblCurrentUser¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @FreeTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END /************************************************* * @FLAG = 0,@strBillingType ='D',@PlayTime = ³²ÀºÀÏÀÚ --°³ÀÎÁ¤¾×Á¦ ¼º°ø * @FLAG = 0,@strBillingType ='T',@PlayTime = ³²Àº½Ã°£ --°³ÀÎÁ¤·®Á¦ ¼º°ø * @FLAG = 1,@strBillingType ='N',@PlayTime = 0 --°ú±Ýµî·ÏÀÌ µÇ¾îÀÖÁö ¾ÊÀ½ * @FLAG = 2,@strBillingType ='D',@PlayTime = 0 --°³ÀÎÁ¤¾×Á¦ °ú±ÝÀÌ Á¾·áµÈ °æ¿ì * @FLAG = 3,@strBillingType ='T',@PlayTime = 0 --°³ÀÎÁ¤·®Á¦ °ú±ÝÀÌ Á¾·áµÈ °æ¿ì **************************************************/ EXEC @FLAG = USPCheckBilling_Person @strClientID,@strBillingType OUTPUT,@PlayTime OUTPUT -- °³Àΰú±ÝÀÌ ¼º°øÀûÀΰæ¿ì IF (@FLAG = 0) BEGIN -- Á¤¾×Á¦ °³ÀÎ À¯ÀúÀΰæ¿ì IF (@strBillingType =@BillingDate) BEGIN --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END -- Á¤·®Á¦ °³ÀÎ À¯ÀúÀΰæ¿ì ELSE IF (@strBillingType =@BillingTime) BEGIN SET @FLAG = -1 --AGAIN CHECK ClientIP /********************************************* * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = ¼ýÀÚ -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾×°ú Á¤·® ¸ðµÎ¸¦ »ç¿ëÇÔ * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾× ¶Ç´Â Á¤·®Áß Çϳª ÀÓ * @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ ¾Æ´Ô *********************************************/ EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT -- PC¹æÀÌ ¾Æ´Ñ°æ¿ì IF @FLAG <> 0 BEGIN -- °³ÀÎÁ¤·®Á¦·Î ¸®ÅÏÇÑ´Ù. SET @FLAG = 0 SET @intCRMIndex1 = 0 --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END -- PC¹æ ¾ÆÀÌÇÇÀΰæ¿ì ELSE IF @FLAG = 0 BEGIN -- ÇØ´ç ¾ÆÀÌÇÇÀÇ °ú±Ý ¹æ½Ä °¡Á®¿À±â IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- ÇϳªÀÇ °ú±Ý ¹æ½Ä¸¸ µû¸¥´Ù. BEGIN SELECT @IPType = strBillingType FROM TblPCRoomBillingInfo WHERE intCRMIndex = @intCRMIndex1 END ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- µÎ°³ÀÇ °ú±Ý ¹æ½ÄÀ» µû¸¥´Ù. BEGIN SET @IPType = 'C' END -- PC¹æ °ú±ÝÁ¾·ù¸¦ üũÇÑ´Ù. -- T:Á¤·®Á¦,D:Á¤¾×Á¦ EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT IF @FLAG <> 0 --ERROR BEGIN -- PC¹æ °ú±ÝÀÌ Á¾·áµÈ °æ¿ìÀ̹ǷΠ´Ù½Ã °³ÀÎÁ¤·®Á¦·Î °ú±ÝÀ» Àû¿ë½ÃŲ´Ù. SET @intCRMIndex1 = 0 SET @FLAG = 0 SET @strBillingType = @BillingTime --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END ELSE BEGIN IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN -- ¾ÆÀÌÇÇ Çϳª¸¦ »ç¿ëÇØ¼­ Ä«¿îÆ®¸¦ 1 ´õÇϱâ ÇÑ´Ù. EXEC USPCheckBilling_UpIPCount @OutCRMIndex --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END ELSE IF @strBillingType = 'T' -- Á¤¾×Á¦ BEGIN --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END END END END END -- °³Àΰú±ÝÀÌ ½ÇÆÐµÈ °æ¿ì ´Ù½Ã °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö ¾Æ´ÑÁö üũÇÑ´Ù. ELSE BEGIN --AGAIN CHECK ClientIP /********************************************* * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = ¼ýÀÚ -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾×°ú Á¤·® ¸ðµÎ¸¦ »ç¿ëÇÔ * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾× ¶Ç´Â Á¤·®Áß Çϳª ÀÓ * @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ ¾Æ´Ô *********************************************/ EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT -- PC¹æÀÌ ¾Æ´Ñ°æ¿ì IF @FLAG <> 0 BEGIN /* -- Àӽà Àû¿ë ºÎºÐ SET @FLAG = 0 SET @intCRMIndex1 = 0 SET @strBillingType = 'N' --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN */ -- ¿¡·¯¸®ÅÏÇÑ´Ù. SET @FLAG = 2 SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END ELSE IF @FLAG = 0 BEGIN -- ÇØ´ç ¾ÆÀÌÇÇÀÇ °ú±Ý ¹æ½Ä °¡Á®¿À±â IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- ÇϳªÀÇ °ú±Ý ¹æ½Ä¸¸ µû¸¥´Ù. BEGIN SELECT @IPType = strBillingType FROM TblPCRoomBillingInfo WHERE intCRMIndex = @intCRMIndex1 END ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- µÎ°³ÀÇ °ú±Ý ¹æ½ÄÀ» µû¸¥´Ù. BEGIN SET @IPType = 'C' END -- PC¹æ °ú±ÝÁ¾·ù¸¦ üũÇÑ´Ù. -- T:Á¤·®Á¦,D:Á¤¾×Á¦ EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT IF @FLAG <> 0 --ERROR BEGIN SET @strBillingType = 'N' -- PC¹æ °ú±ÝÀÌ Á¾·áµÈ ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù. SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END ELSE -- SUCCESS BEGIN IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN -- ¾ÆÀÌÇÇ Çϳª¸¦ »ç¿ëÇØ¼­ Ä«¿îÆ®¸¦ 1 ´õÇϱâ ÇÑ´Ù. EXEC USPCheckBilling_UpIPCount @OutCRMIndex --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END ELSE IF @strBillingType = 'T' -- Á¤¾×Á¦ BEGIN --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END END END END GO CREATE PROC USPCheckBilling_ClientIP @IP VARCHAR(15),@intCRMIndex1 INT OUTPUT,@intCRMIndex2 INT OUTPUT AS SET NOCOUNT ON DECLARE @RETURN INT DECLARE @intCRMIndex INT SET @intCRMIndex = 0 DECLARE @FLAG INT SET @FLAG = 1 DECLARE TblGameRoomIPList_Cursor CURSOR FOR SELECT intCRMIndex FROM TblGameRoomIPList WHERE strIP = @IP OPEN TblGameRoomIPList_Cursor FETCH NEXT FROM TblGameRoomIPList_Cursor into @intCRMIndex WHILE @@FETCH_STATUS = 0 BEGIN IF @FLAG = 1 BEGIN SET @intCRMIndex1 = @intCRMIndex END ELSE IF @FLAG = 2 BEGIN SET @intCRMIndex2 = @intCRMIndex END FETCH NEXT FROM TblGameRoomIPList_Cursor into @intCRMIndex SET @FLAG = @FLAG + 1 END CLOSE TblGameRoomIPList_Cursor DEALLOCATE TblGameRoomIPList_Cursor --NOT EXISTS IF @intCRMIndex1 = 0 BEGIN SET @RETURN = 1 RETURN @RETURN END ELSE BEGIN SET @RETURN = 0 RETURN @RETURN END GO -- °ÔÀÓ¹æ °ú±Ý üũ -- ÁÖÀÇ : @IPTypeÀ» ÀÎÀÚ·Î ¹ÞÀ»¶§ Ŭ¶óÀÌ¾ðÆ® ¾ÆÀÌÇǰ¡ Á¤¾×+Á¤·® Àΰæ¿ì´Â C¹®ÀÚ·Î ÅëÀÏÇØ¼­ ¹Þ´Â´Ù. CREATE PROC USPCheckBilling_GameRoom @intCRMIndex INT,@intCRMIndex2 INT,@IPType CHAR(1), @OutCRMIndex INT OUTPUT,@BillingType CHAR(1) OUTPUT,@canUseTime INT OUTPUT AS SET NOCOUNT ON DECLARE @RETURN INT -- ÇØ´ç ¾ÆÀÌÇÇÀÇ °ú±Ý ¹æ½ÄÀÌ Á¤·®Á¦¸¸ Àû¿ëµÈ ¹æ½ÄÀ̶ó°í Çϸé IF @IPType = 'T' BEGIN -- IF @RETURN = 1 ERROR ELSE SUCCESS EXEC @RETURN = USPCheckBilling_GameRoom_Time @intCRMIndex,@BillingType OUTPUT,@CanUseTime OUTPUT IF @RETURN <> 0 BEGIN RETURN 1 --ERROR END ELSE BEGIN SET @OutCRMIndex = @intCRMIndex RETURN 0 --SUCCESS END END -- Á¤¾×Á¦ ¾ÆÀÌÇǸ¸ Àû¿ëµÈ ¾ÆÀÌÇǶó°í Çϸé ELSE IF @IPTYPE = 'D' BEGIN EXEC @RETURN = USPCheckBilling_GameRoom_Date @intCRMIndex,@BillingType OUTPUT,@CanUseTime OUTPUT IF @RETURN <> 0 BEGIN RETURN 2 --ERROR END ELSE BEGIN SET @OutCRMIndex = @intCRMIndex RETURN 0 --SUCCESS END END -- Á¤¾×Á¦ Á¤·®Á¦ ¾ÆÀÌÇÇ ¸ðµÎ¸¦ Çã¿ëµÈ ¾ÆÀÌÇǶó°í Çϸé ELSE IF @IPTYPE = 'C' BEGIN -- ù¹øÂ° Á¤¾×Á¦ üũ EXEC @RETURN = USPCheckBilling_GameRoom_Date @intCRMIndex,@BillingType OUTPUT,@CanUseTime OUTPUT IF @RETURN <> 0 BEGIN --RETURN 3 --ERROR SET @BillingType ='N' SET @CanUseTime = 0 -- µÎ¹øÂ° Á¤¾×üũÇÔ. EXEC @RETURN = USPCheckBilling_GameRoom_Date @intCRMIndex2,@BillingType OUTPUT,@CanUseTime OUTPUT IF @RETURN <> 0 BEGIN SET @BillingType = 'N' SET @CanUseTime = 0 -- ù¹øÂ° Á¤·®Á¦ üũÇÔ. EXEC @RETURN = USPCheckBilling_GameRoom_Time @intCRMIndex,@BillingType OUTPUT,@CanUseTime OUTPUT IF @RETURN <> 0 BEGIN -- µÎ¹øÂ° Á¤·®Á¦ üũÇÔ. -- Á¤·®Á¦ üũÇÔ. EXEC @RETURN = USPCheckBilling_GameRoom_Time @intCRMIndex2,@BillingType OUTPUT,@CanUseTime OUTPUT IF @RETURN <> 0 BEGIN RETURN 3 --ERROR END ELSE BEGIN SET @OutCRMIndex = @intCRMIndex2 RETURN 0 --SUCCESS END END ELSE BEGIN SET @OutCRMIndex = @intCRMIndex RETURN 0 --SUCCESS END END ELSE BEGIN SET @OutCRMIndex = @intCRMIndex2 RETURN 0 --SUCCESS END END ELSE BEGIN SET @OutCRMIndex = @intCRMIndex RETURN 0 --SUCCESS END END GO CREATE PROC USPCheckBilling_GameRoom_Date @intCRMIndex INT,@BillingType CHAR(1) OUTPUT,@CanUseTime INT OUTPUT AS SET NOCOUNT ON DECLARE @tinyServiceIpNum TINYINT -- ÃÑ Á¢¼Ó °¡´ÉÇÑ ¾ÆÀÌÇǼö DECLARE @tinyUsedIpNum TINYINT --ÇöÀç Á¢¼ÓµÈ ¾ÆÀÌÇǼö DECLARE @dateEndTime SMALLDATETIME -- Á¤¾×Á¦ Á¾·áÀÏÀÚ DECLARE @strRegProcess CHAR(1) --°¡»ó°èÁÂ,ºñ°¡»ó°èÁ DECLARE @strClosed CHAR(1) -- ÇöÀç ÇØÁö»óÅÂÀÎÁö ÆÄ¾Ç SET @tinyServiceIpNum = 0 SET @tinyUsedIpNum = 0 SET @strRegProcess = 'N' -- ÇöÀç Á¤¾×Á¦ ¾ÆÀÌÇÇ Çã¿ë°¹¼ö¸¦ °¡Á®¿Â´Ù. BEGIN TRAN SELECT @strRegProcess = strRegProcess,@tinyServiceIpNum = tinyServiceIpNum, @dateEndTime = dateEndTime,@tinyUsedIpNum = tinyUsedIpNum,@strClosed = strClosed FROM TblPCRoomBilling_Date WITH (UPDLOCK) WHERE intCRMIndex = @intCRMIndex COMMIT TRAN -- ÇöÀç ÇØÁöµÈ ÇǽùæÀÎÁö üũÇÑ´Ù. IF @strClosed = 'Y' BEGIN SET @BillingType = 'N' SET @canUseTime = 0 RETURN 1 --ERROR END IF @strRegProcess = 'N' -- ¾ÆÀÌÇǰ¡ Á¸ÀçÇÏÁö ¾ÊÀ½ BEGIN SET @BillingType = 'N' SET @canUseTime = 0 RETURN 1 --ERROR END ELSE -- ¾ÆÀÌÇǰ¡ Á¸ÀçÇÔ BEGIN -- Çã¿ëµÈ ¾ÆÀÌÇÇ °¹¼ö°¡ Ãʰú µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù. --1. Çã¿ëµÈ ¾ÆÀÌÇǼö º¸´Ù ÇöÀç ¸¹ÀÌ »ç¿ëÇϰí ÀÖ´Ù¸é IF @tinyUsedIpNum >= @tinyServiceIpNum BEGIN SET @BillingType = 'D' SET @CanUseTime = 0 RETURN 2 --ERROR END --2. Çã¿ëµÈ ¾ÆÀÌÇǼö°¡ ÇöÀç »ç¿ëµÈ ¾ÆÀÌÇǼöº¸´Ù ´õ ¸¹´Ù°í Çϸé ELSE IF (@tinyUsedIpNum < @tinyServiceIpNum) BEGIN -- °¡»ó°èÁ À̹ǷΠÇöÀç ³¯Â¥¸¦ °ËÅäÇÑ´Ù. IF @strRegProcess = 'z' BEGIN -- EXPIRED DATE IF (GETDATE() >= @dateEndTime) BEGIN SET @BillingType ='D' SET @CanUseTime = 0 RETURN 3 --ERROR END ELSE BEGIN SET @BillingType = 'D' -- ÇöÀç ³²¾ÆÀÖ´Â ³¯Â¥¸¦ ¸®ÅÏÇÑ´Ù. SET @CanUseTime = DATEDIFF(DAY,GETDATE(),@dateEndTime) RETURN 0 --SUCCESS END END -- ºñ°¡»ó°èÁÂÀ̹ǷΠ¹«Á¶°Ç ½Ã°£ÀÌ Áö³ªµµ ¼º°ø¸®ÅÏÇÑ´Ù. ELSE IF @strRegProcess = 'm' BEGIN SET @BillingType = 'D' -- ÇöÀç ³²¾ÆÀÖ´Â ³¯Â¥¸¦ ¸®ÅÏÇÑ´Ù. SET @CanUseTime = DATEDIFF(DAY,GETDATE(),@dateEndTime) RETURN 0 --SUCCESS END END END GO CREATE PROC USPCheckBilling_GameRoom_Time @intCRMIndex INT,@BillingType CHAR(1) OUTPUT,@CanUseTime INT OUTPUT AS SET NOCOUNT ON DECLARE @strRegProcess CHAR(1) --°¡»ó°èÁÂ,ºñ°¡»ó°èÁ DECLARE @IntServiceTime INT --ÃÑ Á¤·®Á¦ µî·Ï½Ã°£(ºÐ) DECLARE @intUsingTime INT --Á¤·®Á¦ »ç¿ëÇÑ ½Ã°£(ºÐ) DECLARE @strClosed CHAR(1) -- ÇØÁöµÈ ÇÇ½Ã¹æ ¿©ºÎÀÎÁöüũ... DECLARE @intRemainTime INT SET @intRemainTime = 0 SET @intServiceTime = 0 -- ÃѰ¡´ÉÇÑ Ç÷¹À̽ð£À» 0À¸·Î ÃʱâÈ­ÇÑ´Ù. SET @strRegProcess ='N' -- Á¤·®Á¦ Å×ÀÌºí¿¡¼­ °ú±ÝÁ¤º¸¸¦ ºÒ·¯¿Â´Ù. SELECT @strRegProcess = strRegProcess,@IntServiceTime=intServiceTime, @intUsingTime = intUsingTime,@strClosed = strClosed FROM TblPCRoomBilling_Time WHERE intCRMIndex = @intCRMIndex -- ÇöÀç ÇØÁöµÈ ÇǽùæÀÎÁö üũÇÑ´Ù. IF @strClosed = 'Y' BEGIN SET @BillingType = 'N' SET @canUseTime = 0 RETURN 1 --ERROR END IF @strRegProcess = 'N' BEGIN SET @BillingType = 'N' SET @canUseTime = 0 RETURN 1 --ERROR END -- ºñ°¡»ó°èÁ (m), °¡»ó°èÁÂ(z) ELSE IF @strRegProcess = 'z' BEGIN -- CAN'T PLAY IF (@IntServiceTime <= @intUsingTime) BEGIN SET @BillingType = 'T' SET @canUseTime = 0 RETURN 2 --ERROR END ELSE BEGIN -- ÇöÀç Á¢¼ÓÁßÀÎ Çǽù濡 ´ëÇÑ À¯Àú¸¦ Ã¼Å©ÇØ¼­..»ç¿ë·®À» °Ë»çÇÑ´Ù. SELECT @intRemainTime = SUM(DATEDIFF(MINUTE,dateLoginTime,GETDATE())) FROM TblCurrentUser WHERE intCRMIndex = @intCRMIndex AND strBillingType = 'T' -- ERROR IF ((@IntServiceTime - @intUsingTime) < @intRemainTime) BEGIN SET @BillingType = 'T' SET @canUseTime = 0 RETURN 3 --ERROR END SET @BillingType = 'T' SET @CanUseTime = @IntServiceTime - @intUsingTime RETURN 0 -- SUCCESS END END ELSE IF @strRegProcess = 'm' BEGIN -- ÃÑ»ç¿ë½Ã°£ÀÌ Áö³µ´õ¶óµµ Ç÷¹ÀÌ ÇÒ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. -- CAN PLAY SET @BillingType = 'T' SET @CanUseTime = @IntServiceTime - @intUsingTime RETURN 0 -- SUCCESS END GO -- ij¸¯ÅÍ ¼±ÅÃâ °¡±â Àü¿¡ °ú±Ý ¿©ºÎ¸¦ üũÇÑ´Ù. -- ij¸¯ÅÍ ¼±ÅÃâ¿¡¼­ ´Ù½Ã ½ÇÇàÇÑ´Ù. CREATE PROC USPCheckBilling_Login @strClientID VARCHAR(20),@UID INT, @Check Int,@ClientIP VARCHAR(15),@ServerID TINYINT AS SET NOCOUNT ON --DECLARE @RegLogInTime DECLARE @strBillingType CHAR(1) --D,T DECLARE @strBillingType2 CHAR(2) DECLARE @PlayTime INT --³²Àº½Ã°£(ºÐ),³²ÀºÀÏÀÚ DECLARE @CanUseTime INT DECLARE @FLAG INT SET @strBillingType = 'N' SET @PlayTime = 0 SET @CanUseTime = 0 SET @FLAG = -1 DECLARE @IPType CHAR(1) --D,T DECLARE @intCRMIndex1 INT DECLARE @intCRMIndex2 INT SET @intCRMIndex1 =0 SET @intCRMIndex2 =0 DECLARE @BillingDate CHAR(1) DECLARE @BillingTime CHAR(1) SET @BillingDate = 'D' SET @BillingTime = 'T' -- ÇǽùæÁß Á¤·®Á¦¿Í Á¤¾×Á¦¸¦ °°ÀÌ »ç¿ëÇÏ´Â °æ¿ì ÇØ´ç °ú±ÝÀÇ ÇǽùæÀ妽º¸¦ ¾ò¾î¿Í¾ßÇÑ´Ù. DECLARE @OutCRMIndex INT DECLARE @tinyServerID INT SET @tinyServerID = -1 DECLARE @FreeTime INT /*************************************** ÀÓ½ÃÀû¿ëºÎºÐ ***************************************/ EXEC USPInsertPerson @strClientID,@UID -- ÇöÀç ·Î±×ÀÎ µÈ »ç¿ëÀÚ ÀÎÁö ¾Æ´ÑÁö üũÇÑ´Ù. SELECT @tinyServerID = tinyServerID FROM TblCurrentUser_Temp WHERE strClientid = @strClientID IF @tinyServerID > -1 BEGIN SET @FLAG = 1 --Áߺ¹µÈ À¯ÀúÀÓ. SET @intCRMIndex1 = @tinyServerID SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as ServerID RETURN END -- ÇöÀç ·Î±×ÀÎ µÈ »ç¿ëÀÚ ÀÎÁö ¾Æ´ÑÁö üũÇÑ´Ù. SELECT @tinyServerID = tinyServerID FROM TblCurrentUser WHERE strClientid = @strClientID IF @tinyServerID > -1 BEGIN SET @FLAG = 1 --Áߺ¹µÈ À¯ÀúÀÓ. SET @intCRMIndex1 = @tinyServerID SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as ServerID RETURN END -- ¹«·á°èÁ¤ ¿©ºÎ üũ -- ³ªÁß¿¡ ¼öÁ¤ÇؾßÇÔ. IF (@Check = 1) --¹«·á°èÁ¤ BEGIN SET @FLAG = 0 -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END -- ¹«·á°èÁ¤ÀÎÁö ¾Æ´ÑÁö üũÇÑ´Ù SELECT @FreeTime = DATEDIFF(DAY,GETDATE(),RegLoginTime) FROM TBLPERSONINFO WHERE uid = @UID -- ½ÇÁ¦ ¹«·á °èÁ¤ÀÓÀ» ³ªÅ¸³¿. IF (@FreeTime >= 0) BEGIN SET @FLAG = 0 -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @FreeTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END /************************************************* * @FLAG = 0,@strBillingType ='D',@PlayTime = ³²ÀºÀÏÀÚ --°³ÀÎÁ¤¾×Á¦ ¼º°ø * @FLAG = 0,@strBillingType ='T',@PlayTime = ³²Àº½Ã°£ --°³ÀÎÁ¤·®Á¦ ¼º°ø * @FLAG = 1,@strBillingType ='N',@PlayTime = 0 --°ú±Ýµî·ÏÀÌ µÇ¾îÀÖÁö ¾ÊÀ½ * @FLAG = 2,@strBillingType ='D',@PlayTime = 0 --°³ÀÎÁ¤¾×Á¦ °ú±ÝÀÌ Á¾·áµÈ °æ¿ì * @FLAG = 3,@strBillingType ='T',@PlayTime = 0 --°³ÀÎÁ¤·®Á¦ °ú±ÝÀÌ Á¾·áµÈ °æ¿ì **************************************************/ EXEC @FLAG = USPCheckBilling_Person @strClientID,@strBillingType OUTPUT,@PlayTime OUTPUT -- °³Àΰú±ÝÀÌ ¼º°øÀûÀΰæ¿ì IF (@FLAG = 0) BEGIN -- Á¤¾×Á¦ °³ÀÎ À¯ÀúÀΰæ¿ì IF (@strBillingType =@BillingDate) BEGIN -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END -- Á¤·®Á¦ °³ÀÎ À¯ÀúÀΰæ¿ì ELSE IF (@strBillingType =@BillingTime) BEGIN SET @FLAG = -1 --AGAIN CHECK ClientIP /********************************************* * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = ¼ýÀÚ -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾×°ú Á¤·® ¸ðµÎ¸¦ »ç¿ëÇÔ * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾× ¶Ç´Â Á¤·®Áß Çϳª ÀÓ * @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ ¾Æ´Ô *********************************************/ EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT -- PC¹æÀÌ ¾Æ´Ñ°æ¿ì IF @FLAG <> 0 BEGIN -- °³ÀÎÁ¤·®Á¦·Î ¸®ÅÏÇÑ´Ù. SET @FLAG = 0 SET @intCRMIndex1 = 0 -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END -- PC¹æ ¾ÆÀÌÇÇÀΰæ¿ì ELSE IF @FLAG = 0 BEGIN -- ÇØ´ç ¾ÆÀÌÇÇÀÇ °ú±Ý ¹æ½Ä °¡Á®¿À±â IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- ÇϳªÀÇ °ú±Ý ¹æ½Ä¸¸ µû¸¥´Ù. BEGIN SELECT @IPType = strBillingType FROM TblPCRoomBillingInfo WHERE intCRMIndex = @intCRMIndex1 END ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- µÎ°³ÀÇ °ú±Ý ¹æ½ÄÀ» µû¸¥´Ù. BEGIN SET @IPType = 'C' END -- PC¹æ °ú±ÝÁ¾·ù¸¦ üũÇÑ´Ù. -- T:Á¤·®Á¦,D:Á¤¾×Á¦ EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT IF @FLAG <> 0 --ERROR BEGIN -- PC¹æ °ú±ÝÀÌ Á¾·áµÈ °æ¿ìÀ̹ǷΠ´Ù½Ã °³ÀÎÁ¤·®Á¦·Î °ú±ÝÀ» Àû¿ë½ÃŲ´Ù. SET @intCRMIndex1 = 0 SET @FLAG = 0 SET @strBillingType = @BillingTime -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END ELSE BEGIN IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN -- ¾ÆÀÌÇÇ Çϳª¸¦ »ç¿ëÇØ¼­ Ä«¿îÆ®¸¦ 1 ´õÇϱâ ÇÑ´Ù. EXEC USPCheckBilling_UpIPCount @OutCRMIndex -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @canUseTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END ELSE IF @strBillingType = 'T' -- Á¤¾×Á¦ BEGIN -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @canUseTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END END END END END -- °³Àΰú±ÝÀÌ ½ÇÆÐµÈ °æ¿ì ´Ù½Ã °ú±Ýµî·ÏµÈ ÇǽùæÀÎÁö ¾Æ´ÑÁö üũÇÑ´Ù. ELSE BEGIN --AGAIN CHECK ClientIP /********************************************* * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = ¼ýÀÚ -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾×°ú Á¤·® ¸ðµÎ¸¦ »ç¿ëÇÔ * @FLAG = 0,@intCRMIndex1 = ¼ýÀÚ,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ Á¤¾× ¶Ç´Â Á¤·®Áß Çϳª ÀÓ * @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- ÇÇ½Ã¹æ ¾ÆÀÌÇǰ¡ ¾Æ´Ô *********************************************/ EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT -- PC¹æÀÌ ¾Æ´Ñ°æ¿ì IF @FLAG <> 0 BEGIN /*********Àӽà Àû¿ë ºÎºÐ ************ SET @FLAG = 0 SET @intCRMIndex1 = 0 SET @strBillingType = 'N' --Á¢¼ÓÅ×ÀÌºí¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_temp(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN *********Àӽà Àû¿ë ºÎºÐ ³¡ ************/ -- ¿¡·¯¸®ÅÏÇÑ´Ù SET @FLAG = 2 SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END ELSE IF @FLAG = 0 BEGIN -- ÇØ´ç ¾ÆÀÌÇÇÀÇ °ú±Ý ¹æ½Ä °¡Á®¿À±â IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- ÇϳªÀÇ °ú±Ý ¹æ½Ä¸¸ µû¸¥´Ù. BEGIN SELECT @IPType = strBillingType FROM TblPCRoomBillingInfo WHERE intCRMIndex = @intCRMIndex1 END ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- µÎ°³ÀÇ °ú±Ý ¹æ½ÄÀ» µû¸¥´Ù. BEGIN SET @IPType = 'C' END -- PC¹æ °ú±ÝÁ¾·ù¸¦ üũÇÑ´Ù. -- T:Á¤·®Á¦,D:Á¤¾×Á¦ EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT IF @FLAG <> 0 --ERROR BEGIN SET @FLAG = 2 SET @strBillingType = 'N' -- PC¹æ °ú±ÝÀÌ Á¾·áµÈ ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù. SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @PlayTime as PlayTime,@intCRMIndex1 as CRMIndex RETURN END ELSE -- SUCCESS BEGIN IF @strBillingType = 'D' -- Á¤¾×Á¦ BEGIN -- ¾ÆÀÌÇÇ Çϳª¸¦ »ç¿ëÇØ¼­ Ä«¿îÆ®¸¦ 1 ´õÇϱâ ÇÑ´Ù. EXEC USPCheckBilling_UpIPCount @OutCRMIndex -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @canUseTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END ELSE IF @strBillingType = 'T' -- Á¤¾×Á¦ BEGIN -- ÀÓ½ÃÅ×À̺í TblCurrentUser_Temp¿¡ ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID) VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID) SET @strBillingType2 = @strBillingType SELECT @FLAG as FLAG,@strBillingType2 as BillingType, @canUseTime as PlayTime,@OutCRMIndex as CRMIndex RETURN END END END END GO -- ·Î±×¾Æ¿ô ½Ã °ú±Ýüũ ºÎºÐ -- ·Î±×¾Æ¿ô½Ã °ú±ÝÀÌ Áö³­ °æ¿ì´Â ºÒȰ¼º »óÅ·ΠÀúÀåÇϰí Á¾·áÇÑ´Ù. CREATE PROC USPCheckBilling_LogOut @ClientID VARCHAR(20) AS SET NOCOUNT ON -- ÇöÀç ·Î±×ÀÎ µÈ Á¤º¸ °ªÀ» °¡Á®¿Â´Ù. DECLARE @BillingType CHAR(1) DECLARE @strIp VARCHAR(15) DECLARE @tinyServerID TINYINT DECLARE @UID INT SET @UID = -1 DECLARE @CRMIndex INT SET @CRMIndex = -1 DECLARE @DateLoginTime SMALLDATETIME DECLARE @FirstLoginTime SMALLDATETIME DECLARE @UsingTime INT DECLARE @ERROR INT -- Àӽ÷α×ÀÎ Å×ÀÌºí¿¡ Á¸ÀçÇÏ´ÂÁö ¾ÈÇÏ´ÂÁö È®ÀÎÇÑ´Ù. SELECT @UID = UID,@CRMIndex = intCRMIndex,@strIp = strIp,@BillingType = strBillingType, @tinyServerID = tinyServerID,@DateLoginTime = DateLoginTime FROM TblCurrentUser_temp WHERE strClientid = @ClientID -- Á¸Àç¾ÈÇÑ´Ù°í Çϸé -- ij¸¯ÅÍ ¼±ÅÃÇϰí Ç÷¹ÀÌÇÏ°í ³­µÚ ·Î±×¾Æ¿ô ÇÒ¶§ Àû¿ëµÇ´Â ºÎºÐ IF @UID = -1 BEGIN SELECT @UID = UID,@CRMIndex = intCRMIndex,@strIp = strIp,@BillingType = strBillingType, @tinyServerID = tinyServerID,@DateLoginTime = DateLoginTime,@FirstLoginTime = FirstLoginTime FROM TblCurrentUser WHERE strClientid = @ClientID -- ÇöÀç Á¢¼ÓµÈ À¯Àú°¡ ¾øÀ½ (TBLCURRENTUSER) IF @UID = -1 BEGIN SELECT 1 AS ERROR RETURN END -- ·Î±×ÀÎ Á¤º¸·Î ºÎÅÍ ÇöÀç±îÁö »ç¿ëÇÑ PLAYTIMEÀ» ±¸ÇÑ´Ù. SET @UsingTime = DATEDIFF(MINUTE,@DateLoginTime,GETDATE()) -- °³ÀÎÀ¯ÀúÀΰæ¿ì IF @CRMIndex = 0 BEGIN -- °ú±ÝŸÀÔÀ» ±¸ºÐ, Á¤·®Á¦Àΰæ¿ì IF @BillingType = 'T' BEGIN EXEC @ERROR =USPCheckBilling_LogOut_PersonTime @ClientID,@UsingTime -- ERROR HANDLER IF @ERROR <> 0 BEGIN SELECT @ERROR RETURN END END ELSE -- °³ÀÎÁ¤¾×Á¦,¹«·á°èÁ¤Àϰæ¿ì °æ¿ì BEGIN -- µ¥ÀÌÅ͸¦ »èÁ¦ÇÑ´Ù DELETE TblCurrentUser WHERE strClientid = @ClientID END END -- ÀÏ¹Ý °ÔÀÓ¹æÀÎ °æ¿ì ELSE IF (@CRMIndex > 0) BEGIN -- °ÔÀÓ¹æ Äڵ带 ±¸ÇÑ´Ù. DECLARE @CRMCode VARCHAR(20) SELECT @CRMCode = strCRMCode FROM TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex IF @BillingType = 'T' BEGIN EXEC @ERROR = USPCheckBilling_LogOut_PCTime 'Y',@CRMIndex,@CRMCode,@UsingTime,@ClientID -- ERROR HANDLER IF @ERROR <> 0 BEGIN SELECT @ERROR RETURN END END ELSE IF @BillingType ='D'-- °ÔÀÓ¹æ Á¤¾×Á¦ÀÎ °æ¿ì BEGIN EXEC @ERROR= USPCheckBilling_LogOut_PCDate 'Y',@CRMIndex,@CRMCode,@UsingTime,@ClientID IF @ERROR <> 0 BEGIN SELECT @ERROR RETURN END END END -- ·Î±×¸¦ ³²±ä´Ù. INSERT INTO RylBillingDB_LOG.DBO.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),@UsingTime) UPDATE TblPersonInfo SET LastLogOutTime = GETDATE() WHERE UID = @UID SELECT 0 AS SUCCESS RETURN END ELSE -- ij¸¯ÅÍ ¼±ÅÃâ¿¡¼­..¹Ù·Î ·Î±×¾Æ¿ô ÇÒ¶§ Àû¿ëµÇ´Â ºÎºÐ. ÀÓ½ÃÅ×ÀÌºí¿¡¼­ »èÁ¦ÇÏ°í ·Î±×¾Æ¿ôÇÑ´Ù. BEGIN BEGIN TRAN -- Àӽà ÇÇ½Ã¹æ ¾ÆÀÌÇǸ¦ Çϳª ³·Ãá´Ù. IF ((@CRMIndex > 0) AND (@BillingType = 'D')) BEGIN -- Çã¿ë¾ÆÀÌÇÇ °¹¼ö¸¦ ³·Ãá´Ù. UPDATE TblPCRoomBilling_Date SET tinyUsedIpNum = tinyUsedIpNum - 1 WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SELECT 2 AS ERROR RETURN END END -- ·Î±×¸¦ ³²±ä´Ù. DELETE TblCurrentUser_Temp WHERE strClientid = @ClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SELECT 3 AS ERROR RETURN END COMMIT TRAN --INSERT INTO RylBillingDB_Log.dbo.TblCurrentUser_Log --VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),0) SELECT 0 AS SUCCESS RETURN END GO CREATE PROC USPCheckBilling_LogOut_PCDate @DelFlag CHAR(1),@CRMIndex INT,@CRMCode VARCHAR(20),@UsingTime INT,@ClientID VARCHAR(20) AS SET NOCOUNT ON -- ÀÚµ¿À¸·Î Á¤¾×Á¦ À¯Àú°¡ ³ª°¡¸é Á¤·®Á¦ À¯Àú°¡ Á¢¼ÓµÇ¾îÀÖ´Â °÷À» Á¤¾×Á¦ À¯Àú·Î º¯È¯ÇؾßÇÔ. DECLARE @TimeCRMIndex INT DECLARE @UserID VARCHAR(20) DECLARE @LogOutTime INT DECLARE @strClosed CHAR(1) DECLARE @RegProcess CHAR(1) DECLARE @RemainTime INT -- Á¤·®Á¦°¡ Á¤¾×Á¦·Î ÀÚµ¿À¸·Î ¹Ù²î¸é IPNUMCOUNT DECLARE @IPNUMYESNO INT SET @IPNUMYESNO = 0 SET @LogOutTime = -1 SET @TimeCRMIndex = 0 DECLARE @RETURN INT SET @RETURN = -1 SELECT @TimeCRMIndex = intCRMIndex FROM TblPCRoomBillingInfo WHERE strCRMCode = @CRMCode AND strBillingType ='T' -- Á¤·®Á¦ ÇǽùæÀÌ Á¸ÀçÇÑ´Ù¸é IF @TimeCRMIndex > 0 BEGIN -- ÇöÀçÁ¢¼ÓµÈ À¯ÀúÀÇ ¾ÆÀ̵𸦠¾ò¾î¿Â´Ù.ÇØ´ç ¾ÆÀÌÇǰ¡ Á¤¾×Á¦ ¾ÆÀÌÇÇÀΰÍÁß¿¡¼­ °¡Á®¿Í¾ßÇÔ. SELECT TOP 1 @UserID = strClientid,@LogOutTime = DATEDIFF(MINUTE,dateLoginTime,GETDATE()) FROM TblCurrentUser WHERE intCRMIndex = @TimeCRMIndex AND strBillingType ='T' AND strIP IN (SELECT strIP FROM TblGameRoomIpList WHERE intCRMIndex = @CRMIndex) -- Á¤¾×Á¦ À¯Àú·Î º¯°æÇÒ Á¤·®Á¦ À¯Àú¸¦ ¸ÕÀú ·Î±×¾Æ¿ô ½ÃŲ´Ù. IF (@LogOutTime > -1) BEGIN EXEC @RETURN = USPCheckBilling_LogOut_PCTime 'N',@TimeCRMIndex,@CRMCode,@LogOutTime,@UserID -- @RETURN : 0 (SUCCESS) IF @RETURN <> 0 BEGIN RETURN 301 END -- ´Ù¸¥ Á¤·®Á¦ À¯Àú°¡ Á¢¼ÓÁßÀÌ¸é °ú±Ý ŸÀÔÀ» Á¤¾×Á¦·Î ¹Ù²Û´Ù. UPDATE TblCurrentUser SET intCRMIndex = @CRMIndex,strBillingType ='D',dateLoginTime = GETDATE() WHERE strClientid = @UserID IF @@ROWCOUNT = 1 BEGIN SET @IPNUMYESNO = 1 END -- ·Î±×¸¦ ³²±ä´Ù. INSERT INTO RylBillingDB_LOG.DBO.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@UserID,NULL,@TimeCRMIndex,NULL,'T',NULL,NULL,NULL,GETDATE(),@LogOutTime) END END -- »ç¿ë½Ã°£À» Ã¼Å©ÇØ¼­ °¡»ó°èÁÂÀÌ¸é »èÁ¦ÇÑ´Ù. SELECT @RegProcess = strRegProcess,@RemainTime = DATEDIFF(SECOND,GETDATE(),dateEndTime),@strClosed =strClosed FROM TblPCRoomBilling_Date WHERE intCRMIndex = @CRMIndex BEGIN TRAN -- °¡»ó°èÁÂ¿Í °ú±ÝÁ¾·áÀÏÀÚ°¡ Áö³ª¸é °ú±ÝÄ÷³À» »èÁ¦ÇÑ´Ù. IF (((@RegProcess = 'z') AND (@RemainTime <= 0)) OR @strClosed = 'Y') BEGIN -- ÇöÀç Àڽſܿ¡ ´Ù¸¥ À¯Àú°¡ µé¾î°¡ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. DECLARE @Count INT SELECT @Count = COUNT(strClientID) FROM TblCurrentUser WHERE intCRMIndex = @CRMIndex -- Àڽſܿ¡ ´Ù¸¥ À¯ÀúµéÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù°í Çϸé Àüü Á¤º¸¸¦ »èÁ¦ÇÑ´Ù. IF (@Count = 1) BEGIN DELETE TblPCRoomBilling_Date WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 302 END -- ÇØ´ç ¾ÆÀÌÇǸ¦ »èÁ¦ÇÑ´Ù. DELETE TblGameRoomIPList WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT = 0 BEGIN ROLLBACK TRAN RETURN 303 END -- Çǽùæ Á¤º¸¸¦ »èÁ¦ÇÑ´Ù. DELETE TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 304 END END ELSE -- Àڽſܿ¡ ´Ù¸¥ À¯Àú°¡ ÇöÀç Á¢¼ÓµÇ¾îÀÖ´Ù. BEGIN IF @IPNUMYESNO = 0 BEGIN -- Çã¿ë¾ÆÀÌÇÇ °¹¼ö¸¦ ³·Ãá´Ù. UPDATE TblPCRoomBilling_Date SET tinyUsedIpNum = tinyUsedIpNum - 1 WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 305 END END END END ELSE BEGIN IF @IPNUMYESNO = 0 BEGIN -- Çã¿ë¾ÆÀÌÇÇ °¹¼ö¸¦ ³·Ãá´Ù. UPDATE TblPCRoomBilling_Date SET tinyUsedIpNum = tinyUsedIpNum - 1 WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 306 END END END DELETE TblCurrentUser WHERE strClientid =@ClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 307 END COMMIT TRAN RETURN 0 GO CREATE PROC USPCheckBilling_LogOut_PCTime @DelFlag CHAR(1),@CRMIndex INT,@CRMCode VARCHAR(20),@UsingTime INT,@ClientID VARCHAR(20) AS SET NOCOUNT ON DECLARE @RemainTime INT DECLARE @RegProcess CHAR(1) DECLARE @strClose CHAR(1) -- ÇØÁöµÈ ÇǽùæÀÎÁö üũÇÑ´Ù. BEGIN TRAN UPDATE TblPCRoomBilling_Time SET intUsingTime = intUsingTime + @UsingTime WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 201 END -- »ç¿ë½Ã°£À» Ã¼Å©ÇØ¼­ °¡»ó°èÁÂÀÌ¸é »èÁ¦ÇÑ´Ù. SELECT @RegProcess = strRegProcess,@RemainTime =(intServiceTime - intUsingTime),@strClose = strClosed FROM TblPCRoomBilling_Time WHERE intCRMIndex = @CRMIndex -- ÇØÁöµÈ ÇǽùæÀ̰ųª °¡»ó°èÁ Áß »ç¿ë½Ã°£ÀÌ Ãʰú µÇ¾úÀ» °æ¿ì °ú±ÝÇʵ带 »èÁ¦ÇÑ´Ù. IF (((@RegProcess = 'z') AND (@RemainTime <= 0)) OR @strClose ='Y' ) BEGIN -- ÇöÀç Àڽſܿ¡ ´Ù¸¥ À¯Àú°¡ µé¾î°¡ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. DECLARE @Count INT SELECT @Count = COUNT(strClientID) FROM TblCurrentUser WHERE intCRMIndex = @CRMIndex -- ÇöÀç °°Àº Çǽù濡 ´Ù¸¥ À¯ÀúµéÀÌ Á¢¼ÓµÇ¾îÀÖÀ½ IF (@COUNT > 1) BEGIN -- ¹Ìµð¾îÀ¥¿¡ º¸³¾ Á¤·®Á¦ »ç¿ë·®¿¡ ´ëÇØ¼­ ±â·ÏÀ» ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCRM_ServiceTime (strCRMCode,strGameCode,intServiceTime,delColumn,WebCHK) VALUES (@CRMCode,'002',@RemainTime,'N','N') IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 202 END END -- ÇöÀç ´Ù¸¥ À¯ÀúµéÀÌ Çǽù濡 Á¢¼ÓÇØÀÖÁö ¾Ê´Ù. ELSE --IF (@COUNT = 1) BEGIN -- ÇØ´ç½Ã°£À» »èÁ¦ÇÑ´Ù. DELETE TblPCRoomBilling_Time WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 203 END -- ¹Ìµð¾îÀ¥¿¡ º¸³¾ Á¤·®Á¦ »ç¿ë·®¿¡ ´ëÇØ¼­ ±â·ÏÀ» ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCRM_ServiceTime (strCRMCode,strGameCode,intServiceTime,delColumn,WebCHK) VALUES (@CRMCode,'002',@RemainTime,'Y','N') IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 204 END -- ÇØ´ç ¾ÆÀÌÇǸ¦ »èÁ¦ÇÑ´Ù. DELETE TblGameRoomIPList WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT = 0 BEGIN ROLLBACK TRAN RETURN 205 END -- Çǽùæ Á¤º¸¸¦ »èÁ¦ÇÑ´Ù. DELETE TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 206 END END END ELSE -- »ç¿ë½Ã°£ÀÌ ³²¾ÆÀÖ´Â °æ¿ì BEGIN -- ¹Ìµð¾îÀ¥¿¡ º¸³¾ Á¤·®Á¦ »ç¿ë·®¿¡ ´ëÇØ¼­ ±â·ÏÀ» ÀÔ·ÂÇÑ´Ù. INSERT INTO TblCRM_ServiceTime (strCRMCode,strGameCode,intServiceTime,delColumn,WebCHK) VALUES (@CRMCode,'002',@RemainTime,'N','N') IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 207 END END -- ÇØ´ç À¯Àú¸¦ »èÁ¦ÇÔ. IF @DelFlag = 'Y' BEGIN DELETE TblCurrentUser WHERE strClientid = @ClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 208 END END COMMIT TRAN RETURN 0 GO CREATE PROC USPCheckBilling_LogOut_PersonTime @ClientID VARCHAR(20),@UsingTime INT AS SET NOCOUNT ON DECLARE @RemainTime INT SET @RemainTime = -1 BEGIN TRAN UPDATE TblPersonBillingInfo SET intUsingTime = intUsingTime + @UsingTime WHERE strClientid = @ClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 100 END DELETE TblCurrentUser WHERE strClientid = @ClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN 101 END COMMIT TRAN RETURN 0 GO -- CHECK PERSONALBILLING CREATE PROC USPCheckBilling_Person @strClientid VARCHAR(20),@strBillingType CHAR(1) OUTPUT,@PlayTime INT OUTPUT AS SET NOCOUNT ON DECLARE @RETURN INT -- 0:SUCCESS,1:ERROR DECLARE @dateEndTime SMALLDATETIME IF EXISTS (SELECT strClientID FROM TblPersonBillingInfo WHERE strClientid = @strClientID) BEGIN SELECT @dateEndTime = dateEndTime,@PlayTime = (intServiceTime - intUsingTime) FROM TblPersonBillingInfo WHERE strClientid = @strClientID -- ÇöÀç °ú±ÝÀÌ µî·ÏµÈ »óÅÂÀÎ À¯Àú¶ó°íÇϸé -- ¸ÕÀú °ú±ÝŸÀÔ Áß Á¤¾×Á¦°¡ Àû¿ëµÇ´ÂÁö ¾Ë¾Æº»´Ù. -- EXPIRED PERIOD TIME IF ((GETDATE() >= @dateEndTime) or (@dateEndTime is NULL)) BEGIN -- Á¤·®Á¦°¡ Àû¿ëµÇ´ÂÁö ¾Ë¾Æº»´Ù. IF (@PlayTime <= 0) BEGIN SET @strBillingType = 'N' -- °ú±Ý Àü»óÅ·Π¼¼ÆÃÇÑ´Ù. SET @RETURN = 3 --ERROR RETURN @RETURN END ELSE BEGIN SET @strBillingType = 'T' -- Á¤·®Á¦ °ú±ÝÀ¸·Î OUTPUTÇÑ´Ù. SET @RETURN = 0 --SUCCESS RETURN @RETURN END END -- CAN PLAY ELSE BEGIN SET @strBillingType = 'D' -- Á¤¾×Á¦ °ú±ÝÀ¸·Î OUTPUTÇÑ´Ù. SET @PlayTime = DATEDIFF(DAY,GETDATE(),@dateEndTime) SET @RETURN = 0 --SUCCESS RETURN @RETURN END END ELSE BEGIN -- NOT EXISTS SET @strBillingType = 'N' -- °ú±Ý Àü»óÅ·Π¼¼ÆÃÇÑ´Ù. SET @PlayTime = 0 -- °ú±Ý Àü»óÅ·Π¼¼ÆÃÇÑ´Ù. SET @RETURN = 1 --ERROR RETURN @RETURN END GO CREATE PROC USPCheckBilling_UpIPCount @intCRMIndex INT AS UPDATE TblPCRoomBilling_Date SET tinyUsedIpNum = tinyUsedIpNum + 1 WHERE intCRMIndex = @intCRMIndex GO -- ºí·° üũ CREATE Proc USPCheckRestraintChar @ServerID Tinyint,@UID INT AS SET NOCOUNT ON DECLARE @tinyType TINYINT SET @tinyType = 0 DECLARE @tinyKind TINYINT -- 1:¿µ±¸,0:Àӽà DECLARE @EndTime INT DECLARE @dateEndTime SMALLDATETIME DECLARE @intEndTime INT DECLARE @RETURNCHAR1 VARCHAR(20) DECLARE @RETURNCHAR2 VARCHAR(20) DECLARE @RETURNCHAR3 VARCHAR(20) SELECT @tinyType=tinyType,@tinyKind = tinykind,@EndTime =DATEDIFF(MINUTE,GETDATE(),dateEndTime) FROM TblRestraintChar WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1 IF @tinyType = 0 -- ºí·°¾ÈÇÔ BEGIN SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR2 RETURN END ELSE IF @tinyType = 1 -- °èÁ¤ºí·° BEGIN -- ±â°£¿©ºÎüũ IF (@EndTime <= 0 and @tinyKind = 0) --ºí·°ÇØÁ¦µÈ »óÅÂÀÓ BEGIN UPDATE TblRestraintChar SET tinyBlocked = 0 WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1 SET @tinyType = 0 SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR2 RETURN END ELSE BEGIN SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR2 RETURN END END ELSE IF @tinyType = 2 --ij¸¯ÅÍºí·° BEGIN DECLARE @strCharName VARCHAR(20) SET @EndTime = 0 DECLARE @TIME INT SET @TIME = 1 DECLARE Restraint_Cursor CURSOR FOR SELECT strCharName,DATEDIFF(MINUTE,GETDATE(),dateEndTime),tinyKind FROM TblRestraintChar WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1 OPEN Restraint_Cursor FETCH NEXT FROM Restraint_Cursor INTO @strCharName,@EndTime,@tinyKind WHILE @@FETCH_STATUS = 0 BEGIN IF ((@EndTime > 0) or (@tinyKind = 1)) BEGIN IF @TIME = 1 SET @RETURNCHAR1 = @strCharName ELSE IF @TIME = 2 SET @RETURNCHAR2 = @strCharName ELSE IF @TIME = 3 SET @RETURNCHAR3 = @strCharName END ELSE BEGIN UPDATE TblRestraintChar SET tinyBlocked = 0 WHERE tinyServerID=@ServerID AND UID = @UID AND strCharName = @strCharName AND tinyBlocked = 1 END SET @TIME = @TIME + 1 FETCH NEXT FROM Restraint_Cursor into @strCharName,@EndTime,@tinyKind END CLOSE Restraint_Cursor DEALLOCATE Restraint_Cursor IF ((@RETURNCHAR1 IS NULL) AND (@RETURNCHAR2 IS NULL) AND (@RETURNCHAR3 IS NULL)) BEGIN SET @tinyType = 0 END SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR3 RETURN END GO CREATE PROC USPDeleteRestraintChar @SeverID tinyint,@UID INT,@Charname varchar(16) AS SET NOCOUNT ON IF EXISTS (SELECT UID FROM TblRestraintChar WHERE tinyServerID=@SeverID AND UID = @UID AND strCharName = @Charname) BEGIN DELETE TblRestraintChar WHERE tinyServerID=@SeverID AND UID = @UID AND strCharName = @Charname SELECT @@ROWCOUNT END ELSE BEGIN SELECT 0 END GO -- ÇöÀç ¼­¹ö±º¿¡ Á¢¼ÓµÇ¾îÀÖ´Â À¯ÀúµéÀ» ¸®ÅÏÇÑ´Ù. CREATE PROC USPDisConnectLogOut @ServerID INT AS SET NOCOUNT ON DECLARE @RowID INT DECLARE @strClientID VARCHAR(20) DECLARE @TempTable TABLE ( RowID INT IDENTITY(1,1) PRIMARY KEY , strClientID VARCHAR(20) ) INSERT INTO @TempTable (strClientID) SELECT strClientID FROM TblCurrentUser WHERE tinyServerID = @ServerID SET @RowID = @@ROWCOUNT WHILE @RowID <> 0 BEGIN SELECT @strClientID = strClientID FROM @TempTable WHERE RowID = @RowID -- °³Àΰ³ÀÎ °ú±ÝÀ» ó¸®ÇÑ´Ù. EXEC USPDisConnectLogOut_Include @strClientID SET @RowID = @RowID - 1 END SELECT 0 AS SUCCESS GO -- ·Î±×¾Æ¿ô ½Ã °ú±Ýüũ ºÎºÐ -- ·Î±×¾Æ¿ô½Ã °ú±ÝÀÌ Áö³­ °æ¿ì´Â ºÒȰ¼º »óÅ·ΠÀúÀåÇϰí Á¾·áÇÑ´Ù. CREATE PROC USPDisConnectLogOut_Include @ClientID VARCHAR(20) AS SET NOCOUNT ON -- ÇöÀç ·Î±×ÀÎ µÈ Á¤º¸ °ªÀ» °¡Á®¿Â´Ù. DECLARE @BillingType CHAR(1) DECLARE @strIp VARCHAR(15) DECLARE @tinyServerID TINYINT DECLARE @UID INT SET @UID = -1 DECLARE @CRMIndex INT SET @CRMIndex = -1 DECLARE @DateLoginTime SMALLDATETIME DECLARE @FirstLoginTime SMALLDATETIME DECLARE @UsingTime INT -- Àӽ÷α×ÀÎ Å×ÀÌºí¿¡ Á¸ÀçÇÏ´ÂÁö ¾ÈÇÏ´ÂÁö È®ÀÎÇÑ´Ù. SELECT @UID = UID,@CRMIndex = intCRMIndex,@strIp = strIp,@BillingType = strBillingType, @tinyServerID = tinyServerID,@DateLoginTime = DateLoginTime FROM TblCurrentUser_temp WHERE strClientid = @ClientID IF @UID = -1 BEGIN SELECT @UID = UID,@CRMIndex = intCRMIndex,@strIp = strIp,@BillingType = strBillingType, @tinyServerID = tinyServerID,@DateLoginTime = DateLoginTime,@FirstLoginTime = FirstLoginTime FROM TblCurrentUser WHERE strClientid = @ClientID -- ÇöÀç Á¢¼ÓµÈ À¯Àú°¡ ¾øÀ½ (TBLCURRENTUSER) IF @UID = -1 BEGIN RETURN END -- ·Î±×ÀÎ Á¤º¸·Î ºÎÅÍ ÇöÀç±îÁö »ç¿ëÇÑ PLAYTIMEÀ» ±¸ÇÑ´Ù. SET @UsingTime = DATEDIFF(MINUTE,@DateLoginTime,GETDATE()) -- °³ÀÎÀ¯ÀúÀΰæ¿ì IF @CRMIndex = 0 BEGIN -- °ú±ÝŸÀÔÀ» ±¸ºÐ, Á¤·®Á¦Àΰæ¿ì IF @BillingType = 'T' BEGIN EXEC USPCheckBilling_LogOut_PersonTime @ClientID,@UsingTime END ELSE -- Á¤¾×Á¦,ºñ°ú±ÝÀ¯ÀúÀΰæ¿ì BEGIN DELETE TblCurrentUser where strClientid = @ClientID END END -- ÀÏ¹Ý °ÔÀÓ¹æÀÎ °æ¿ì ELSE IF (@CRMIndex > 0) BEGIN -- °ÔÀÓ¹æ Äڵ带 ±¸ÇÑ´Ù. DECLARE @CRMCode VARCHAR(20) SELECT @CRMCode = strCRMCode FROM TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex IF @BillingType = 'T' BEGIN EXEC USPCheckBilling_LogOut_PCTime 'Y',@CRMIndex,@CRMCode,@UsingTime,@ClientID END ELSE -- °ÔÀÓ¹æ Á¤¾×Á¦ÀÎ °æ¿ì BEGIN EXEC USPCheckBilling_LogOut_PCDate 'Y',@CRMIndex,@CRMCode,@UsingTime,@ClientID END END -- ·Î±×¸¦ ³²±ä´Ù. INSERT INTO RylBillingDB_LOG.DBO.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),@UsingTime) UPDATE TblPersonInfo SET LastLogOutTime = GETDATE() WHERE UID = @UID RETURN END ELSE -- ÀÓ½ÃÅ×ÀÌºí¿¡¼­ »èÁ¦ÇÏ°í ·Î±×¾Æ¿ôÇÑ´Ù. BEGIN BEGIN TRAN -- Àӽà ÇÇ½Ã¹æ ¾ÆÀÌÇǸ¦ Çϳª ³·Ãá´Ù. IF ((@CRMIndex > 0) AND (@BillingType = 'D')) BEGIN -- Çã¿ë¾ÆÀÌÇÇ °¹¼ö¸¦ ³·Ãá´Ù. UPDATE TblPCRoomBilling_Date SET tinyUsedIpNum = tinyUsedIpNum - 1 WHERE intCRMIndex = @CRMIndex IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END END -- ·Î±×¸¦ ³²±ä´Ù. DELETE TblCurrentUser_Temp WHERE strClientid = @ClientID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN INSERT INTO RylBillingDB_Log.dbo.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),0) RETURN END GO -- ¼­¹öÂÊ¿¡¼­ 1ºÐ¸¶´Ù °ü·Ã ÇÁ·Î½ÃÁ®¸¦ µ¹¸°´Ù. -- 1. ÇÇ½Ã¹æ ¾ÆÀÌÇÇ º¯°æ : Command : ET,ED -- 2. Çǽùæ ÇØÁö°¡ ¿ÔÀ»¶§ : Command : BB -- 3. ÇÇ»ç¹æ Àç¹èÄ¡ °ü·Ã : Command : FF CREATE PROC USPGRoomCurrent_DisConn @ClientID VARCHAR(20) AS SET NOCOUNT ON DECLARE @UID INT DECLARE @CRMIndex INT DECLARE @strIp VARCHAR(15) DECLARE @BillingType CHAR(1) DECLARE @tinyServerID TINYINT DECLARE @DateLoginTime SMALLDATETIME DECLARE @FirstLoginTime SMALLDATETIME SET @UID = -1 SELECT @UID = UID,@CRMIndex = intCRMIndex,@strIp = strIp,@BillingType = strBillingType, @tinyServerID = tinyServerID,@DateLoginTime = DateLoginTime,@FirstLoginTime = FirstLoginTime FROM TblCurrentUser WHERE strClientid = @ClientID -- À¯Àú°¡ Á¸ÀçÇÑ´Ù°í Çϸé IF (@UID > 0 ) BEGIN -- ÇØÁöµÇ´Â ÇǽùæÀÇ À¯ÀúÀϰæ¿ì IF EXISTS (SELECT strClientID FROM TblCurrentUser_DISCONN WHERE strClientID = @ClientID AND strCommand = 'BB') BEGIN --DELETE TblCurrentUser --WHERE strClientid = @ClientID -- °ÔÀÓ¹æ Äڵ带 ±¸ÇÑ´Ù. DECLARE @CRMCode VARCHAR(20) SELECT @CRMCode = strCRMCode FROM TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex IF @BillingType = 'T' BEGIN EXEC USPCheckBilling_LogOut_PCTime 'Y',@CRMIndex,@CRMCode,0,@ClientID END ELSE IF @BillingType ='D'-- °ÔÀÓ¹æ Á¤¾×Á¦ÀÎ °æ¿ì BEGIN EXEC USPCheckBilling_LogOut_PCDate 'Y',@CRMIndex,@CRMCode,0,@ClientID END -- ·Î±×¸¦ ³²±ä´Ù. INSERT INTO RylBillingDB_LOG.DBO.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),0) DELETE TblCurrentUser_DISCONN WHERE strClientID = @ClientID RETURN END -- Àç¹èÄ¡°¡ ÀϾ´Â °æ¿ì (Á¤¾×Á¦ ÇǽùæÀ϶§¸¸ ±â·Ï¿¡ ³²´Â´Ù) ELSE IF EXISTS (SELECT strClientID FROM TblCurrentUser_DISCONN WHERE strClientID = @ClientID AND strCommand = 'FF') BEGIN DELETE TblCurrentUser WHERE strClientid = @ClientID -- ·Î±×¸¦ ³²±ä´Ù. INSERT INTO RylBillingDB_LOG.DBO.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),0) DELETE TblCurrentUser_DISCONN WHERE strClientID = @ClientID RETURN END -- Á¤·®Á¦ ¾ÆÀÌÇǰ¡ º¯°æµÇ´Â °æ¿ì ELSE IF EXISTS (SELECT strClientID FROM TblCurrentUser_DISCONN WHERE strClientID = @ClientID AND strCommand = 'ET') BEGIN DELETE TblCurrentUser WHERE strClientid = @ClientID -- ·Î±×¸¦ ³²±ä´Ù. INSERT INTO RylBillingDB_LOG.DBO.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),0) DELETE TblCurrentUser_DISCONN WHERE strClientID = @ClientID RETURN END -- Á¤¾×Á¦ ¾ÆÀÌÇǰ¡ º¯°æµÇ´Â °æ¿ì ELSE IF EXISTS (SELECT strClientID FROM TblCurrentUser_DISCONN WHERE strClientID = @ClientID AND strCommand = 'ED') BEGIN -- °ÔÀÓ¹æ Äڵ带 ±¸ÇÑ´Ù. SELECT @CRMCode = strCRMCode FROM TblPCRoomBillingInfo WHERE intCRMIndex = @CRMIndex IF @BillingType = 'D' BEGIN EXEC USPCheckBilling_LogOut_PCDate 'Y',@CRMIndex,@CRMCode,0,@ClientID END -- ·Î±×¸¦ ³²±ä´Ù. INSERT INTO RylBillingDB_LOG.DBO.TblCurrentUser_Log (strClientID,UID,intCRMIndex,strIp,strBillingType,tinyServerID,FirstLoginTime,LoginTime,LogoutTime,intPlayTime) VALUES (@ClientID,@UID,@CRMIndex,@strIp,@BillingType,@tinyServerID,@FirstLoginTime,@DateLoginTime,GETDATE(),0) DELETE TblCurrentUser_DISCONN WHERE strClientID = @ClientID RETURN END END GO CREATE PROC USPInsertPerson @strClientid VARCHAR(20),@UID INT AS SET NOCOUNT ON IF NOT EXISTS (SELECT strClientid FROM TblPersonInfo WHERE UID = @UID) BEGIN INSERT INTO TblPersonInfo (UID,strClientid,RegLoginTime,LastLogOutTime) VALUES (@UID,@strClientid,GETDATE()+7,GETDATE()) END GO CREATE PROC USPSelectServerID @strClientid VARCHAR(20) AS SET NOCOUNT ON SELECT tinyServerid FROM TblCurrentUser WHERE strClientid = @strClientid GO -- ÇØ´ç ¼­¹ö ½ÃÀÛ ¹× Á¾·á ½Ã ·Î±×ÀÎ µ¥ÀÌÅÍ »èÁ¦Çϱâ. CREATE PROC USPServer_End @ServerID Tinyint AS SET NOCOUNT ON DELETE TblCurrentUser_Temp WHERE tinyServerID = @ServerID DELETE TblCurrentUser WHERE tinyServerID = @ServerID SELECT 0 AS SUCCESS GO -- ÇØ´ç ¼­¹ö ½ÃÀÛ ¹× Á¾·á ½Ã ·Î±×ÀÎ µ¥ÀÌÅÍ »èÁ¦Çϱâ. CREATE PROC USPServer_Start @ServerID Tinyint AS SET NOCOUNT ON DELETE TblCurrentUser_Temp WHERE tinyServerID = @ServerID DELETE TblCurrentUser WHERE tinyServerID = @ServerID SELECT 0 AS SUCCESS GO