/*
Writer : Han yeong min
RegDate : 2004-07-02
Description : The GameMoney Refill Process
*/
ALTER Procedure dbo.sp_Refill_GameMoney_Ins
@UserID Varchar(24) = ''
, @GameID nVarchar(30) = '' -- Sub Param is Using for Logging~
, @chargerAdminID Char(6) = 'GAM001'
, @UserNo Varchar(12) = ''
, @UserIP Varchar(15) = ''
, @Badmin Bit = 0
, @Info1 Varchar(20) = ''
AS
Declare @UserPmoney BigInt
Declare @UserPnum Tinyint
Declare @UserPdate Char(10)
Declare @DefMoney INT
Declare @OneMoney INT
Declare @Cnt INT
Declare @PossibleMoney INT
Declare @ReturnValue bit
Declare @AfterGameMoney Bigint
--1. 사용자의 오늘 일자인 충전 횟수와 금액을 조회한다.
Execute sp_Refill_GameMoneybyGame_Sel
@GameID,
@UserID,
@UserPmoney = @UserPmoney Output,
@UserPnum = @UserPnum Output,
@UserPdate = @UserPdate Output
--2. 사용가 충전하려고 하는 게임 정책과 비교한다.
Select @DefMoney = DefMoney, @OneMoney = OneMoney, @Cnt = Cnt, @PossibleMoney = PossibleMoney
from ConnectStatusDB.dbo.T_N901001 As GT INNER JOIN ConnectStatusDB.dbo.GameListInfo As GL
ON GT.GameCD = GL.GameCD
Where GL.GameID = @GameID And GL.GameIsService = 1
-- 최소 보유 머니 체크
IF @UserPmoney >= @PossibleMoney Begin
Return -1 -- 최소 충전 가능 금액보다 많습니다. 충전 불가
End
-- 최대 충전 회수 체크
IF @UserPnum >= @Cnt Begin
Return -2 -- 하루 최대 충전 회수를 초과 하셨습니다. 충전 불가
End
SET @AfterGameMoney = Convert(Bigint, @UserPmoney) + Convert(Bigint, @OneMoney)
-- 당일 체크
IF Convert(Varchar(10), @UserPdate, 121) < Convert(Varchar(10), Getdate(), 121) Begin
-- 당일 처음 게임머니를 충전
Goto First_GameMoneyRefill
End
Else Begin
-- 당일 계속 게임머니 충전
Goto OverTime_GameMoneyRefill
End
First_GameMoneyRefill:
-- 충전 로그 남기고 충전해 주는 프로세스
Execute @ReturnValue = sp_Refill_GameMoneybyGame_Upd
@GameID
, @UserID
, @OneMoney
, @IsFirst = 1
-- 추가 되는 Param --
, @BeforeMoney = @UserPmoney
, @AfterMoney = @AfterGameMoney
, @chargerAdminID = @chargerAdminID
, @UserNo = @UserNo
, @UserIP = @UserIP
, @Badmin = @Badmin
, @Info1 = @Info1
IF @ReturnValue = 1
Return 1
Else
Return 0
OverTime_GameMoneyRefill:
-- 충전 로그 남기고 충전해 주는 프로세스
Execute @ReturnValue = sp_Refill_GameMoneybyGame_Upd
@GameID
, @UserID
, @OneMoney
, @IsFirst = 0
-- 추가 되는 Param --
, @BeforeMoney = @UserPmoney
, @AfterMoney = @AfterGameMoney
, @chargerAdminID = @chargerAdminID
, @UserNo = @UserNo
, @UserIP = @UserIP
, @Badmin = @Badmin
, @Info1 = @Info1
IF @ReturnValue = 1
Return 1
Else
Return 0
Go