一、需求分析
针对川味冻品行业特点,批量价格调整功能需要满足以下核心需求:
1. 支持按品类(如火锅食材、川味调料、速冻川菜等)批量调整
2. 支持按供应商/品牌批量调整
3. 支持按季节性或促销活动批量调整
4. 支持价格调整历史记录与回滚
5. 支持不同规格产品的差异化调整
二、系统架构设计
1. 数据库设计
```sql
-- 价格调整主表
CREATE TABLE price_adjustment (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
adjustment_name VARCHAR(100) NOT NULL COMMENT 调整名称,
adjustment_type TINYINT NOT NULL COMMENT 1-品类 2-供应商 3-促销 4-季节,
start_time DATETIME NOT NULL COMMENT 生效时间,
end_time DATETIME COMMENT 失效时间,
status TINYINT DEFAULT 0 COMMENT 0-未生效 1-已生效 2-已过期,
create_by VARCHAR(50) NOT NULL COMMENT 创建人,
create_time DATETIME NOT NULL COMMENT 创建时间,
remark VARCHAR(500) COMMENT 备注
);
-- 价格调整明细表
CREATE TABLE price_adjustment_detail (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
adjustment_id BIGINT NOT NULL COMMENT 关联主表ID,
product_id BIGINT NOT NULL COMMENT 产品ID,
sku_id BIGINT COMMENT SKU ID,
original_price DECIMAL(10,2) NOT NULL COMMENT 原价格,
adjusted_price DECIMAL(10,2) NOT NULL COMMENT 调整后价格,
adjustment_rate DECIMAL(5,2) COMMENT 调整比例(%),
adjustment_amount DECIMAL(10,2) COMMENT 调整金额,
FOREIGN KEY (adjustment_id) REFERENCES price_adjustment(id)
);
```
2. 核心功能模块
1. 批量选择模块
- 支持多选品类、供应商、品牌等维度
- 支持按条件筛选(如库存量、上次调价时间等)
- 支持Excel导入批量选择
2. 价格调整计算模块
```java
public class PriceAdjustmentCalculator {
// 按比例调整
public BigDecimal calculateByRate(BigDecimal originalPrice, BigDecimal rate) {
return originalPrice.multiply(BigDecimal.ONE.add(rate.divide(new BigDecimal(100))));
}
// 按固定金额调整
public BigDecimal calculateByAmount(BigDecimal originalPrice, BigDecimal amount) {
return originalPrice.add(amount);
}
// 四舍五入处理
public BigDecimal roundPrice(BigDecimal price, int scale) {
return price.setScale(scale, RoundingMode.HALF_UP);
}
}
```
3. 价格调整执行模块
```java
@Transactional
public boolean executePriceAdjustment(Long adjustmentId) {
// 1. 验证调整是否有效
PriceAdjustment adjustment = priceAdjustmentMapper.selectById(adjustmentId);
if (adjustment == null || adjustment.getStatus() != 0) {
return false;
}
// 2. 获取调整明细
List
details = priceAdjustmentDetailMapper.selectByAdjustmentId(adjustmentId);
// 3. 批量更新产品价格
for (PriceAdjustmentDetail detail : details) {
productMapper.updatePrice(
detail.getProductId(),
detail.getSkuId(),
detail.getAdjustedPrice()
);
}
// 4. 更新调整状态
adjustment.setStatus(1); // 已生效
priceAdjustmentMapper.updateById(adjustment);
return true;
}
```
三、川味冻品行业特色实现
1. 季节性价格调整
- 针对川味火锅食材,可设置冬季价格上调规则
- 针对夏季凉菜类冻品,可设置促销价
2. 区域性价格差异
- 支持按销售区域(如川渝地区与其他地区)设置不同调整策略
3. 组合产品价格调整
- 针对川味套餐类产品,支持按组合比例调整
四、用户界面设计
1. 批量调价入口
- 在产品管理菜单下设置"批量价格调整"子菜单
- 提供快捷入口:如"节日促销调价"、"季节性调价"等
2. 调价操作界面
- 步骤1:选择调价类型(品类/供应商/促销等)
- 步骤2:筛选调价产品(支持多条件组合筛选)
- 步骤3:设置调价规则(比例/金额/新价格)
- 步骤4:预览调价结果
- 步骤5:确认执行
3. 调价历史查询
- 按时间范围查询历史调价记录
- 查看每次调价的详细明细
- 支持调价结果回滚
五、安全与权限控制
1. 操作权限
- 只有价格管理员角色可执行批量调价
- 调价操作需二次确认
2. 数据安全
- 调价前自动备份原价格数据
- 调价操作记录完整审计日志
3. 并发控制
- 同一时间只允许一个调价操作执行
- 调价期间锁定相关产品价格
六、测试与上线
1. 测试用例
- 单品类调价测试
- 多品类混合调价测试
- 边界值测试(如0元产品、极大值产品)
- 并发调价测试
2. 上线计划
- 先在测试环境验证
- 选择非高峰时段上线
- 准备回滚方案
七、扩展功能建议
1. 智能调价建议
- 根据历史销售数据提供调价建议
- 根据竞争对手价格提供调价参考
2. 自动化调价规则
- 设置基于成本变动的自动调价规则
- 设置基于库存水平的自动调价规则
3. 多渠道价格同步
- 确保线上线下的价格同步调整
- 支持不同渠道的差异化调价策略
通过以上方案,可实现川味冻品系统高效、安全的批量价格调整功能,满足行业特有的调价需求。