|
|
- # 价格计算系统说明
-
- ## 概述
-
- 本系统实现了基于当前地址、日期、宠物类型等因素的智能价格计算功能,所有价格计算结果均保留2位小数。
-
- ## 核心功能
-
- ### 1. 价格计算器 (PriceCalculator)
-
- 位置:`utils/priceCalculator.js`
-
- 主要功能:
- - 根据地址自动识别城市并应用相应价格倍率
- - 根据日期类型(节假日/周末/普通日)计算不同价格
- - 支持会员折扣计算
- - 支持套餐免费额度计算
- - 支持多次服务费用计算
- - 支持定制服务费用计算
-
- ### 2. 价格配置管理
-
- 位置:`pages/priceConfig.vue` (后台管理页面)
-
- 配置项包括:
- - 基础价格配置(普通/节假日/周末)
- - 会员折扣配置(新晋家长/普卡/银卡/金卡)
- - 提前熟悉费用配置
- - 多次服务费用配置
- - 宠物额外费用配置
- - 套餐免费额度配置
- - 节假日配置
- - 城市差异化配置
-
- ## 使用方法
-
- ### 1. 初始化价格计算器
-
- ```javascript
- import PriceCalculator from '@/utils/priceCalculator.js'
-
- // 使用默认配置
- const priceCalculator = new PriceCalculator()
-
- // 使用自定义配置
- const customConfig = {
- basePrice: {
- normal: 80,
- holiday: 90,
- weekend: 85
- },
- // ... 其他配置
- }
- const priceCalculator = new PriceCalculator(customConfig)
- ```
-
- ### 2. 计算订单总价
-
- ```javascript
- const orderData = {
- needPreFamiliarize: ['需要提前熟悉'],
- pets: [
- {
- petId: 1,
- serviceDate: '2024-01-15',
- name: '小白',
- petType: 'cat',
- bodyType: '小型',
- feedCount: 2,
- customServices: [
- { name: '梳毛服务', price: 20, quantity: 1 }
- ]
- }
- ]
- }
-
- const userAddress = '北京市朝阳区某某街道'
- const memberLevel = 'silver'
-
- const result = priceCalculator.calculateOrderTotal(orderData, userAddress, memberLevel)
-
- console.log('订单总价:', result.totalWithDiscount)
- console.log('城市倍率:', result.cityRate)
- console.log('会员折扣:', result.memberDiscount)
- ```
-
- ### 3. 计算单日价格
-
- ```javascript
- const pets = [/* 宠物数据 */]
- const dateString = '2024-01-15'
- const feedCount = 2
- const customServices = [/* 定制服务数据 */]
-
- const dailyPrice = priceCalculator.calculateDailyPrice(pets, dateString, feedCount, customServices)
-
- console.log('基础服务费用:', dailyPrice.baseServiceCost)
- console.log('宠物额外费用:', dailyPrice.petExtraCost)
- console.log('多次服务费用:', dailyPrice.multiServiceCost)
- console.log('定制服务费用:', dailyPrice.customServiceCost)
- console.log('免费额度:', dailyPrice.freeQuota)
- console.log('总价:', dailyPrice.totalOriginalPrice)
- ```
-
- ### 4. 获取价格明细
-
- ```javascript
- const priceDetails = priceCalculator.getPriceDetails(orderData, userAddress, memberLevel)
-
- console.log('价格明细:', priceDetails.priceDetails)
- console.log('城市倍率:', priceDetails.cityRate)
- console.log('会员等级:', priceDetails.memberLevel)
- ```
-
- ## 价格计算规则
-
- ### 1. 基础价格
- - 普通日:75元
- - 周末:80元
- - 节假日:85元
-
- ### 2. 城市价格倍率
- - 北京:1.2倍
- - 上海:1.15倍
- - 广州:1.1倍
- - 深圳:1.15倍
- - 其他城市:1.0倍
-
- ### 3. 会员折扣
- - 新晋家长:9.5折
- - 普卡会员:9折
- - 银卡会员:8.8折
- - 金卡会员:8.5折
-
- ### 4. 宠物额外费用
- - 大型犬:40元
- - 中型犬:30元
- - 小型犬:15元
- - 猫:10元
-
- ### 5. 多次服务费用
- - 一天两次:45元
- - 一天三次:130元
-
- ### 6. 套餐免费额度
- - 3只及以上猫:免费30元
- - 2只及以上小型犬:免费30元
- - 1只及以上中型犬:免费30元
- - 混合类型(1猫1小型犬):免费25元
-
- ### 7. 提前熟悉费用
- - 基础价格:40元
- - 节假日倍率:1.2倍
-
- ## 前端集成
-
- ### 1. serviceNew2.vue
- - 使用价格计算器计算订单总价
- - 在日期选择界面显示会员折扣后价格
- - 支持实时价格更新
-
- ### 2. confirmOrder.vue
- - 使用价格计算器计算最终订单价格
- - 显示详细的价格明细
- - 支持优惠券和会员折扣叠加
-
- ## 后台管理
-
- ### 1. 价格配置管理页面
- - 支持所有价格参数的配置
- - 支持节假日日期配置
- - 支持城市价格倍率配置
- - 支持免费规则配置
-
- ### 2. API接口
- - `getPriceConfig()`: 获取价格配置
- - `savePriceConfig()`: 保存价格配置
- - `updatePriceConfig()`: 更新价格配置
- - `calculateOrderPrice()`: 计算订单价格
-
- ## 注意事项
-
- 1. 所有价格计算结果均保留2位小数
- 2. 城市识别基于地址字符串匹配
- 3. 节假日配置支持后台动态管理
- 4. 会员折扣和城市倍率可以叠加使用
- 5. 套餐免费额度按规则优先级计算
-
- ## 扩展功能
-
- 1. 支持更多城市的价格倍率配置
- 2. 支持更复杂的会员等级体系
- 3. 支持季节性价格调整
- 4. 支持特殊活动价格优惠
- 5. 支持批量价格计算
|