去除费用相关

This commit is contained in:
syruan 2025-10-13 21:11:56 +08:00
parent 1792a84d4f
commit 38b4be520a
1 changed files with 8 additions and 105 deletions

View File

@ -97,11 +97,6 @@ public class OrderServiceImpl implements OrderService {
if (orderDetailDtos == null) { if (orderDetailDtos == null) {
continue; continue;
} }
// orderDetailDtos.removeIf(Objects::isNull);
// if (orderDetailDtos.isEmpty()) {
// continue;
//// throw new RuntimeException("请正确添加设备");
// }
//生成订单信息 //生成订单信息
String code = "D" + System.currentTimeMillis(); String code = "D" + System.currentTimeMillis();
orderInfoDto.setCode(code); orderInfoDto.setCode(code);
@ -125,20 +120,6 @@ public class OrderServiceImpl implements OrderService {
} }
// 更改购物车状态为已下单 // 更改购物车状态为已下单
orderMapper.updateMaStatus(orderDetailDto); orderMapper.updateMaStatus(orderDetailDto);
// if (devPersonPhone != null) {
// if (devPersonPhone.length() == 11) {
// SmsUtils.smsToken(devPersonPhone, "订单编号:" + code + "已下单,请尽快处理。", "");
// JSONObject sendResult = SmsTool.sendSms(new SmsParam(devPersonPhone, "订单编号:" + code + "已下单,请尽快处理。"), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
// System.out.println("短信发送结果:" + sendResult.toString());
// } else if (devPersonPhone.length() > 11) {
// JSONObject sendResult = SmsTool.sendSms(new SmsParam(Sm4Utils.decrypt(devPersonPhone), "订单编号:" + code + "已下单,请尽快处理。"), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
// System.out.println("短信发送结果:" + sendResult.toString());
// } else {
// System.err.println("-----------用户绑定手机号,格式异常!!!---------------");
// }
// } else {
// System.err.println("-----------设备联系人手机号为空!!!---------------");
// }
} }
Long userid = SecurityUtils.getLoginUser().getUserid(); Long userid = SecurityUtils.getLoginUser().getUserid();
@ -181,7 +162,7 @@ public class OrderServiceImpl implements OrderService {
List<OrderInfoDto> orderInfoDtos = orderMapper.getOrderDetails(orderInfoDto); List<OrderInfoDto> orderInfoDtos = orderMapper.getOrderDetails(orderInfoDto);
for (OrderInfoDto dto : orderInfoDtos) { for (OrderInfoDto dto : orderInfoDtos) {
dto.setPhoneNumber(Sm4Utils.decrypt(dto.getPhoneNumber())); dto.setPhoneNumber(Sm4Utils.decrypt(dto.getPhoneNumber()));
List<OrderDetailDto> list = new ArrayList(); List<OrderDetailDto> list = new ArrayList<>();
String ids = dto.getIds(); String ids = dto.getIds();
for (String id : ids.split(",")) { for (String id : ids.split(",")) {
OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id); OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id);
@ -196,8 +177,7 @@ public class OrderServiceImpl implements OrderService {
if (detailDto.getChangeCost() != null) { if (detailDto.getChangeCost() != null) {
totalRentalPrice = totalRentalPrice.add(detailDto.getChangeCost()); totalRentalPrice = totalRentalPrice.add(detailDto.getChangeCost());
} else { } else {
if (detailDto.getDateDays() != null && detailDto.getDateDays() > 0 if (detailDto.getDateDays() != null && detailDto.getDateDays() > 0 && detailDto.getDayLeasePrice() != null) {
&& detailDto.getDayLeasePrice() != null) {
BigDecimal newTotalPrice = detailDto.getDayLeasePrice().multiply(new BigDecimal(detailDto.getDateDays())) BigDecimal newTotalPrice = detailDto.getDayLeasePrice().multiply(new BigDecimal(detailDto.getDateDays()))
.setScale(2, RoundingMode.HALF_UP); .setScale(2, RoundingMode.HALF_UP);
totalRentalPrice = totalRentalPrice.add(newTotalPrice); totalRentalPrice = totalRentalPrice.add(newTotalPrice);
@ -213,8 +193,7 @@ public class OrderServiceImpl implements OrderService {
} }
dto.setTotalRentalPrice(totalRentalPrice); dto.setTotalRentalPrice(totalRentalPrice);
dto.setDetailsList(list); dto.setDetailsList(list);
Optional<OrderDetailDto> minOrderStatus = list.stream() Optional<OrderDetailDto> minOrderStatus = list.stream().min(Comparator.comparingInt(p -> Integer.parseInt(p.getOrderStatus())));
.min((p1, p2) -> Integer.compare(Integer.parseInt(p1.getOrderStatus()), Integer.parseInt(p2.getOrderStatus())));
minOrderStatus.ifPresent(orderDetailDto -> dto.setOrderStatus(orderDetailDto.getOrderStatus())); minOrderStatus.ifPresent(orderDetailDto -> dto.setOrderStatus(orderDetailDto.getOrderStatus()));
//根据订单id去lease_repair_record表中查询是否已填写退租检修信息 //根据订单id去lease_repair_record表中查询是否已填写退租检修信息
int count = leaseRepairRecordMapper.selectLeaseContent(String.valueOf(dto.getOrderId())); int count = leaseRepairRecordMapper.selectLeaseContent(String.valueOf(dto.getOrderId()));
@ -224,42 +203,17 @@ public class OrderServiceImpl implements OrderService {
dto.setIsLeaseContent(0); dto.setIsLeaseContent(0);
} }
dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus()))); dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus())));
//TODO计算总费用
LeaseRepair leaseRepair = new LeaseRepair(); LeaseRepair leaseRepair = new LeaseRepair();
leaseRepair.setOrderId(String.valueOf(dto.getOrderId())); leaseRepair.setOrderId(String.valueOf(dto.getOrderId()));
List<LeaseRepairRecord> leaseRepairRecords = leaseRepairRecordMapper.getLeaseRepairRecordList(leaseRepair);
BigDecimal totalRepairScrapLossPrice = BigDecimal.ZERO;
if (!CollectionUtils.isEmpty(leaseRepairRecords)) {
for (LeaseRepairRecord leaseRepairRecord : leaseRepairRecords) {
if (leaseRepairRecord.getRepairChangePrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairChangePrice());
} else if (leaseRepairRecord.getRepairPrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairPrice());
}
if (leaseRepairRecord.getScrapChangePrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapChangePrice());
} else if (leaseRepairRecord.getScrapPrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapPrice());
}
if (leaseRepairRecord.getLossChangePrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossChangePrice());
} else if (leaseRepairRecord.getLossPrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossPrice());
}
}
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
}
dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice).subtract(totalReliefPrice));
} }
return orderInfoDtos; return orderInfoDtos;
} }
@Override @Override
public OrderInfoDto getOrderDetailsById(OrderDetailDto dto) throws Exception { public OrderInfoDto getOrderDetailsById(OrderDetailDto dto) {
OrderInfoDto orderInfoDto = orderMapper.getOrderDetailsById(dto); OrderInfoDto orderInfoDto = orderMapper.getOrderDetailsById(dto);
List<OrderDetailDto> list = orderMapper.selectOrderDetailsByOrderId(dto.getOrderId().toString()); List<OrderDetailDto> list = orderMapper.selectOrderDetailsByOrderId(dto.getOrderId().toString());
Optional<OrderDetailDto> minOrderStatus = list.stream() Optional<OrderDetailDto> minOrderStatus = list.stream().min(Comparator.comparingInt(p -> Integer.parseInt(p.getOrderStatus())));
.min(Comparator.comparingInt(p -> Integer.parseInt(p.getOrderStatus())));
minOrderStatus.ifPresent(orderDetailDto -> orderInfoDto.setOrderStatus(orderDetailDto.getOrderStatus())); minOrderStatus.ifPresent(orderDetailDto -> orderInfoDto.setOrderStatus(orderDetailDto.getOrderStatus()));
orderInfoDto.setPhoneNumber(Sm4Utils.decrypt(orderInfoDto.getPhoneNumber())); orderInfoDto.setPhoneNumber(Sm4Utils.decrypt(orderInfoDto.getPhoneNumber()));
orderInfoDto.setStartTime(list.get(0).getRentBeginTime()); orderInfoDto.setStartTime(list.get(0).getRentBeginTime());
@ -302,11 +256,7 @@ public class OrderServiceImpl implements OrderService {
// 计算天数差 // 计算天数差
long days = ChronoUnit.DAYS.between(preOutboundLocalDate, rentEndLocalDate); long days = ChronoUnit.DAYS.between(preOutboundLocalDate, rentEndLocalDate);
if (days == 0) { if (days == 0) { days = 1;} else {days = days + 1;}
days = 1;
} else {
days = days + 1;
}
return days; return days;
} catch (ParseException e) { } catch (ParseException e) {
throw new RuntimeException("日期转换错误", e); throw new RuntimeException("日期转换错误", e);
@ -575,7 +525,7 @@ public class OrderServiceImpl implements OrderService {
List<OrderInfoDto> orderInfoDtos = orderMapper.getOrderDetails(devInfo); List<OrderInfoDto> orderInfoDtos = orderMapper.getOrderDetails(devInfo);
for (OrderInfoDto dto : orderInfoDtos) { for (OrderInfoDto dto : orderInfoDtos) {
dto.setPhoneNumber(Sm4Utils.decrypt(dto.getPhoneNumber())); dto.setPhoneNumber(Sm4Utils.decrypt(dto.getPhoneNumber()));
List<OrderDetailDto> list = new ArrayList(); List<OrderDetailDto> list = new ArrayList<>();
String ids = dto.getIds(); String ids = dto.getIds();
for (String id : ids.split(",")) { for (String id : ids.split(",")) {
OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id); OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id);
@ -583,31 +533,8 @@ public class OrderServiceImpl implements OrderService {
} }
BigDecimal totalRentalPrice = BigDecimal.ZERO; BigDecimal totalRentalPrice = BigDecimal.ZERO;
BigDecimal totalReliefPrice = BigDecimal.ZERO; BigDecimal totalReliefPrice = BigDecimal.ZERO;
for (OrderDetailDto detailDto : list) {
if (Objects.nonNull(detailDto) && String.valueOf(OrderStatusEnum.ORDER_FINISHED.getStatus()).equals(detailDto.getOrderStatus())) {
detailDto.setDays(detailDto.getDateDays() == null ? detailDto.getDays() : String.valueOf(detailDto.getDateDays()));
if (detailDto.getChangeCost() != null) {
totalRentalPrice = totalRentalPrice.add(detailDto.getChangeCost());
} else {
if (detailDto.getDateDays() != null && detailDto.getDateDays() > 0
&& detailDto.getDayLeasePrice() != null) {
BigDecimal newTotalPrice = detailDto.getDayLeasePrice().multiply(new BigDecimal(detailDto.getDateDays()))
.setScale(2, RoundingMode.HALF_UP);
totalRentalPrice = totalRentalPrice.add(newTotalPrice);
detailDto.setCosts(newTotalPrice);
}
}
if (detailDto.getReliefChangeCost() != null) {
totalReliefPrice.add(detailDto.getReliefChangeCost());
} else if (detailDto.getReliefCost() != null) {
totalReliefPrice.add(detailDto.getReliefCost());
}
}
}
dto.setTotalRentalPrice(totalRentalPrice);
dto.setDetailsList(list); dto.setDetailsList(list);
Optional<OrderDetailDto> minOrderStatus = list.stream() Optional<OrderDetailDto> minOrderStatus = list.stream().min(Comparator.comparingInt(p -> Integer.parseInt(p.getOrderStatus())));
.min((p1, p2) -> Integer.compare(Integer.parseInt(p1.getOrderStatus()), Integer.parseInt(p2.getOrderStatus())));
minOrderStatus.ifPresent(orderDetailDto -> dto.setOrderStatus(orderDetailDto.getOrderStatus())); minOrderStatus.ifPresent(orderDetailDto -> dto.setOrderStatus(orderDetailDto.getOrderStatus()));
//根据订单id去lease_repair_record表中查询是否已填写退租检修信息 //根据订单id去lease_repair_record表中查询是否已填写退租检修信息
int count = leaseRepairRecordMapper.selectLeaseContent(String.valueOf(dto.getOrderId())); int count = leaseRepairRecordMapper.selectLeaseContent(String.valueOf(dto.getOrderId()));
@ -617,32 +544,8 @@ public class OrderServiceImpl implements OrderService {
dto.setIsLeaseContent(0); dto.setIsLeaseContent(0);
} }
dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus()))); dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus())));
//TODO计算总费用
LeaseRepair leaseRepair = new LeaseRepair(); LeaseRepair leaseRepair = new LeaseRepair();
leaseRepair.setOrderId(String.valueOf(dto.getOrderId())); leaseRepair.setOrderId(String.valueOf(dto.getOrderId()));
List<LeaseRepairRecord> leaseRepairRecords = leaseRepairRecordMapper.getLeaseRepairRecordList(leaseRepair);
BigDecimal totalRepairScrapLossPrice = BigDecimal.ZERO;
if (!CollectionUtils.isEmpty(leaseRepairRecords)) {
for (LeaseRepairRecord leaseRepairRecord : leaseRepairRecords) {
if (leaseRepairRecord.getRepairChangePrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairChangePrice());
} else if (leaseRepairRecord.getRepairPrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairPrice());
}
if (leaseRepairRecord.getScrapChangePrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapChangePrice());
} else if (leaseRepairRecord.getScrapPrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapPrice());
}
if (leaseRepairRecord.getLossChangePrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossChangePrice());
} else if (leaseRepairRecord.getLossPrice() != null) {
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossPrice());
}
}
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
}
dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice).subtract(totalReliefPrice));
} }
return orderInfoDtos; return orderInfoDtos;
} }