Sfoglia il codice sorgente

fix(cfc-backend): add deliveryMethod/rejectReason/categoryId/distributionSystemId mappings - ProductEdit field alignment

- Product.java: add deliveryMethod field + getter
- ProductDTO.java: add deliveryMethod, rejectReason fields + from() mapping
- DatabaseInitializer: migration 32 - ensureColumn for delivery_method, category_id, distribution_system_id
- schema.sql: add 3 columns to products table DDL
Xiaogang Liao 2 mesi fa
parent
commit
3079ffe49c

+ 5 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -3885,6 +3885,11 @@ try {
             log.warn("创建dan_knowledge_base_tag表可能已存在: {}", e.getMessage());
         }
 
+        // 迁移32: products表添加配送/类目/分销字段(商品编辑表单对齐)
+        ensureColumn("products", "delivery_method", "TINYINT DEFAULT 1 COMMENT '配送方式: 1=快递 2=自提 3=两者皆可'");
+        ensureColumn("products", "category_id", "BIGINT COMMENT '商品类目ID'");
+        ensureColumn("products", "distribution_system_id", "BIGINT COMMENT '分销体系ID'");
+
         // 迁移: growth_records表添加来源类型/去重/补充字段
         try {
             jdbcTemplate.execute("ALTER TABLE growth_records ADD COLUMN source_type VARCHAR(20) DEFAULT 'manual' COMMENT '来源类型: manual/platform_purchase/self_upload/supplement'");

+ 4 - 0
cfc-backend/src/main/java/com/etotem/cfc/dto/ProductDTO.java

@@ -26,6 +26,8 @@ public class ProductDTO {
     private String status;
     private String domain;
     private String memberEligible;
+    private String rejectReason;
+    private Integer deliveryMethod;        // 配送方式: 1=快递 2=自提 3=两者皆可
     private List<String> imageList;
     private Long energyDimensionId;
     private String priceLabel;     // 游客 = "登录查看价格",登录后 = null
@@ -67,6 +69,8 @@ public class ProductDTO {
         d.status = p.getStatus();
         d.domain = p.getDomain();
         d.memberEligible = p.getMemberEligible();
+        d.rejectReason = p.getRejectReason();
+        d.deliveryMethod = p.getDeliveryMethod();
         d.createdAt = p.getCreatedAt();
         d.updatedAt = p.getUpdatedAt();
         // 游客模式:价格置null,显示提示标签

+ 4 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/Product.java

@@ -42,6 +42,8 @@ public class Product implements Serializable {
     private Long categoryId;               // 商品类目ID
     private Long distributionSystemId;     // 分销体系ID
 
+    private Integer deliveryMethod;        // 配送方式: 1=快递 2=自提 3=两者皆可
+
     private Date createdAt;
     private Date updatedAt;
 
@@ -62,6 +64,8 @@ public class Product implements Serializable {
     public String getImages() { return images; }
     public Integer getMemberPrice() { return memberPrice; }
     public Integer getSalesCount() { return salesCount; }
+    public String getRejectReason() { return rejectReason; }
+    public Integer getDeliveryMethod() { return deliveryMethod; }
     public Date getCreatedAt() { return createdAt; }
     public Date getUpdatedAt() { return updatedAt; }
 }

+ 3 - 0
cfc-backend/src/main/resources/schema.sql

@@ -1012,6 +1012,9 @@ CREATE TABLE IF NOT EXISTS products (
     member_eligible VARCHAR(32) DEFAULT 'none' COMMENT '会员资格: all/budget/none',
     domain VARCHAR(32) COMMENT '五维领域: action/mind/body/wisdom/wealth',
     profit_rate INT DEFAULT 0 COMMENT '平台利润率(千分比)',
+    delivery_method TINYINT DEFAULT 1 COMMENT '配送方式: 1=快递 2=自提 3=两者皆可',
+    category_id BIGINT COMMENT '商品类目ID',
+    distribution_system_id BIGINT COMMENT '分销体系ID',
     external_source VARCHAR(64) COMMENT '外部来源系统',
     external_id VARCHAR(128) COMMENT '外部来源ID',
     external_data TEXT COMMENT '外部来源数据JSON',