// 设置点赞:数据存在则删除(取消点赞),不存在则添加(点赞)
func (iotdb *iotsqlDbBasis) addAppReciationLog(rndFlag, cpopType, cpopTID, userID, cpopAuiID string) int {
res := -1
sqlStr := `
DECLARE @cpop_type INT=?
DECLARE @cpop_tid INT=?
DECLARE @userid INT=?
DECLARE @cpop_auiid INT=?
DECLARE @cpop_id INT
DECLARE @affect INT= 0
DECLARE @opt INT=0
SELECT TOP 1 @cpop_id = cpop_id
FROM APP_RECIATIONOG_LOG WITH ( NOLOCK )
WHERE cpop_type = @cpop_type AND cpop_tid = @cpop_tid AND cpop_operation_auiid = @userid AND cpop_auiid = @cpop_auiid
ORDER BY cpop_id DESC
BEGIN TRANSACTION
IF ( @cpop_id IS NULL OR @cpop_id = 0 )
BEGIN
INSERT INTO [APP_RECIATIONOG_LOG] ( [cpop_type] , [cpop_tid] , [cpop_operation_auiid] , [cpop_auiid] , [cpop_edit_time] )
VALUES ( @cpop_type , @cpop_tid , @userid , @cpop_auiid , GETDATE() )
SET @affect = @affect + @@ROWCOUNT
SET @opt= 1 --点赞
END
ELSE
BEGIN
DELETE FROM APP_RECIATIONOG_LOG
WHERE cpop_type = @cpop_type AND cpop_tid = @cpop_tid AND cpop_operation_auiid = @userid AND cpop_auiid = @cpop_auiid
SET @affect = @affect + @@ROWCOUNT
SET @opt= -1 --取消点赞
END
IF @affect <= 0 OR @@ERROR >= 1
BEGIN
ROLLBACK TRANSACTION
SELECT 0 AS res --sql执行错误
END
ELSE
BEGIN
COMMIT TRANSACTION
SELECT @opt AS res
END`
ok, res := iotdb.execSQLReIntFor5(rndFlag, sqlStr, cpopType, cpopTID, userID, cpopAuiID)
if !ok {
res = 0
}
return res
}
golang+sqlserver 存在则删除,不存在则添加
最新推荐文章于 2024-03-19 22:06:04 发布