master:档口首页编辑bizId切换为storeProdId;

pull/1121/head
liujiang 2025-12-02 20:29:11 +08:00
parent 5c8370c06b
commit ce4fb31bef
14 changed files with 61 additions and 61 deletions

View File

@ -31,8 +31,8 @@ public class StoreHomeDecorationVO {
@Data
public static class DecorationVO {
@ApiModelProperty(value = "业务类型ID如果选择不跳转 不传选择跳转店铺传storeId选择跳转商品storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "业务名称")
private String bizName;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")

View File

@ -35,8 +35,8 @@ public class StoreHomeProdResVO {
@Data
public static class DecorationVO {
@ApiModelProperty(value = "业务类型ID如果选择不跳转 不传选择跳转店铺传storeId选择跳转商品storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "业务名称")
private String bizName;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")

View File

@ -28,8 +28,8 @@ public class StoreHomeTemplateFiveResVO {
@Data
public static class SHTOTopBannerVO {
@ApiModelProperty(value = "1.不跳转 为null 2.跳转店铺 为storeId 3.跳转商品 为storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")
private Integer displayType;
@ApiModelProperty(value = "跳转链接")

View File

@ -28,8 +28,8 @@ public class StoreHomeTemplateFourResVO {
@Data
public static class SHTOTopBannerVO {
@ApiModelProperty(value = "1.不跳转 为null 2.跳转店铺 为storeId 3.跳转商品 为storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")
private Integer displayType;
@ApiModelProperty(value = "跳转链接")

View File

@ -30,8 +30,8 @@ public class StoreHomeTemplateOneResVO {
@Data
public static class SHTOTopBannerVO {
@ApiModelProperty(value = "1.不跳转 为null 2.跳转店铺 为storeId 3.跳转商品 为storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")
private Integer displayType;
@ApiModelProperty(value = "跳转链接")

View File

@ -26,8 +26,8 @@ public class StoreHomeTemplateThirdResVO {
@Data
public static class SHTOTopBannerVO {
@ApiModelProperty(value = "1.不跳转 为null 2.跳转店铺 为storeId 3.跳转商品 为storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")
private Integer displayType;
@ApiModelProperty(value = "跳转链接")

View File

@ -31,8 +31,8 @@ public class StoreHomeTemplateTwoResVO {
@Data
@ApiModel
public static class SHTOTopBannerVO {
@ApiModelProperty(value = "1.不跳转 为null 2.跳转店铺 为storeId 3.跳转商品 为storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")
private Integer displayType;
@ApiModelProperty(value = "跳转链接")

View File

@ -3390,19 +3390,19 @@ CREATE TABLE `store_factory`
DROP TABLE IF EXISTS `store_homepage`;
CREATE TABLE `store_homepage`
(
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '档口首页ID',
`store_id` bigint UNSIGNED NOT NULL COMMENT '档口ID',
`file_type` int UNSIGNED NULL DEFAULT NULL COMMENT '档口各位置类型',
`display_type` int UNSIGNED NOT NULL COMMENT '跳转类型1档口、2商品、10不跳转',
`biz_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '不跳转是null跳转店铺为storeId跳转商品是storeProdId',
`file_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '档口各位置文件ID',
`order_num` int UNSIGNED NULL DEFAULT NULL COMMENT '排序',
`version` bigint UNSIGNED NOT NULL COMMENT '版本号',
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标志0代表存在 2代表删除',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '档口首页ID',
`store_id` bigint UNSIGNED NOT NULL COMMENT '档口ID',
`file_type` int UNSIGNED NULL DEFAULT NULL COMMENT '档口各位置类型',
`display_type` int UNSIGNED NOT NULL COMMENT '跳转类型1档口、2商品、10不跳转',
`store_prod_id` bigint UNSIGNED NOT NULL COMMENT '档口商品ID',
`file_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '档口各位置文件ID',
`order_num` int UNSIGNED NULL DEFAULT NULL COMMENT '排序',
`version` bigint UNSIGNED NOT NULL COMMENT '版本号',
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标志0代表存在 2代表删除',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '档口首页' ROW_FORMAT = DYNAMIC;

View File

@ -35,9 +35,9 @@ public class StoreHomepage extends XktBaseEntity {
private Long storeId;
/**
* ID null storeId storeProdId
* ID storeProdId
*/
private Long bizId;
private Long storeProdId;
/**
* 1. 广 2. 10.

View File

@ -29,8 +29,8 @@ public class StoreHomeDecorationDTO {
@Data
@ApiModel(value = "档口首页各模块")
public static class BigBannerDTO {
@ApiModelProperty(value = "业务类型ID如果选择不跳转 不传选择跳转店铺传storeId选择跳转商品storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "业务名称")
private String bizName;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")
@ -50,8 +50,8 @@ public class StoreHomeDecorationDTO {
@Data
@ApiModel(value = "档口首页各模块")
public static class DecorationDTO {
@ApiModelProperty(value = "文件大小")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "业务名称")
private String bizName;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")

View File

@ -30,8 +30,8 @@ public class StoreHomeDecorationResDTO {
@ApiModel(value = "档口首页各模块")
@Accessors(chain = true)
public static class DecorationDTO {
@ApiModelProperty(value = "业务ID")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "业务名称")
private String bizName;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")

View File

@ -39,8 +39,8 @@ public class StoreHomeProdResDTO {
@Data
@Accessors(chain = true)
public static class DecorationVO {
@ApiModelProperty(value = "业务类型ID如果选择不跳转 不传选择跳转店铺传storeId选择跳转商品storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "业务名称")
private String bizName;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")

View File

@ -15,8 +15,8 @@ import lombok.experimental.Accessors;
@Accessors(chain = true)
public class StoreHomeTopBannerResDTO {
@ApiModelProperty(value = "1.不跳转 为null 2.跳转店铺 为storeId 3.跳转商品 为storeProdId")
private Long bizId;
@ApiModelProperty(value = "storeProdId")
private Long storeProdId;
@ApiModelProperty(value = "1.档口(推广图) 2.商品 10.不跳转")
private Integer displayType;
@ApiModelProperty(value = "跳转链接")

View File

@ -77,7 +77,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
Map<Long, SysFile> fileMap = fileList.stream().collect(Collectors.toMap(SysFile::getId, Function.identity()));
// 档口商品ID列表
List<Long> storeProdIdList = homeList.stream()
.filter(x -> Objects.equals(x.getDisplayType(), HomepageJumpType.JUMP_PRODUCT.getValue())).map(StoreHomepage::getBizId).collect(Collectors.toList());
.filter(x -> Objects.equals(x.getDisplayType(), HomepageJumpType.JUMP_PRODUCT.getValue())).map(StoreHomepage::getStoreProdId).collect(Collectors.toList());
// 所有的档口商品ID
List<StoreProduct> storeProdList = Optional.ofNullable(this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
.eq(StoreProduct::getStoreId, storeId).in(StoreProduct::getId, storeProdIdList).eq(StoreProduct::getDelFlag, Constants.UNDELETED)))
@ -96,18 +96,18 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
.setFileType(x.getFileType()).setFileUrl(fileMap.containsKey(x.getFileId()) ? fileMap.get(x.getFileId()).getFileUrl() : "");
// 跳转到商品
if (Objects.equals(x.getDisplayType(), HomepageJumpType.JUMP_PRODUCT.getValue())) {
decorationDTO.setBizName(storeProdMap.containsKey(x.getBizId()) ? storeProdMap.get(x.getBizId()).getProdArtNum() : "");
decorationDTO.setBizName(storeProdMap.containsKey(x.getStoreProdId()) ? storeProdMap.get(x.getStoreProdId()).getProdArtNum() : "");
// 跳转到档口首页
} else if (Objects.equals(x.getDisplayType(), HomepageJumpType.JUMP_STORE.getValue())) {
decorationDTO.setBizName(ObjectUtils.isEmpty(x.getBizId()) ? "" : store.getStoreName());
decorationDTO.setBizName(ObjectUtils.isEmpty(x.getStoreProdId()) ? "" : store.getStoreName());
}
return decorationDTO;
}).collect(Collectors.toList());
// 其它图部分
List<StoreHomeDecorationResDTO.DecorationDTO> decorList = homeList.stream().filter(x -> !Objects.equals(x.getFileType(), HomepageType.SLIDING_PICTURE.getValue()))
.map(x -> BeanUtil.toBean(x, StoreHomeDecorationResDTO.DecorationDTO.class)
.setBizName(storeProdMap.containsKey(x.getBizId()) ? storeProdMap.get(x.getBizId()).getProdArtNum() : null)
.setFileType(x.getFileType()).setFileUrl(mainPicMap.get(x.getBizId())))
.setBizName(storeProdMap.containsKey(x.getStoreProdId()) ? storeProdMap.get(x.getStoreProdId()).getProdArtNum() : null)
.setFileType(x.getFileType()).setFileUrl(mainPicMap.get(x.getStoreProdId())))
.collect(Collectors.toList());
return new StoreHomeDecorationResDTO() {{
setStoreId(storeId);
@ -166,11 +166,11 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
}
// 商品价格、主图、标签等
List<StoreProdPriceAndMainPicAndTagDTO> attrList = this.storeProdMapper.selectPriceAndMainPicAndTagList(recommendList.stream()
.map(StoreHomepage::getBizId).collect(Collectors.toList()));
.map(StoreHomepage::getStoreProdId).collect(Collectors.toList()));
Map<Long, StoreProdPriceAndMainPicAndTagDTO> attrMap = attrList.stream()
.collect(Collectors.toMap(StoreProdPriceAndMainPicAndTagDTO::getStoreProdId, Function.identity()));
return recommendList.stream().map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getBizId());
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getStoreProdId());
if (ObjectUtils.isEmpty(dto)) {
return null;
}
@ -200,7 +200,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
HomepageType.SLIDING_PICTURE_SMALL.getValue(), HomepageType.SEASON_NEW_PRODUCTS.getValue(),
HomepageType.STORE_RECOMMENDED.getValue(), HomepageType.SALES_RANKING.getValue()))), new ArrayList<>());
// 商品ID列表
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getBizId).collect(Collectors.toList());
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getStoreProdId).collect(Collectors.toList());
// 筛选商品最新的30条数据
List<StoreProduct> latest50ProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
@ -257,7 +257,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
HomepageType.SEASON_NEW_PRODUCTS.getValue(), HomepageType.STORE_RECOMMENDED.getValue(),
HomepageType.SALES_RANKING.getValue())));
// 商品ID列表
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getBizId).collect(Collectors.toList());
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getStoreProdId).collect(Collectors.toList());
// 筛选商品最新的50条数据
List<StoreProduct> latest50ProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
@ -298,7 +298,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
.in(StoreHomepage::getFileType, Arrays.asList(HomepageType.SLIDING_PICTURE_SMALL.getValue(),
HomepageType.STORE_RECOMMENDED.getValue(), HomepageType.SALES_RANKING.getValue())));
// 商品ID列表
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getBizId).collect(Collectors.toList());
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getStoreProdId).collect(Collectors.toList());
// 筛选商品最新的50条数据
List<StoreProduct> latest50ProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
@ -338,7 +338,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
HomepageType.SLIDING_PICTURE_SMALL.getValue(), HomepageType.SEASON_NEW_PRODUCTS.getValue(),
HomepageType.STORE_RECOMMENDED.getValue())));
// 商品ID列表
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getBizId).collect(Collectors.toList());
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getStoreProdId).collect(Collectors.toList());
// 筛选商品最新的50条数据
List<StoreProduct> latest50ProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
@ -393,7 +393,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
HomepageType.SLIDING_PICTURE_SMALL.getValue(), HomepageType.SEASON_NEW_PRODUCTS.getValue(),
HomepageType.STORE_RECOMMENDED.getValue(), HomepageType.SALES_RANKING.getValue())));
// 商品ID列表
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getBizId).collect(Collectors.toList());
List<Long> prodIdList = CollectionUtils.isEmpty(otherList) ? new ArrayList<>() : otherList.stream().map(StoreHomepage::getStoreProdId).collect(Collectors.toList());
// 筛选商品最新的50条数据
List<StoreProduct> latest50ProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
@ -524,8 +524,8 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
}).collect(Collectors.toList());
} else {
topRightRecommendList = topRightList.stream().filter(x -> attrMap.containsKey(x.getBizId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getBizId());
topRightRecommendList = topRightList.stream().filter(x -> attrMap.containsKey(x.getStoreProdId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getStoreProdId());
return BeanUtil.toBean(dto, StoreHomeTemplateItemResDTO.class)
.setDisplayType(AdDisplayType.PRODUCT.getValue()).setProdPrice(ObjectUtils.isNotEmpty(dto) ? dto.getMinPrice() : null)
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
@ -558,8 +558,8 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
}).collect(Collectors.toList());
} else {
recommendList = storeRecommendList.stream().filter(x -> attrMap.containsKey(x.getBizId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getBizId());
recommendList = storeRecommendList.stream().filter(x -> attrMap.containsKey(x.getStoreProdId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getStoreProdId());
return BeanUtil.toBean(dto, StoreHomeTemplateItemResDTO.class)
.setDisplayType(AdDisplayType.PRODUCT.getValue()).setProdPrice(ObjectUtils.isNotEmpty(dto) ? dto.getMinPrice() : null)
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
@ -593,8 +593,8 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
}).collect(Collectors.toList());
} else {
popularRecommendList = popularSaleList.stream().filter(x -> attrMap.containsKey(x.getBizId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getBizId());
popularRecommendList = popularSaleList.stream().filter(x -> attrMap.containsKey(x.getStoreProdId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getStoreProdId());
return BeanUtil.toBean(dto, StoreHomeTemplateItemResDTO.class)
.setDisplayType(AdDisplayType.PRODUCT.getValue()).setProdPrice(ObjectUtils.isNotEmpty(dto) ? dto.getMinPrice() : null)
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
@ -627,8 +627,8 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
}).collect(Collectors.toList());
} else {
seasonNewRecommendList = seasonNewProductsList.stream().filter(x -> attrMap.containsKey(x.getBizId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getBizId());
seasonNewRecommendList = seasonNewProductsList.stream().filter(x -> attrMap.containsKey(x.getStoreProdId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getStoreProdId());
return BeanUtil.toBean(dto, StoreHomeTemplateItemResDTO.class)
.setDisplayType(AdDisplayType.PRODUCT.getValue()).setProdPrice(ObjectUtils.isNotEmpty(dto) ? dto.getMinPrice() : null)
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
@ -661,8 +661,8 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService {
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);
}).collect(Collectors.toList());
} else {
saleRankRecommendList = salesRankingList.stream().filter(x -> attrMap.containsKey(x.getBizId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getBizId());
saleRankRecommendList = salesRankingList.stream().filter(x -> attrMap.containsKey(x.getStoreProdId())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getStoreProdId());
return BeanUtil.toBean(dto, StoreHomeTemplateItemResDTO.class)
.setDisplayType(AdDisplayType.PRODUCT.getValue()).setProdPrice(ObjectUtils.isNotEmpty(dto) ? dto.getMinPrice() : null)
.setTags(ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? StrUtil.split(dto.getTagStr(), ",") : null);