根据车辆编号修改订单金额
This commit is contained in:
parent
b7bf075a10
commit
b53cb31d91
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算增长率并格式化为百分比字符串
|
* 计算增长率并格式化为百分比字符串
|
||||||
*
|
*
|
||||||
|
|||||||
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user