|
@@ -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());
|