一、功能概述
针对川味冻品行业特点,开发批量价格调整功能,帮助企业高效管理冻品价格体系,应对市场波动、促销活动或成本变化等场景。
二、核心需求分析
1. 批量调整能力:支持按品类、品牌、规格、库存量等维度批量调整价格
2. 灵活调整策略:支持百分比调整、固定金额调整、阶梯定价等
3. 价格规则管理:可设置最低/最高限价、价格有效期等
4. 数据安全:确保价格调整记录可追溯,防止误操作
5. 川味特色支持:考虑川味冻品特有的调味品、半成品等分类需求
三、系统架构设计
1. 数据库设计
```sql
-- 价格调整记录表
CREATE TABLE price_adjustment_records (
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 调整值,
start_time DATETIME NOT NULL COMMENT 生效时间,
end_time DATETIME COMMENT 失效时间,
operator_id BIGINT NOT NULL COMMENT 操作人ID,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
status TINYINT NOT NULL DEFAULT 1 COMMENT 1-有效 0-无效
);
-- 价格调整明细表
CREATE TABLE price_adjustment_details (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
record_id BIGINT NOT NULL COMMENT 关联调整记录ID,
product_id BIGINT NOT NULL COMMENT 产品ID,
original_price DECIMAL(10,2) NOT NULL COMMENT 原价格,
adjusted_price DECIMAL(10,2) NOT NULL COMMENT 调整后价格,
adjustment_reason VARCHAR(255) COMMENT 调整原因,
FOREIGN KEY (record_id) REFERENCES price_adjustment_records(id)
);
```
2. 后端服务设计
```java
// 价格调整服务接口
public interface PriceAdjustmentService {
/
* 创建批量价格调整任务
* @param request 调整请求
* @return 调整记录ID
*/
Long createBatchAdjustment(PriceAdjustmentRequest request);
/
* 执行价格调整
* @param recordId 调整记录ID
* @return 执行结果
*/
AdjustmentResult executeAdjustment(Long recordId);
/
* 预览价格调整效果
* @param recordId 调整记录ID
* @return 预览结果
*/
List
previewAdjustment(Long recordId);
/
* 查询价格调整历史
* @param query 查询条件
* @return 历史记录
*/
PageResult queryAdjustmentHistory(AdjustmentHistoryQuery query);
}
```
3. 前端界面设计
1. 价格调整任务创建页面:
- 调整名称输入
- 调整类型选择(百分比/固定金额/阶梯定价)
- 调整值输入
- 生效时间设置
- 产品筛选条件(品类、品牌、库存范围等)
- 预览按钮
- 确认提交按钮
2. 价格调整历史页面:
- 调整记录列表
- 操作状态显示
- 调整详情查看
- 撤销/回滚功能
四、关键功能实现
1. 批量价格计算逻辑
```python
def calculate_adjusted_prices(products, adjustment_type, adjustment_value):
adjusted_products = []
for product in products:
original_price = product[price]
if adjustment_type == percentage:
百分比调整
adjusted_price = original_price * (1 + adjustment_value / 100)
elif adjustment_type == fixed:
固定金额调整
adjusted_price = original_price + adjustment_value
elif adjustment_type == tiered:
阶梯定价(示例:根据库存量调整)
if product[stock] > 100:
adjusted_price = original_price * 0.9 库存多打9折
else:
adjusted_price = original_price * 0.95 库存少打95折
确保不低于成本价(假设成本价为原价的70%)
min_price = original_price * 0.7
adjusted_price = max(adjusted_price, min_price)
adjusted_products.append({
product_id: product[id],
original_price: original_price,
adjusted_price: round(adjusted_price, 2)
})
return adjusted_products
```
2. 价格调整事务处理
```java
@Transactional
public AdjustmentResult executeAdjustment(Long recordId) {
// 1. 获取调整记录
PriceAdjustmentRecord record = priceAdjustmentRecordRepository.findById(recordId)
.orElseThrow(() -> new RuntimeException("调整记录不存在"));
// 2. 获取调整明细(预计算)
List details = priceAdjustmentDetailRepository
.findByRecordId(recordId);
// 3. 更新产品价格(实际业务中可能需要调用产品服务)
for (PriceAdjustmentDetail detail : details) {
// 这里简化处理,实际可能需要调用产品服务API
productService.updatePrice(detail.getProductId(), detail.getAdjustedPrice());
}
// 4. 更新调整记录状态为已完成
record.setStatus(AdjustmentStatus.COMPLETED);
priceAdjustmentRecordRepository.save(record);
return new AdjustmentResult(true, "价格调整成功", details.size());
}
```
五、川味特色功能增强
1. 口味分类价格管理:
- 支持按麻辣、微辣、不辣等口味维度设置不同价格策略
- 针对川味特色调味品设置组合优惠
2. 节日促销支持:
- 预设春节、火锅季等川味消费高峰期的价格模板
- 支持批量设置节日特惠价
3. 区域价格差异:
- 针对川味产品在川渝地区与其他地区的定价差异
- 支持按地理位置设置不同价格
六、测试与部署
1. 测试用例:
- 正常批量调整测试
- 边界值测试(最大/最小调整值)
- 并发调整测试
- 回滚功能测试
2. 部署方案:
- 灰度发布策略,先在小范围产品上测试
- 回滚机制,确保出现问题时可快速恢复
- 监控报警,实时监控价格调整执行情况
七、运维与优化
1. 性能优化:
- 大批量调整时分批处理
- 异步执行价格调整任务
- 缓存常用产品价格数据
2. 数据分析:
- 价格调整效果分析
- 价格弹性分析
- 促销活动ROI分析
通过以上方案,可以实现一个高效、灵活且符合川味冻品行业特点的批量价格调整系统,帮助企业更好地应对市场变化和竞争挑战。