feat: 修复

This commit is contained in:
2026-03-04 19:47:47 +08:00
parent f6dc899bb9
commit e725335a6f
3 changed files with 30 additions and 36 deletions

View File

@@ -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);
}

View File

@@ -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