82 lines
2 KiB
Transact-SQL
82 lines
2 KiB
Transact-SQL
CREATE PROCEDURE [dbo].[up_mail_gold_payment]
|
|
@mail_id [uniqueidentifier],
|
|
@msg nvarchar(350) = 'Bill'
|
|
as
|
|
set nocount on
|
|
|
|
declare @character_id [uniqueidentifier],
|
|
@sender_character_id [uniqueidentifier],
|
|
@NewMailID [uniqueidentifier]
|
|
|
|
declare @sender_name nvarchar(16),
|
|
@recver_name nvarchar(16)
|
|
|
|
declare @my_money int,
|
|
@req_money int
|
|
|
|
begin tran
|
|
|
|
if EXISTS (select [ID] from MailTable with (READUNCOMMITTED) where [ID] = @mail_id)
|
|
begin
|
|
--皋老 夸没 陛咀 犬牢
|
|
select
|
|
@character_id = [character_id]
|
|
,@recver_name = [receiver]
|
|
,@sender_character_id = [send_character_id]
|
|
,@sender_name = [sender]
|
|
,@req_money = [req_gold]
|
|
from MailTable with (READUNCOMMITTED) where [ID] = @mail_id
|
|
|
|
--郴捣 犬牢
|
|
SELECT @my_money = [gold] FROM [dbo].[CharacterTable] with (READUNCOMMITTED) where [character_id] = @character_id
|
|
|
|
-- 捣 昏力
|
|
if (@my_money - @req_money) > 0
|
|
begin
|
|
UPDATE [dbo].[CharacterTable] SET [gold] = (@my_money - @req_money) WHERE [character_id] = @character_id
|
|
end
|
|
else
|
|
begin
|
|
UPDATE [dbo].[CharacterTable] SET [gold] = 0 WHERE [character_id] = @character_id
|
|
end
|
|
|
|
-- 措陛 皋老 眠啊
|
|
insert into MailTable
|
|
values
|
|
( NEWID(), --0
|
|
@sender_character_id, --1
|
|
@sender_name, --2
|
|
@character_id, --3
|
|
@recver_name, --4
|
|
@msg, --3
|
|
@req_money, --4
|
|
0,
|
|
0,
|
|
0, --8
|
|
GETDATE(),
|
|
6 -- 措陛 快祈
|
|
);
|
|
|
|
--老馆 快祈栏肺 官操扁
|
|
UPDATE [dbo].[MailTable]
|
|
SET
|
|
[return_day] = 0
|
|
,[req_gold] = 0
|
|
,[is_open] = 0
|
|
,[create_type] = 0
|
|
WHERE [ID] = @mail_id
|
|
|
|
--官诧 皋老 沥焊 促矫 犬牢
|
|
select * from dbo.MailTable with (READUNCOMMITTED) where [ID] = @mail_id
|
|
|
|
end
|
|
|
|
declare @ERR int
|
|
|
|
SET @ERR = @@ERROR
|
|
IF @ERR <> 0 BEGIN
|
|
RAISERROR('贸府坷幅', 16, 10)
|
|
IF @@TRANCOUNT <> 0 ROLLBACK
|
|
RETURN (@ERR)
|
|
END
|
|
COMMIT TRAN
|