update 订单详情接口新增理论算力,理论算力和实际算力的比值,实际支付金额

This commit is contained in:
yyb
2026-01-21 14:34:04 +08:00
parent 6681a33940
commit 58aaa345f6
5 changed files with 100 additions and 42 deletions

View File

@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
@@ -552,19 +553,6 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
List<LeaseOrderItem> leaseOrderItems = leaseOrderItemMapper.selectList(new LambdaQueryWrapper<LeaseOrderItem>()
.eq(LeaseOrderItem::getOrderId, orderVo.getOrderId()));
List<OrderItemDto> collect1 = leaseOrderItems.stream().map(leaseOrderItem -> OrderItemDto.builder()
.orderId(leaseOrderItem.getOrderId())
.productId(leaseOrderItem.getProductId())
.productMachineId(leaseOrderItem.getProductMachineId())
.leaseTime(leaseOrderItem.getLeaseTime())
.address(leaseOrderItem.getAddress())
.payCoin(leaseOrderItem.getPayCoin())
.name(leaseOrderItem.getName())
.image(leaseOrderItem.getImage())
.price(leaseOrderItem.getPrice())
.type(leaseOrderItem.getType() ? 1 : 0)
.numbers(leaseOrderItem.getNumbers())
.build()).collect(Collectors.toList());
OrderInfoDto orderInfoDto = OrderInfoDto.builder()
.id(leaseOrderInfo.getId())
@@ -575,9 +563,46 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
.status(leaseOrderInfo.getStatus())
.createTime(leaseOrderInfo.getCreateTime())
.endTime(leaseOrderInfo.getUpdateTime())
.orderItemDtoList(collect1)
.totalTheoryPower(BigDecimal.ZERO)
.totalPracticalPower(BigDecimal.ZERO)
.totalPayAmount(BigDecimal.ZERO)
.build();
List<OrderItemDto> list = new ArrayList<>();
for (LeaseOrderItem leaseOrderItem : leaseOrderItems) {
BigDecimal theoryPower = leaseOrderItem.getTheoryPower();
BigDecimal practicalPower = leaseOrderItem.getPracticalPower();
BigDecimal powerRatio = practicalPower.divide(theoryPower, 2, RoundingMode.HALF_UP);
BigDecimal alreadyPayRealAmount = leaseOrderItem.getAlreadyPayRealAmount();
orderInfoDto.setTotalTheoryPower(orderInfoDto.getTotalTheoryPower().add(theoryPower));
orderInfoDto.setTotalPracticalPower(orderInfoDto.getTotalPracticalPower().add(practicalPower));
orderInfoDto.setTotalPayAmount(orderInfoDto.getTotalPayAmount().add(alreadyPayRealAmount));
list.add(OrderItemDto.builder()
.orderId(leaseOrderItem.getOrderId())
.productId(leaseOrderItem.getProductId())
.productMachineId(leaseOrderItem.getProductMachineId())
.leaseTime(leaseOrderItem.getLeaseTime())
.address(leaseOrderItem.getAddress())
.payCoin(leaseOrderItem.getPayCoin())
.name(leaseOrderItem.getName())
.image(leaseOrderItem.getImage())
.price(leaseOrderItem.getPrice())
.type(leaseOrderItem.getType() ? 1 : 0)
.numbers(leaseOrderItem.getNumbers())
.theoryPower(theoryPower)
.practicalPower(practicalPower)
.powerRatio(powerRatio)
.payAmount(alreadyPayRealAmount)
.build());
}
orderInfoDto.setPayCoin(list.get(0).getPayCoin());
orderInfoDto.setPowerRatio(orderInfoDto.getTotalPracticalPower()
.divide(orderInfoDto.getTotalTheoryPower(), 2, RoundingMode.HALF_UP));
orderInfoDto.setOrderItemDtoList(list);
return Result.success(orderInfoDto);
}