|
|
@ -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<HotSearchMapper, HotSearch> 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<HotSearchDto> 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) {
|
|
|
|
|
|
|
|
// 这里可以添加额外的逻辑,比如通知缓存管理器移除缓存
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|