package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.StateUpDownEnum; import cc.mrbird.febs.mall.entity.HappyActivityCategory; import cc.mrbird.febs.mall.mapper.HappyActivityCategoryMapper; import cc.mrbird.febs.mall.service.HappyActivityCategoryService; import cc.mrbird.febs.mall.vo.activity.ApiCategoryInfoVo; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor @Transactional public class HappyActivityCategoryServiceImpl extends ServiceImpl implements HappyActivityCategoryService { /** * 公共方法:根据查询条件获取分类列表 * * @param queryWrapper 查询条件 * @return 分类列表 */ private List getCategoryList(LambdaQueryWrapper queryWrapper) { try { List happyActivityCategories = this.baseMapper.selectList(queryWrapper); if (CollUtil.isEmpty(happyActivityCategories)) { log.info("查询结果为空,查询条件: {}", queryWrapper); return new ArrayList<>(); } // 使用 Stream API 简化转换逻辑 return happyActivityCategories.stream() .map(item -> { ApiCategoryInfoVo apiCategoryInfoVo = new ApiCategoryInfoVo(); apiCategoryInfoVo.setId(item.getId()); apiCategoryInfoVo.setName(item.getName()); return apiCategoryInfoVo; }) .collect(Collectors.toList()); } catch (Exception e) { log.error("查询分类列表时发生异常", e); throw new RuntimeException("查询分类列表失败,请稍后重试"); } } @Override public FebsResponse allCategory() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .select(HappyActivityCategory::getId, HappyActivityCategory::getName) .eq(HappyActivityCategory::getState, StateUpDownEnum.UP.getCode()) .eq(HappyActivityCategory::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) .orderByAsc(HappyActivityCategory::getOrderCnt); List categoryList = getCategoryList(queryWrapper); return new FebsResponse().success().data(categoryList); } @Override public FebsResponse indexCategory() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .select(HappyActivityCategory::getId, HappyActivityCategory::getName) .eq(HappyActivityCategory::getState, StateUpDownEnum.UP.getCode()) .eq(HappyActivityCategory::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) .eq(HappyActivityCategory::getHotState, StateUpDownEnum.UP.getCode()) .orderByAsc(HappyActivityCategory::getOrderCnt); List categoryList = getCategoryList(queryWrapper); return new FebsResponse().success().data(categoryList); } }