添加商品关联推荐

This commit is contained in:
gong
2025-12-24 15:23:02 +08:00
parent 506e74747a
commit a6dd4f4611
12 changed files with 164 additions and 25 deletions

View File

@@ -1,12 +1,15 @@
package com.czg.product.dto;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.annotation.JSONField;
import com.czg.product.vo.ProductGroupVo;
import com.czg.validator.group.DefaultGroup;
import com.czg.validator.group.InsertGroup;
import com.czg.validator.group.UpdateGroup;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.*;
import lombok.Data;
@@ -235,6 +238,12 @@ public class ProductDTO implements Serializable {
* 是否可售时间 1-是 0-否
*/
private Integer isSaleTime;
/**
* 相关推荐商品
*/
private List<RelatedProductDTO> relatedRecommendJson;
@JsonIgnore
private String relatedRecommend;
public Object getImages() {
return JSON.parseArray(Convert.toStr(images, "[]"));
@@ -250,4 +259,16 @@ public class ProductDTO implements Serializable {
public Object getGroupSnap() {
return JSON.parseArray(Convert.toStr(groupSnap, "[]"));
}
public String getRelatedRecommendStr() {
if (CollUtil.isNotEmpty(relatedRecommendJson)) {
JSONArray array = new JSONArray();
for (RelatedProductDTO relatedProductDTO : relatedRecommendJson) {
array.add(relatedProductDTO.getId());
}
return array.toJSONString();
}
return "[]";
}
}

View File

@@ -0,0 +1,31 @@
package com.czg.product.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 相关推荐 商品 DTO
*
* @author yjjie
* @date 2025/12/24 13:34
*/
@Data
public class RelatedProductDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 商品 ID
*/
private Long id;
/**
* 商品名称
*/
private String name;
/**
* 商品图片
*/
private String coverImg;
}

View File

@@ -142,6 +142,10 @@ public class Product implements Serializable {
* 退款是否退回库存
*/
private Integer isRefundStock;
/**
* 相关推荐
*/
private String relatedRecommend;
/**
* 创建时间
*/

View File

@@ -1,6 +1,7 @@
package com.czg.product.service;
import com.czg.product.dto.ProductDTO;
import com.czg.product.dto.RelatedProductDTO;
import com.czg.product.entity.Product;
import com.czg.product.entity.ProductStockFlow;
import com.czg.product.param.*;

View File

@@ -1,5 +1,6 @@
package com.czg.product.service;
import com.czg.product.dto.RelatedProductDTO;
import com.czg.product.entity.Product;
import com.czg.product.param.ShopProductSkuParam;
import com.czg.product.vo.ShopGroupProductVo;
@@ -95,4 +96,6 @@ public interface UProductService extends IService<Product> {
* @return 是否可售时间 1-是0-否
*/
Integer calcIsSaleTime(String days, LocalTime startTime, LocalTime endTime);
List<ShopProductVo> queryProductRelatedList(Long productId);
}