一、需求分析
针对川味冻品行业特点,批量价格调整功能需要满足以下核心需求:
1. 支持按品类(如火锅食材、调味料、预制菜等)批量调整
2. 支持按供应商、品牌或规格维度批量修改
3. 支持按折扣率、固定金额或公式计算等方式调整
4. 保留价格调整历史记录可追溯
5. 支持价格调整预览和确认机制
二、系统架构设计
1. 数据库设计
```sql
-- 价格调整记录表
CREATE TABLE price_adjustment_log (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
adjustment_name VARCHAR(100) NOT NULL COMMENT 调整批次名称,
adjustment_type TINYINT NOT NULL COMMENT 1-折扣率 2-固定金额 3-公式计算,
adjustment_value DECIMAL(10,2) NOT NULL COMMENT 调整值,
apply_scope VARCHAR(255) COMMENT 应用范围(JSON格式存储筛选条件),
operator_id BIGINT NOT NULL COMMENT 操作人ID,
operator_name VARCHAR(50) NOT NULL COMMENT 操作人姓名,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
status TINYINT NOT NULL DEFAULT 0 COMMENT 0-未执行 1-已执行 2-已撤销,
remark VARCHAR(500) COMMENT 备注
);
-- 价格调整明细表
CREATE TABLE price_adjustment_detail (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
log_id BIGINT NOT NULL COMMENT 关联调整记录ID,
product_id BIGINT NOT NULL COMMENT 商品ID,
product_code VARCHAR(50) NOT NULL COMMENT 商品编码,
product_name VARCHAR(100) NOT NULL COMMENT 商品名称,
original_price DECIMAL(10,2) NOT NULL COMMENT 原价格,
adjusted_price DECIMAL(10,2) NOT NULL COMMENT 调整后价格,
adjustment_amount DECIMAL(10,2) NOT NULL COMMENT 调整金额,
INDEX idx_log_id (log_id)
);
```
2. 核心功能模块
1. 筛选条件构建模块
- 支持多维度组合筛选(品类、品牌、供应商、库存状态等)
- 提供川味特色品类快速选择(如火锅底料、川味腊肠等)
2. 价格调整计算引擎
```java
public class PriceAdjustmentEngine {
public BigDecimal calculateNewPrice(BigDecimal originalPrice,
AdjustmentType type,
BigDecimal value) {
switch(type) {
case DISCOUNT_RATE:
return originalPrice.multiply(value.divide(new BigDecimal(100)));
case FIXED_AMOUNT:
return originalPrice.add(value);
case FORMULA_BASED:
// 实现复杂公式计算
return applyFormula(originalPrice, value);
default:
return originalPrice;
}
}
}
```
3. 批量处理服务
- 采用异步任务处理大批量数据
- 支持分批提交避免数据库锁表
- 提供进度反馈机制
三、关键实现技术
1. 前端实现
- 使用Ant Design Vue或Element UI构建筛选条件表单
- 实现商品列表的批量选择和反选功能
- 提供价格调整预览弹窗
2. 后端实现
- Spring Boot + MyBatis框架
- 使用@Transactional保证数据一致性
- 实现幂等性处理防止重复提交
3. 批量处理优化
```java
@Service
public class BatchPriceAdjustmentService {
@Async
public CompletableFuture
executeAdjustment(
AdjustmentRequest request) {
// 1. 查询符合条件的商品
List products = productMapper.selectByConditions(request.getConditions());
// 2. 分批处理(每批100条)
List> batches = Lists.partition(products, 100);
// 3. 异步处理每批
List> futures = batches.stream()
.map(batch -> CompletableFuture.supplyAsync(() -> {
// 处理单批数据
return processBatch(batch, request);
}, taskExecutor))
.collect(Collectors.toList());
// 4. 汇总结果
return CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]))
.thenApply(v -> {
// 合并所有批次结果
return mergeResults(futures);
});
}
}
```
四、川味行业特色功能
1. 季节性价格调整
- 预设春节、端午节等节日价格模板
- 针对火锅食材的冬季涨价策略
2. 区域价格差异
- 支持按销售区域(如川渝地区/其他地区)设置不同调整策略
- 考虑物流成本的地域差异
3. 组合商品价格联动
- 当主商品价格调整时,自动调整关联套餐价格
- 例如火锅套餐中底料价格变动时自动重算套餐价
五、实施步骤
1. 需求确认阶段(1周)
- 与业务部门确认价格调整规则
- 确定川味特色品类的特殊处理需求
2. 系统开发阶段(3-4周)
- 数据库表结构设计
- 核心算法实现
- 前后端接口开发
3. 测试验证阶段(1-2周)
- 单元测试、集成测试
- 用户验收测试(UAT)
- 性能测试(模拟10万+商品调整)
4. 上线部署阶段(1周)
- 灰度发布策略
- 回滚方案准备
- 操作培训文档准备
六、安全与审计
1. 操作日志全程记录
2. 关键操作二次确认机制
3. 价格调整权限分级控制
4. 调整前后价格对比报告自动生成
该方案可根据实际业务规模和技术栈进行调整,建议先实现基础批量调整功能,再逐步迭代增加川味行业特色功能。