From 33caf2bb79bb3c561916c91ae386ec772411e2e8 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 11 五月 2026 18:21:50 +0800
Subject: [PATCH] 代码生成

---
 server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java |   62 ++++++++++++++++++++----------
 1 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java
index 189a914..da48d1e 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java
@@ -203,16 +203,16 @@
             PricingRule existing = pricingRuleMapper.selectOne(qw);
 
             if (existing != null) {
-                // 鏇存柊
-                existing.setFieldB(item.getUnitPrice());
+                // 鏇存柊锛堝厓杞垎锛�
+                existing.setFieldB(yuanToFen(item.getUnitPrice()));
                 existing.setUpdateTime(now);
                 pricingRuleMapper.updateById(existing);
             } else {
-                // 鏂板缓
+                // 鏂板缓锛堝厓杞垎锛�
                 PricingRule rule = new PricingRule();
                 rule.setType(Constants.ZERO);
                 rule.setFieldA(String.valueOf(item.getCategoryId()));
-                rule.setFieldB(item.getUnitPrice());
+                rule.setFieldB(yuanToFen(item.getUnitPrice()));
                 rule.setCityId(request.getCityId());
                 rule.setDeleted(Constants.ZERO);
                 rule.setCreateTime(now);
@@ -252,7 +252,7 @@
             PricingRule rule = existingMap.get(String.valueOf(category.getId()));
             if (rule != null) {
                 vo.setPricingRuleId(rule.getId());
-                vo.setUnitPrice(rule.getFieldB());
+                vo.setUnitPrice(fenToYuan(rule.getFieldB()));
             }
             return vo;
         }).collect(Collectors.toList());
@@ -281,9 +281,9 @@
 
             if (existing != null) {
                 existing.setFieldB(item.getStartDistance());
-                existing.setFieldC(item.getStartPrice());
+                existing.setFieldC(yuanToFen(item.getStartPrice()));
                 existing.setFieldD(item.getExtraDistance());
-                existing.setFieldE(item.getExtraPrice());
+                existing.setFieldE(yuanToFen(item.getExtraPrice()));
                 existing.setUpdateTime(now);
                 pricingRuleMapper.updateById(existing);
             } else {
@@ -291,9 +291,9 @@
                 rule.setType(Constants.ONE);
                 rule.setFieldA(String.valueOf(item.getCategoryId()));
                 rule.setFieldB(item.getStartDistance());
-                rule.setFieldC(item.getStartPrice());
+                rule.setFieldC(yuanToFen(item.getStartPrice()));
                 rule.setFieldD(item.getExtraDistance());
-                rule.setFieldE(item.getExtraPrice());
+                rule.setFieldE(yuanToFen(item.getExtraPrice()));
                 rule.setCityId(request.getCityId());
                 rule.setDeleted(Constants.ZERO);
                 rule.setCreateTime(now);
@@ -334,9 +334,9 @@
             if (rule != null) {
                 vo.setPricingRuleId(rule.getId());
                 vo.setStartDistance(rule.getFieldB());
-                vo.setStartPrice(rule.getFieldC());
+                vo.setStartPrice(fenToYuan(rule.getFieldC()));
                 vo.setExtraDistance(rule.getFieldD());
-                vo.setExtraPrice(rule.getFieldE());
+                vo.setExtraPrice(fenToYuan(rule.getFieldE()));
             }
             return vo;
         }).collect(Collectors.toList());
@@ -508,6 +508,11 @@
 
         Date now = new Date();
         for (StoreDepositItemDTO item : request.getItems()) {
+            // 鍏冭浆鍒�
+            String depositFen = String.valueOf(new BigDecimal(item.getDepositAmount())
+                    .multiply(new BigDecimal("100"))
+                    .setScale(0, BigDecimal.ROUND_HALF_UP)
+                    .longValue());
             QueryWrapper<PricingRule> qw = new QueryWrapper<>();
             qw.lambda()
                     .eq(PricingRule::getType, Constants.THREE)
@@ -518,14 +523,14 @@
             PricingRule existing = pricingRuleMapper.selectOne(qw);
 
             if (existing != null) {
-                existing.setFieldB(item.getDepositAmount());
+                existing.setFieldB(depositFen);
                 existing.setUpdateTime(now);
                 pricingRuleMapper.updateById(existing);
             } else {
                 PricingRule rule = new PricingRule();
                 rule.setType(Constants.THREE);
                 rule.setFieldA(String.valueOf(item.getFieldType()));
-                rule.setFieldB(item.getDepositAmount());
+                rule.setFieldB(depositFen);
                 rule.setCityId(request.getCityId());
                 rule.setDeleted(Constants.ZERO);
                 rule.setCreateTime(now);
@@ -561,7 +566,7 @@
             PricingRule rule = existingMap.get(String.valueOf(i));
             if (rule != null) {
                 vo.setPricingRuleId(rule.getId());
-                vo.setDepositAmount(rule.getFieldB());
+                vo.setDepositAmount(fenToYuan(rule.getFieldB()));
             }
             result.add(vo);
         }
@@ -571,15 +576,15 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void batchSaveRevenueShare(RevenueShareSaveDTO request) {
-        // 鏍¢獙锛氬繀椤诲寘鍚� fieldType 0-4 鍚勪竴鏉�
+        // 鏍¢獙锛氬繀椤诲寘鍚� fieldType 0-6 鍚勪竴鏉�
         Set<Integer> fieldTypes = request.getItems().stream()
                 .map(RevenueShareItemDTO::getFieldType)
                 .collect(Collectors.toSet());
-        if (fieldTypes.size() != Constants.FIVE) {
+        if (fieldTypes.size() != Constants.SEVEN) {
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
-                    "蹇呴』鍖呭惈浼佷笟瀵�(0)銆佷釜浜哄瘎(1)銆佷紒涓氬彇(2)銆佷釜浜哄彇(3)銆侀厤閫佸憳(4)鍏�5鏉℃暟鎹�");
+                    "蹇呴』鍖呭惈寮傚湴浼佷笟瀵�(0)銆佸紓鍦颁釜浜哄瘎(1)銆佸紓鍦颁紒涓氬彇(2)銆佸紓鍦颁釜浜哄彇(3)銆侀厤閫佸憳(4)銆佸氨鍦颁紒涓氬瓨(5)銆佸氨鍦颁釜浜哄瓨(6)鍏�7鏉℃暟鎹�");
         }
-        for (int i = 0; i <= Constants.FOUR; i++) {
+        for (int i = 0; i <= Constants.SIX; i++) {
             if (!fieldTypes.contains(i)) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
                         "缂哄皯绫诲瀷" + i + "鐨勬暟鎹�");
@@ -629,10 +634,10 @@
         Map<String, PricingRule> existingMap = rules.stream()
                 .collect(Collectors.toMap(PricingRule::getFieldA, r -> r));
 
-        // 鍥哄畾杩斿洖5鏉★細浼佷笟瀵�(0)銆佷釜浜哄瘎(1)銆佷紒涓氬彇(2)銆佷釜浜哄彇(3)銆侀厤閫佸憳(4)
+        // 鍥哄畾杩斿洖7鏉★細寮傚湴浼佷笟瀵�(0)銆佸紓鍦颁釜浜哄瘎(1)銆佸紓鍦颁紒涓氬彇(2)銆佸紓鍦颁釜浜哄彇(3)銆侀厤閫佸憳(4)銆佸氨鍦颁紒涓氬瓨(5)銆佸氨鍦颁釜浜哄瓨(6)
         List<RevenueShareVO> result = new ArrayList<>();
-        String[] typeNames = {"浼佷笟瀵�", "涓汉瀵�", "浼佷笟鍙�", "涓汉鍙�", "閰嶉�佸憳"};
-        for (int i = 0; i <= Constants.FOUR; i++) {
+        String[] typeNames = {"寮傚湴浼佷笟瀵勪欢", "寮傚湴涓汉瀵勪欢", "寮傚湴浼佷笟鍙栦欢", "寮傚湴涓汉鍙栦欢", "閰嶉�佸憳", "灏卞湴浼佷笟瀛樹欢", "灏卞湴涓汉瀛樹欢"};
+        for (int i = 0; i <= Constants.SIX; i++) {
             RevenueShareVO vo = new RevenueShareVO();
             vo.setFieldType(i);
             vo.setFieldTypeName(typeNames[i]);
@@ -648,4 +653,19 @@
         return result;
     }
 
+    private String yuanToFen(String yuan) {
+        if (yuan == null || yuan.isEmpty()) return "0";
+        return String.valueOf(new BigDecimal(yuan)
+                .multiply(new BigDecimal("100"))
+                .setScale(0, RoundingMode.HALF_UP)
+                .longValue());
+    }
+
+    private String fenToYuan(String fen) {
+        if (fen == null || fen.isEmpty()) return "0";
+        return new BigDecimal(fen)
+                .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP)
+                .toPlainString();
+    }
+
 }

--
Gitblit v1.9.3