Procházet zdrojové kódy

fix(policy): 优化价格计算逻辑,统一使用综合销售费

- 将常规价格计算从电费、服务费、运营费和增值费用的累加改为使用综合销售费
- 将企业价格计算方式同步为仅使用综合销售费
- 更新相关SQL查询,移除冗余的分项费用计算
- 修正注释,明确当前价和平台价均表示综合销售费
- 简化价格查询逻辑,提高查询效率和代码可维护性
SheepHy před 1 týdnem
rodič
revize
143e7f3d1c

+ 8 - 28
src/main/resources/mapper/business/ThirdPartyStationInfoMapper.xml

@@ -219,14 +219,10 @@
                     AND tppi.period_flag = 2
                 LIMIT 1
             ) AS peak_time,
-            <!-- 平台价(电费+服务费+运营费+综合销售费) -->
+            <!-- 平台价(综合销售费) -->
             (
                 SELECT
-                    ROUND(
-                        IFNULL(tppi.elec_price, 0) + IFNULL(tppi.service_price, 0)
-                        + IFNULL(pf.op_fee, 0) + IFNULL(pf.comp_sales_fee, 0),
-                        4
-                    )
+                    ROUND(IFNULL(pf.comp_sales_fee, 0), 4)
                 FROM c_policy_fee pf
                 INNER JOIN third_party_policy_info tppi ON pf.period_flag = tppi.period_flag
                 INNER JOIN third_party_equipment_price_policy tpepp ON tppi.price_policy_id = tpepp.id AND tpepp.is_deleted = 0
@@ -244,11 +240,7 @@
             <if test="firmId != null">
             (
                 SELECT
-                    ROUND(
-                        IFNULL(tppi.elec_price, 0) + IFNULL(tppi.service_price, 0)
-                        + IFNULL(pf.op_fee, 0) + IFNULL(pf.comp_sales_fee, 0),
-                        4
-                    )
+                    ROUND(IFNULL(pf.comp_sales_fee, 0), 4)
                 FROM c_policy_fee pf
                 INNER JOIN third_party_policy_info tppi ON pf.period_flag = tppi.period_flag
                 INNER JOIN third_party_equipment_price_policy tpepp ON tppi.price_policy_id = tpepp.id AND tpepp.is_deleted = 0
@@ -381,14 +373,10 @@
                     AND tppi.period_flag = 2
                 LIMIT 1
             ) AS peak_time,
-            <!-- 平台价(电费+服务费+运营费+综合销售费) -->
+            <!-- 平台价(综合销售费) -->
             (
                 SELECT
-                    ROUND(
-                        IFNULL(tppi.elec_price, 0) + IFNULL(tppi.service_price, 0)
-                        + IFNULL(pf.op_fee, 0) + IFNULL(pf.comp_sales_fee, 0),
-                        4
-                    )
+                    ROUND(IFNULL(pf.comp_sales_fee, 0), 4)
                 FROM c_policy_fee pf
                 INNER JOIN third_party_policy_info tppi ON pf.period_flag = tppi.period_flag
                 INNER JOIN third_party_equipment_price_policy tpepp ON tppi.price_policy_id = tpepp.id AND tpepp.is_deleted = 0
@@ -462,14 +450,10 @@
             <if test="longitude == null or latitude == null">
                 NULL AS distance,
             </if>
-            <!-- 当前价(电费+服务费+运营费+综合销售费) -->
+            <!-- 当前价(综合销售费) -->
             (
                 SELECT
-                    ROUND(
-                        IFNULL(tppi.elec_price, 0) + IFNULL(tppi.service_price, 0)
-                        + IFNULL(pf.op_fee, 0) + IFNULL(pf.comp_sales_fee, 0),
-                        4
-                    )
+                    ROUND(IFNULL(pf.comp_sales_fee, 0), 4)
                 FROM c_policy_fee pf
                 INNER JOIN third_party_policy_info tppi ON pf.period_flag = tppi.period_flag
                 INNER JOIN third_party_equipment_price_policy tpepp ON tppi.price_policy_id = tpepp.id AND tpepp.is_deleted = 0
@@ -535,11 +519,7 @@
             <if test="firmId != null">
             (
                 SELECT
-                    ROUND(
-                        IFNULL(tppi.elec_price, 0) + IFNULL(tppi.service_price, 0)
-                        + IFNULL(pf.op_fee, 0) + IFNULL(pf.comp_sales_fee, 0),
-                        4
-                    )
+                    ROUND(IFNULL(pf.comp_sales_fee, 0), 4)
                 FROM c_policy_fee pf
                 INNER JOIN third_party_policy_info tppi ON pf.period_flag = tppi.period_flag
                 INNER JOIN third_party_equipment_price_policy tpepp ON tppi.price_policy_id = tpepp.id AND tpepp.is_deleted = 0

+ 4 - 42
src/main/resources/mapper/charging/ThirdPartyConnectorInfoMapper.xml

@@ -96,49 +96,11 @@
             tpsi.address AS station_address,
             tpsi.station_tips AS parking_tips,
             
-            -- 常规价格(电价 + 服务费 + 常规运营费 + 增值费用)
-            ROUND(
-                IFNULL(tppi.elec_price, 0) + IFNULL(tppi.service_price, 0) + 
-                IFNULL(pf_common.op_fee, 0) + 
-                IFNULL(
-                    (SELECT CAST(di.value AS DECIMAL(10,4))
-                     FROM sys_dict_item di
-                     WHERE di.dict_code = 'time_period_flag'
-                       AND di.status = 1
-                       AND di.label = CASE tppi.period_flag
-                           WHEN 1 THEN '尖'
-                           WHEN 2 THEN '峰'
-                           WHEN 3 THEN '平'
-                           WHEN 4 THEN '谷'
-                           ELSE ''
-                       END
-                     LIMIT 1),
-                    0
-                ),
-                4
-            ) AS current_price,
+            -- 常规价格(综合销售费)
+            ROUND(IFNULL(pf_common.comp_sales_fee, 0), 4) AS current_price,
             
-            -- 企业价格(电价 + 服务费 + 企业运营费 + 增值费用)
-            ROUND(
-                IFNULL(tppi.elec_price, 0) + IFNULL(tppi.service_price, 0) + 
-                IFNULL(pf.op_fee, 0) + 
-                IFNULL(
-                    (SELECT CAST(di.value AS DECIMAL(10,4))
-                     FROM sys_dict_item di
-                     WHERE di.dict_code = 'time_period_flag'
-                       AND di.status = 1
-                       AND di.label = CASE tppi.period_flag
-                           WHEN 1 THEN '尖'
-                           WHEN 2 THEN '峰'
-                           WHEN 3 THEN '平'
-                           WHEN 4 THEN '谷'
-                           ELSE ''
-                       END
-                     LIMIT 1),
-                    0
-                ),
-                4
-            ) AS enterprise_price,
+            -- 企业价格(综合销售费)
+            ROUND(IFNULL(pf.comp_sales_fee, 0), 4) AS enterprise_price,
             
             -- 是否企业用户(如果查询到企业价格则为true)
             CASE WHEN pf.id IS NOT NULL THEN 1 ELSE 0 END AS is_firm_user,