一、需求分析 针对川味冻品行业特点,批量价格调整功能需要满足以下核心需求: 1.支持按品类(如火锅食材、川味调料、速冻小吃等)批量调整 2.支持按规格、包装类型进行差异化调价 3.支持按供应商或品牌进行批量操作 4.支持按季节性或促销活动进行批量价格更新 5.保留价格调整历史
一、需求分析
针对川味冻品行业特点,批量价格调整功能需要满足以下核心需求:
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-按规格,
effective_date DATE NOT NULL COMMENT 生效日期,
status TINYINT DEFAULT 0 COMMENT 0-草稿 1-已提交 2-已生效 3-已拒绝,
creator_id BIGINT NOT NULL,
create_time DATETIME NOT NULL,
approver_id BIGINT,
approve_time DATETIME,
remark VARCHAR(500)
);
-- 调价明细表
CREATE TABLE price_adjustment_detail (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
adjustment_id BIGINT NOT NULL,
product_id BIGINT NOT NULL,
original_price DECIMAL(10,2) NOT NULL,
adjusted_price DECIMAL(10,2) NOT NULL,
adjustment_rate DECIMAL(5,2) COMMENT 调整百分比,
adjustment_type TINYINT COMMENT 1-上调 2-下调 3-固定价格,
FOREIGN KEY (adjustment_id) REFERENCES price_adjustment(id)
);
```
2. 核心功能模块
1. 调价策略配置模块
- 支持多种调价规则配置
- 可设置生效时间和失效时间
- 支持阶梯式调价(如满一定数量不同价格)
2. 批量操作模块
- Excel模板导入导出
- 多选商品批量调价
- 条件筛选批量调价(如按价格区间、库存量等)
3. 审批流程模块
- 多级审批设置
- 审批意见记录
- 审批通过后自动生效
4. 历史记录模块
- 完整价格变更历史
- 价格对比分析
- 调价效果评估
三、关键功能实现代码示例
1. 批量调价接口实现(Spring Boot示例)
```java
@RestController
@RequestMapping("/api/price")
public class PriceAdjustmentController {
@Autowired
private PriceAdjustmentService priceAdjustmentService;
@PostMapping("/batch-adjust")
public ResponseEntity<?> batchAdjustPrice(
@RequestBody BatchPriceAdjustRequest request,
@RequestHeader("Authorization") String token) {
// 权限验证
Long userId = JwtUtil.getUserId(token);
if (!authService.hasPermission(userId, "PRICE_ADJUST")) {
return ResponseEntity.status(403).body("无权限操作");
}
// 业务验证
if (request.getAdjustmentItems().isEmpty()) {
return ResponseEntity.badRequest().body("调价商品不能为空");
}
// 执行调价
PriceAdjustmentResult result = priceAdjustmentService.batchAdjust(request, userId);
return ResponseEntity.ok(result);
}
}
@Data
class BatchPriceAdjustRequest {
private String adjustmentName;
private Date effectiveDate;
private List
adjustmentItems;
private Integer adjustmentType; // 1-按比例 2-按固定金额
private BigDecimal adjustmentValue;
}
@Data
class PriceAdjustItem {
private Long productId;
private String productCode;
private String productName;
}
```
2. 价格计算服务实现
```java
@Service
public class PriceCalculationService {
@Autowired
private ProductRepository productRepository;
public List calculateAdjustedPrices(
List productIds,
Integer adjustmentType,
BigDecimal adjustmentValue) {
List products = productRepository.findByIdIn(productIds);
return products.stream().map(product -> {
PriceAdjustResultItem item = new PriceAdjustResultItem();
item.setProductId(product.getId());
item.setProductName(product.getName());
item.setCurrentPrice(product.getPrice());
switch (adjustmentType) {
case 1: // 按比例
BigDecimal newPrice = product.getPrice()
.multiply(BigDecimal.ONE.add(adjustmentValue.divide(new BigDecimal(100))));
item.setAdjustedPrice(newPrice);
break;
case 2: // 固定金额
item.setAdjustedPrice(product.getPrice().add(adjustmentValue));
break;
default:
throw new IllegalArgumentException("不支持的调价类型");
}
return item;
}).collect(Collectors.toList());
}
}
```
四、川味冻品行业特殊考虑
1. 季节性价格调整:针对火锅食材等季节性产品,系统应支持预设季节性价格模板
2. 组合套餐价格:支持对川味冻品组合套餐进行整体调价
3. 区域价格差异:考虑不同地区(如川渝地区与其他地区)的价格差异调整
4. 保质期影响:对临近保质期的冻品自动触发折扣调价策略
5. 促销活动集成:与满减、买赠等促销活动价格计算逻辑集成
五、实施建议
1. 分阶段实施:
- 第一阶段:实现基础批量调价功能
- 第二阶段:增加审批流程和历史记录
- 第三阶段:集成行业特殊需求
2. 数据迁移:
- 确保现有价格数据准确迁移
- 建立价格数据校验机制
3. 用户培训:
- 制作川味冻品行业专属操作手册
- 提供典型调价场景案例培训
4. 性能优化:
- 对批量操作进行异步处理
- 实现调价预览功能,减少误操作
5. 安全考虑:
- 价格调整操作日志全记录
- 关键操作二次验证
六、扩展功能建议
1. 智能调价建议:基于历史销售数据和成本变化,提供智能调价建议
2. 竞争对手价格监控:集成第三方数据,提供市场价格对比
3. 价格弹性分析:分析价格变动对销量的影响
4. 移动端支持:方便采购人员现场调价
5. API接口:与ERP、POS等系统对接
通过以上方案,可以构建一个符合川味冻品行业特点的批量价格调整系统,提高价格管理效率,降低人工操作错误,同时满足行业特殊需求。