Quellcode durchsuchen

修改用户评价钱数的问题

LiRong vor 3 Monaten
Ursprung
Commit
f30d2de26e

+ 18 - 14
leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java

@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
 
@@ -74,11 +75,12 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         BigDecimal oneServiceTotalPrice = secondOrderInfo.getServiceTotalPrice();
         //默认平台佣金以及志愿者到手钱数
         String oneScore = sysConfigService.selectConfigByKey("orderOneScore");
-        BigDecimal volunteerMoney = oneServiceTotalPrice.multiply(new BigDecimal(oneScore));
+        BigDecimal volunteerMoney = oneServiceTotalPrice.multiply(new BigDecimal(oneScore)).setScale(2, RoundingMode.HALF_UP);
         BigDecimal platformBrokerage = oneServiceTotalPrice.subtract(volunteerMoney);
         //计算结束冻结时间 默认开始时间+3天
         DateTime frozenStartTime = DateTimeUtil.getNowTime1();
-        Date frozenEndTime = DateUtils.addDays(frozenStartTime, 3);
+        Integer s = Integer.valueOf(sysConfigService.selectConfigByKey("orderForzenDays"));
+        Date frozenEndTime = DateUtils.addDays(frozenStartTime,s);
         OrderFrozenFunds orderFrozenFunds = OrderFrozenFunds.builder().volunteerMoney(volunteerMoney)
                 .platformBrokerage(platformBrokerage).scoreMoney(BigDecimal.valueOf(0.00)).secondOrderMoney(oneServiceTotalPrice)
                 .status(0).secondOrderId(secondOrder.getSecondOrderId()).volunteerId(secondOrder.getVolunteerId())
@@ -147,9 +149,11 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         //更新后的第二版,钱数要从
         Long volunteerInfoId = reviewDTO.getVolunteerInfoId();
         VolunteerInfo volunteerInfo = volunteerInfoMapper.selectOne(new LambdaQueryWrapper<VolunteerInfo>().eq(VolunteerInfo::getVolunteerInfoId, volunteerInfoId));
-        BigDecimal serviceOnePrice = volunteerInfo.getBusinessPrice();
+        //BigDecimal serviceOnePrice = volunteerInfo.getBusinessPrice();
+        BigDecimal totalPrice = secondOrder.getServiceTotalPrice();
 
-        BigDecimal volunteerMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderOneScore")));
+
+        BigDecimal volunteerMoney = totalPrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderOneScore"))).setScale(2, RoundingMode.HALF_UP);
         BigDecimal scoreMoney = BigDecimal.valueOf(0);
         BigDecimal platformBrokerage = BigDecimal.valueOf(0);
         Integer protocolScore = reviewDTO.getProtocolScore();
@@ -160,25 +164,25 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         Integer score =(int)Math.round(averageScore);
         if  ( score.equals(1) ){
             //  1星85%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderOneScore"))).subtract(volunteerMoney);
-            platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
+            scoreMoney = totalPrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderOneScore"))).setScale(2, RoundingMode.HALF_UP).subtract(volunteerMoney);
+            platformBrokerage = totalPrice.subtract(volunteerMoney).subtract(scoreMoney);
         }
         else if ( score.equals(2) ){
             //  2星89%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderTwoScore"))).subtract(volunteerMoney);
-            platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
+            scoreMoney = totalPrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderTwoScore"))).setScale(2, RoundingMode.HALF_UP).subtract(volunteerMoney);
+            platformBrokerage = totalPrice.subtract(volunteerMoney).subtract(scoreMoney);
         } else if (score.equals(3)) {
             //  3星91%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderThreeScore"))).subtract(volunteerMoney);
-            platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
+            scoreMoney = totalPrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderThreeScore"))).setScale(2, RoundingMode.HALF_UP).subtract(volunteerMoney);
+            platformBrokerage = totalPrice.subtract(volunteerMoney).subtract(scoreMoney);
         } else if (score.equals(4)) {
             //  4星93%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderFourScore"))).subtract(volunteerMoney);
-            platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
+            scoreMoney = totalPrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderFourScore"))).setScale(2, RoundingMode.HALF_UP).subtract(volunteerMoney);
+            platformBrokerage = totalPrice.subtract(volunteerMoney).subtract(scoreMoney);
         } else if (score.equals(5)) {
             //  5星95%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderFiveScore"))).subtract(volunteerMoney);
-            platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
+            scoreMoney = totalPrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderFiveScore"))).setScale(2, RoundingMode.HALF_UP).subtract(volunteerMoney);
+            platformBrokerage = totalPrice.subtract(volunteerMoney).subtract(scoreMoney);
         }
         //修改冻结表:
         UpdateWrapper<OrderFrozenFunds> orderFrozenFundsUpdateWrapper = new UpdateWrapper<OrderFrozenFunds>().eq("second_order_id", reviewDTO.getSecondOrderId()).set("platform_brokerage", platformBrokerage).set("score_money", scoreMoney).set("update_time", DateTimeUtil.getNowTime());