From ff5d5aa8c1f7e42198602f1f9f14c1f27ffdf7aa Mon Sep 17 00:00:00 2001 From: CR7 <1965214192@qq.com> Date: Wed, 18 Dec 2024 21:35:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HotSearchServiceImpl.java | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 yami-shop-service/src/main/java/com/yami/shop/service/impl/HotSearchServiceImpl.java diff --git a/yami-shop-service/src/main/java/com/yami/shop/service/impl/HotSearchServiceImpl.java b/yami-shop-service/src/main/java/com/yami/shop/service/impl/HotSearchServiceImpl.java new file mode 100644 index 0000000..803a53b --- /dev/null +++ b/yami-shop-service/src/main/java/com/yami/shop/service/impl/HotSearchServiceImpl.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. + * + * https://www.mall4j.com/ + * + * 未经允许,不可做商业用途! + * + * 版权所有,侵权必究! + */ + +// 定义包名,表示这个类属于com.yami.shop.service.impl包 +package com.yami.shop.service.impl; + +// 导入MyBatis Plus框架中的ServiceImpl类,提供基础的CRUD操作实现 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +// 导入Spring框架的缓存注解 +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +// 导入Spring框架的Service注解,用于声明这是一个服务组件 +import org.springframework.stereotype.Service; + +// 导入项目中定义的HotSearchDto数据传输对象 +import com.yami.shop.bean.dto.HotSearchDto; +// 导入项目中定义的HotSearch实体类 +import com.yami.shop.bean.model.HotSearch; +// 导入Spring框架的Autowired注解,用于自动注入依赖的组件 +import org.springframework.beans.factory.annotation.Autowired; +// 导入与HotSearch实体类相关的Mapper接口 +import com.yami.shop.dao.HotSearchMapper; +// 导入定义的服务接口 +import com.yami.shop.service.HotSearchService; +// 导入Java.util.List接口,用于返回列表类型的数据 +import java.util.List; + +/** + * HotSearchServiceImpl类的文档注释 + * 这个类是HotSearchService接口的实现类,提供了与HotSearch实体类相关的业务操作实现 + * + * @author lgh on 2019/03/27 表示这个类是由lgh在2019年3月27日创建的 + */ +// 使用Spring的Service注解标注这个类为一个服务组件,这样Spring容器可以自动扫描并管理这个类的实例 +@Service +public class HotSearchServiceImpl extends ServiceImpl implements HotSearchService { + + // 使用Autowired注解自动注入HotSearchMapper的实例 + @Autowired + private HotSearchMapper hotSearchMapper; + + /** + * 根据店铺ID获取热点搜索DTO列表的方法 + * 这个方法使用@Cacheable注解,表示其返回结果将被缓存,缓存名称为"HotSearchDto",键为方法参数shopId + * @param shopId 店铺ID + * @return 根据店铺ID获取的热点搜索DTO列表 + */ + @Override + @Cacheable(cacheNames = "HotSearchDto", key = "#shopId") + public List getHotSearchDtoByShopId(Long shopId) { + // 调用hotSearchMapper的同名方法获取数据 + return hotSearchMapper.getHotSearchDtoByShopId(shopId); + } + + /** + * 根据店铺ID移除热点搜索DTO缓存的方法 + * 这个方法使用@CacheEvict注解,表示将从缓存中移除指定的缓存项,缓存名称为"HotSearchDto",键为方法参数shopId + * @param shopId 店铺ID + */ + @Override + @CacheEvict(cacheNames = "HotSearchDto", key = "#shopId") + public void removeHotSearchDtoCacheByShopId(Long shopId) { + // 这里可以添加额外的逻辑,比如通知缓存管理器移除缓存 + } +}