根据车辆编号修改订单金额

This commit is contained in:
yanglei 2026-02-09 16:08:40 +08:00
parent b7bf075a10
commit b53cb31d91
8 changed files with 122 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import com.cdzy.common.model.response.JsonResult;
import com.ebike.feign.component.FeignTokenInterceptor; import com.ebike.feign.component.FeignTokenInterceptor;
import com.ebike.feign.config.ExampleFeignConfiguration; import com.ebike.feign.config.ExampleFeignConfiguration;
import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto; import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto;
import com.ebike.feign.model.dto.FeignEbikePaymentAmountDto;
import com.ebike.feign.model.vo.FeignEbikeRefundOrderDetailVo; import com.ebike.feign.model.vo.FeignEbikeRefundOrderDetailVo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -38,4 +39,12 @@ public interface UserFeignClient {
*/ */
@PostMapping("/ebikeOrder/api/getOrderStatistics") @PostMapping("/ebikeOrder/api/getOrderStatistics")
JsonResult<?> getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto); JsonResult<?> getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto);
/**
* 根据车辆编号修改当前订单的金额
*
* @param dto 请求参数
*/
@PostMapping("/ebikeOrder/api/updateOrderAmount")
JsonResult<?> updateOrderAmount(@RequestBody @Validated FeignEbikePaymentAmountDto dto);
} }

View File

@ -0,0 +1,27 @@
package com.ebike.feign.model.dto;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @author yanglei
* @since 2026-02-09 14:44
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FeignEbikePaymentAmountDto {
@NotBlank(message = "车辆编号不能为空")
private String bikeCode;
@NotNull(message = "价格不能为空")
private BigDecimal price;
}

View File

@ -7,6 +7,7 @@ import com.cdzy.common.model.response.CommonStaffInfo;
import com.cdzy.common.model.response.JsonResult; import com.cdzy.common.model.response.JsonResult;
import com.ebike.feign.clients.UserFeignClient; import com.ebike.feign.clients.UserFeignClient;
import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto; import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto;
import com.ebike.feign.model.dto.FeignEbikePaymentAmountDto;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -58,4 +59,18 @@ public class EbikeStatisticsController {
return JsonResult.success(jsonResult.getData()); return JsonResult.success(jsonResult.getData());
} }
/**
* 根据车辆编号修改当前订单金额
*
* @param dto 车辆请求参数
*/
@PostMapping("updateOrderAmount")
public JsonResult<?> updateOrderAmount(@RequestBody @Validated FeignEbikePaymentAmountDto dto) {
JsonResult<?> jsonResult = userFeignClient.updateOrderAmount(dto);
if (jsonResult.getCode() != Code.SUCCESS) {
throw new EbikeException(jsonResult.getMessage());
}
return JsonResult.success();
}
} }

View File

@ -15,6 +15,7 @@ import com.cdzy.user.service.EbikeOrderService;
import com.ebike.feign.clients.PaymentFeignClient; import com.ebike.feign.clients.PaymentFeignClient;
import com.ebike.feign.model.dto.FeignEbikeDto; import com.ebike.feign.model.dto.FeignEbikeDto;
import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto; import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto;
import com.ebike.feign.model.dto.FeignEbikePaymentAmountDto;
import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo; import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo;
import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo; import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo;
import com.ebike.feign.model.vo.FeignEbikeWxHandleNotifyVo; import com.ebike.feign.model.vo.FeignEbikeWxHandleNotifyVo;
@ -171,4 +172,16 @@ public class EbikeOrderController {
FeignEbikeOrderStatisticsVo result = ebikeOrderService.getOrderStatistics(dto); FeignEbikeOrderStatisticsVo result = ebikeOrderService.getOrderStatistics(dto);
return JsonResult.success(result); return JsonResult.success(result);
} }
/**
* 根据车辆编号修改订单金额
*
* @param paymentAmountDto 车辆编号
*/
@PostMapping("/api/updateOrderAmount")
public JsonResult<?> updateOrderAmount(@RequestBody @Validated FeignEbikePaymentAmountDto paymentAmountDto) {
ebikeOrderService.updateOrderAmount(paymentAmountDto);
return JsonResult.success();
}
} }

View File

@ -11,6 +11,7 @@ import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo;
import com.cdzy.user.model.vo.EbikeUserAllOrdersVo; import com.cdzy.user.model.vo.EbikeUserAllOrdersVo;
import com.ebike.feign.model.dto.FeignEbikeDto; import com.ebike.feign.model.dto.FeignEbikeDto;
import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto; import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto;
import com.ebike.feign.model.dto.FeignEbikePaymentAmountDto;
import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo; import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo;
import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo; import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
@ -112,6 +113,7 @@ public interface EbikeOrderService extends IService<EbikeOrder> {
/** /**
* 根据订单id查看订单详情 * 根据订单id查看订单详情
*
* @param orderId 订单id * @param orderId 订单id
* @return 订单详情 * @return 订单详情
*/ */
@ -133,4 +135,11 @@ public interface EbikeOrderService extends IService<EbikeOrder> {
* @return 退款订单详情 * @return 退款订单详情
*/ */
EbikeRefundApplyOrderBaseInfoVo getOrderDetail(Long orderId); EbikeRefundApplyOrderBaseInfoVo getOrderDetail(Long orderId);
/**
* 根据车辆编号修改订单金额
*
* @param paymentAmountDto 车辆编号
*/
void updateOrderAmount(FeignEbikePaymentAmountDto paymentAmountDto);
} }

View File

@ -3,6 +3,8 @@ package com.cdzy.user.service;
import com.cdzy.user.model.entity.EbikePayment; import com.cdzy.user.model.entity.EbikePayment;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
import java.math.BigDecimal;
/** /**
* 用户支付 服务层 * 用户支付 服务层
* *
@ -19,4 +21,12 @@ public interface EbikePaymentService extends IService<EbikePayment> {
* @return 用户支付订单 * @return 用户支付订单
*/ */
EbikePayment queryPaymentInfo(Long orderId); EbikePayment queryPaymentInfo(Long orderId);
/**
* 修改支付订单的支付金额
*
* @param orderId 订单id
* @param price 金额
*/
void updateCostPrice(Long orderId, BigDecimal price);
} }

View File

@ -33,6 +33,7 @@ import com.cdzy.user.utils.StringUtils;
import com.ebike.feign.clients.OperationsFeignClient; import com.ebike.feign.clients.OperationsFeignClient;
import com.ebike.feign.model.dto.FeignEbikeDto; import com.ebike.feign.model.dto.FeignEbikeDto;
import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto; import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto;
import com.ebike.feign.model.dto.FeignEbikePaymentAmountDto;
import com.ebike.feign.model.dto.FeignEbikeUserBikeInfo; import com.ebike.feign.model.dto.FeignEbikeUserBikeInfo;
import com.ebike.feign.model.dto.FeignEbikeUserLockDto; import com.ebike.feign.model.dto.FeignEbikeUserLockDto;
import com.ebike.feign.model.vo.EbikeLockVo; import com.ebike.feign.model.vo.EbikeLockVo;
@ -40,6 +41,7 @@ import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo;
import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo; import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -411,6 +413,27 @@ public class EbikeOrderServiceImpl extends ServiceImpl<EbikeOrderMapper, EbikeOr
return this.mapper.getOrderDetail(orderId); return this.mapper.getOrderDetail(orderId);
} }
@Transactional
@Override
public void updateOrderAmount(FeignEbikePaymentAmountDto paymentAmountDto) {
// 1 获取当前车辆未支付的订单
QueryWrapper queryWrapper = QueryWrapper.create()
.select(EBIKE_ORDER.ALL_COLUMNS)
.where(EBIKE_ORDER.BIKE_CODE.eq(paymentAmountDto.getBikeCode()))
.where(EBIKE_ORDER.ORDER_STATUS.eq(OrderStatus.PENDING_PAYMENT));
EbikeOrder ebikeOrder = this.mapper.selectOneByQuery(queryWrapper);
if (Objects.isNull(ebikeOrder)) {
throw new EbikeException("当前车辆不存在待支付的订单");
}
// 2 修改当前订单金额(实付金额)
UpdateChain.of(EbikeOrder.class)
.set(EbikeOrder::getActualAmount, paymentAmountDto.getPrice())
.where(EbikeOrder::getOrderId).eq(ebikeOrder.getOrderId())
.update();
// 3 同步修改支付订单的cost_price(用于支付时的实际金额)
ebikePaymentService.updateCostPrice(ebikeOrder.getOrderId(), paymentAmountDto.getPrice());
}
/** /**
* 计算增长率并格式化为百分比字符串 * 计算增长率并格式化为百分比字符串
* *

View File

@ -1,5 +1,6 @@
package com.cdzy.user.service.impl; package com.cdzy.user.service.impl;
import com.cdzy.common.ex.EbikeException;
import com.cdzy.user.mapper.EbikePaymentMapper; import com.cdzy.user.mapper.EbikePaymentMapper;
import com.cdzy.user.model.entity.EbikePayment; import com.cdzy.user.model.entity.EbikePayment;
import com.cdzy.user.service.EbikePaymentService; import com.cdzy.user.service.EbikePaymentService;
@ -8,6 +9,9 @@ import com.mybatisflex.spring.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Objects;
import static com.cdzy.user.model.entity.table.EbikePaymentTableDef.EBIKE_PAYMENT; import static com.cdzy.user.model.entity.table.EbikePaymentTableDef.EBIKE_PAYMENT;
/** /**
@ -31,4 +35,16 @@ public class EbikePaymentServiceImpl extends ServiceImpl<EbikePaymentMapper, Ebi
} }
return ebikePayment; return ebikePayment;
} }
@Override
public void updateCostPrice(Long orderId, BigDecimal price) {
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_PAYMENT.ORDER_ID.eq(orderId));
EbikePayment ebikePayment = this.mapper.selectOneByQuery(queryWrapper);
if (Objects.isNull(ebikePayment)) {
throw new EbikeException("当前订单无支付订单");
}
ebikePayment.setCostPrice(price);
this.mapper.update(ebikePayment);
}
} }