feat: 修复
This commit is contained in:
@@ -2,7 +2,10 @@ package cn.iocoder.yudao.module.tik.muye.aiagent.mapper;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.tik.muye.aiagent.dal.AiAgentFavoriteDO;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -18,4 +21,16 @@ public interface AiAgentFavoriteMapper extends BaseMapperX<AiAgentFavoriteDO> {
|
||||
return selectList(AiAgentFavoriteDO::getUserId, userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入收藏(幂等:重复时更新时间)
|
||||
*/
|
||||
@Insert("INSERT INTO muye_ai_agent_favorite (user_id, agent_id, creator, create_time, updater, update_time, deleted, tenant_id) VALUES (#{userId}, #{agentId}, #{userId}, NOW(), #{userId}, NOW(), 0, 1) ON DUPLICATE KEY UPDATE update_time = NOW(), deleted = 0")
|
||||
void insertOrUpdate(@Param("userId") Long userId, @Param("agentId") Long agentId);
|
||||
|
||||
/**
|
||||
* 物理删除收藏记录(绕过逻辑删除)
|
||||
*/
|
||||
@Delete("DELETE FROM muye_ai_agent_favorite WHERE id = #{id}")
|
||||
void deletePhysicsById(@Param("id") Long id);
|
||||
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -27,19 +26,10 @@ public class AiAgentFavoriteServiceImpl implements AiAgentFavoriteService {
|
||||
|
||||
@Override
|
||||
public Long createFavorite(Long userId, Long agentId) {
|
||||
// 检查是否已收藏(幂等:已存在则直接返回)
|
||||
AiAgentFavoriteDO existFavorite = aiAgentFavoriteMapper.selectByUserIdAndAgentId(userId, agentId);
|
||||
if (existFavorite != null) {
|
||||
return existFavorite.getId();
|
||||
}
|
||||
|
||||
// 创建收藏
|
||||
AiAgentFavoriteDO favorite = AiAgentFavoriteDO.builder()
|
||||
.userId(userId)
|
||||
.agentId(agentId)
|
||||
.build();
|
||||
aiAgentFavoriteMapper.insert(favorite);
|
||||
return favorite.getId();
|
||||
// 幂等插入:重复时更新时间
|
||||
aiAgentFavoriteMapper.insertOrUpdate(userId, agentId);
|
||||
AiAgentFavoriteDO favorite = aiAgentFavoriteMapper.selectByUserIdAndAgentId(userId, agentId);
|
||||
return favorite != null ? favorite.getId() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -48,7 +38,7 @@ public class AiAgentFavoriteServiceImpl implements AiAgentFavoriteService {
|
||||
if (favorite == null) {
|
||||
throw exception(FAVORITE_NOT_EXISTS);
|
||||
}
|
||||
aiAgentFavoriteMapper.deleteById(favorite.getId());
|
||||
aiAgentFavoriteMapper.deletePhysicsById(favorite.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user