From 761d13616d43b147142d7d33da3a646f6ac15397 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 27 四月 2026 22:25:29 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 34 insertions(+), 14 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..88de2ea 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);
}
@@ -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