diff --git a/eladmin-common/src/main/java/cn/ysk/cashier/utils/ListUtil.java b/eladmin-common/src/main/java/cn/ysk/cashier/utils/ListUtil.java index c66fd420..bf98c814 100644 --- a/eladmin-common/src/main/java/cn/ysk/cashier/utils/ListUtil.java +++ b/eladmin-common/src/main/java/cn/ysk/cashier/utils/ListUtil.java @@ -80,7 +80,6 @@ public class ListUtil { for (String s : listString) { integerList.add(Integer.parseInt(s)); } - System.out.println(integerList); return integerList; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java index a88ce6b8..993da955 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java @@ -17,6 +17,7 @@ package cn.ysk.cashier.dto.product; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @website https://eladmin.vip @@ -54,7 +55,7 @@ public class TbProductGroupDto implements Serializable { private Integer sort; /** 商品列表 */ - private String productIds; + private List productIds; private Long createdAt; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mapper/product/TbProductGroupMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mapper/product/TbProductGroupMapper.java index 7885eebd..473c06a7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mapper/product/TbProductGroupMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mapper/product/TbProductGroupMapper.java @@ -21,8 +21,14 @@ import cn.ysk.cashier.dto.product.TbProductGroupDto; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; import org.mapstruct.ReportingPolicy; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + /** * @website https://eladmin.vip * @author lyf @@ -31,4 +37,29 @@ import org.mapstruct.ReportingPolicy; @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) public interface TbProductGroupMapper extends BaseMapper { + @Mapping(target = "productIds", source = "productIds") + TbProductGroupDto toDto(TbProductGroup entity); + + // 自定义的字符串到整数列表的转换方法 + default List map(String value) { + if (value == null || value.isEmpty()) { + return Collections.emptyList(); + } + // 分割字符串,然后将每个数字字符串转换为Integer,收集到List中 + return Arrays.stream(value.split(",")) + .map(Integer::valueOf) + .collect(Collectors.toList()); + } + + // 如果需要从DTO转回实体,也可能需要实现反向的映射方法 + default String map(List values) { + if (values == null || values.isEmpty()) { + return ""; + } + // 将整数列表转换为由逗号分隔的字符串 + return values.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + } + } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java index d82a8522..032ec886 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java @@ -34,6 +34,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.util.CollectionUtils; import java.time.Instant; import java.util.List; @@ -77,16 +78,9 @@ public class TbProductGroupServiceImpl implements TbProductGroupService { @Override public List findByIdProduct(Integer productGroup) { TbProductGroup tbProductGroup = tbProductGroupRepository.findById(productGroup).orElseGet(TbProductGroup::new); - if (tbProductGroup.getProductIds() != null){ - List list = ListUtil.stringChangeStringList(tbProductGroup.getProductIds()); - - List intList = new ArrayList<>(); - for (String str : list) { - intList.add(Integer.parseInt(str)); - } - System.out.println(intList); - - return tbProductRepository.findByIds(ListUtil.stringChangeIntegerList(list)); + TbProductGroupDto dto = tbProductGroupMapper.toDto(tbProductGroup); + if (!CollectionUtils.isEmpty(dto.getProductIds())){ + return tbProductRepository.findByIds(ListUtil.stringChangeIntegerList(dto.getProductIds())); } return new ArrayList<>(); }