查询订单状态与获取用户所有订单
This commit is contained in:
parent
2d072b01ff
commit
7a19f3141c
@ -2,7 +2,6 @@ package com.cdzy.payment.service.impl;
|
|||||||
|
|
||||||
import com.cdzy.payment.enums.RefundStatus;
|
import com.cdzy.payment.enums.RefundStatus;
|
||||||
import com.cdzy.payment.mapper.EbikeRefundMapper;
|
import com.cdzy.payment.mapper.EbikeRefundMapper;
|
||||||
import com.cdzy.payment.model.dto.EbikeRefundQueryDto;
|
|
||||||
import com.cdzy.payment.model.entity.EbikeRefund;
|
import com.cdzy.payment.model.entity.EbikeRefund;
|
||||||
import com.cdzy.payment.service.EbikeRefundService;
|
import com.cdzy.payment.service.EbikeRefundService;
|
||||||
import com.cdzy.payment.utils.StringUtils;
|
import com.cdzy.payment.utils.StringUtils;
|
||||||
@ -14,14 +13,12 @@ import com.wechat.pay.java.service.refund.model.Status;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.cdzy.payment.model.entity.table.EbikeRefundTableDef.EBIKE_REFUND;
|
import static com.cdzy.payment.model.entity.table.EbikeRefundTableDef.EBIKE_REFUND;
|
||||||
import static com.cdzy.payment.model.entity.table.EbikeUserTableDef.EBIKE_USER;
|
|
||||||
import static com.mybatisflex.core.constant.FuncName.*;
|
import static com.mybatisflex.core.constant.FuncName.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,7 +40,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
|
|||||||
String timeFilter = String.format("%s(%s, %s(%s))>=%s()", ADDTIME, EBIKE_REFUND.CREATE_TIME.getName(), SEC_TO_TIME
|
String timeFilter = String.format("%s(%s, %s(%s))>=%s()", ADDTIME, EBIKE_REFUND.CREATE_TIME.getName(), SEC_TO_TIME
|
||||||
, duration * 60, NOW);
|
, duration * 60, NOW);
|
||||||
QueryWrapper query = QueryWrapper.create()
|
QueryWrapper query = QueryWrapper.create()
|
||||||
.where(String.valueOf(EBIKE_REFUND.REFUND_STATUS), RefundStatus.PROCESSED)
|
.where(EBIKE_REFUND.REFUND_STATUS.eq(RefundStatus.PROCESSED))
|
||||||
.and(timeFilter);
|
.and(timeFilter);
|
||||||
return list(query);
|
return list(query);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.cdzy.common.model.response.JsonResult;
|
|||||||
import com.cdzy.user.model.dto.EbikeUserCyclingDto;
|
import com.cdzy.user.model.dto.EbikeUserCyclingDto;
|
||||||
import com.cdzy.user.model.dto.EbikeUserCyclingEndDto;
|
import com.cdzy.user.model.dto.EbikeUserCyclingEndDto;
|
||||||
import com.cdzy.user.model.entity.EbikeOrder;
|
import com.cdzy.user.model.entity.EbikeOrder;
|
||||||
|
import com.cdzy.user.model.vo.EbikeUserAllOrdersVo;
|
||||||
import com.cdzy.user.service.EbikeOrderService;
|
import com.cdzy.user.service.EbikeOrderService;
|
||||||
import com.ebike.feign.model.dto.FeignEbikeDto;
|
import com.ebike.feign.model.dto.FeignEbikeDto;
|
||||||
import com.ebike.feign.model.dto.FeignEbikeUserBikeInfo;
|
import com.ebike.feign.model.dto.FeignEbikeUserBikeInfo;
|
||||||
@ -161,4 +162,27 @@ public class EbikeOrderController {
|
|||||||
EbikeOrder userOrder = ebikeOrderService.getById(orderId);
|
EbikeOrder userOrder = ebikeOrderService.getById(orderId);
|
||||||
return JsonResult.success(userOrder);
|
return JsonResult.success(userOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户订单表主键获取订单状态。
|
||||||
|
*
|
||||||
|
* @param orderId 用户订单表主键
|
||||||
|
*/
|
||||||
|
@GetMapping("getOrderStatus/{orderId}")
|
||||||
|
public JsonResult<?> getOrderStatus(@PathVariable("orderId") Long orderId) {
|
||||||
|
Integer orderStatus = ebikeOrderService.getOrderStatus(orderId);
|
||||||
|
return JsonResult.success(orderStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户订单表主键获取订单状态。
|
||||||
|
*
|
||||||
|
* @param userId 用户订单表主键
|
||||||
|
*/
|
||||||
|
@GetMapping("getUserAllOrder")
|
||||||
|
public JsonResult<?> getUserAllOrder(@RequestParam("userId") Long userId) {
|
||||||
|
List<EbikeUserAllOrdersVo> userAllOrders = ebikeOrderService.getUserAllOrder(userId);
|
||||||
|
return JsonResult.success(userAllOrders);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,141 @@
|
|||||||
|
package com.cdzy.user.model.vo;
|
||||||
|
|
||||||
|
import com.cdzy.user.handler.PGpointDeserializer;
|
||||||
|
import com.cdzy.user.handler.PGpointSerializer;
|
||||||
|
import com.cdzy.user.handler.PGpointTypeHandler;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import com.mybatisflex.annotation.Column;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.postgresql.geometric.PGpoint;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户所有订单返回实体类
|
||||||
|
*
|
||||||
|
* @author yanglei
|
||||||
|
* @since 2025-11-17 14:14
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class EbikeUserAllOrdersVo {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单id
|
||||||
|
*/
|
||||||
|
private Long orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运营商ID
|
||||||
|
*/
|
||||||
|
private Long operatorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆编码
|
||||||
|
*/
|
||||||
|
private String bikeCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单类型:1-单次骑行 2-骑行卡购买 3-会员卡续费
|
||||||
|
*/
|
||||||
|
private Integer orderType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单状态:0-进行中 1-已取消 2-待支付 3-已支付 4-退款中 5-已退款
|
||||||
|
*/
|
||||||
|
private Integer orderStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单总金额(单位:元)
|
||||||
|
*/
|
||||||
|
private BigDecimal totalAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实付金额(扣除卡券优惠后)
|
||||||
|
*/
|
||||||
|
private BigDecimal actualAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 骑行开始时间(仅骑行订单有效)
|
||||||
|
*/
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 骑行结束时间(仅骑行订单有效)
|
||||||
|
*/
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付成功时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime paymentTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付方式:1-wechat 2-alipay 3-balance
|
||||||
|
*/
|
||||||
|
private Integer paymentMethod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 起步费用
|
||||||
|
*/
|
||||||
|
private BigDecimal baseFee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 时长费用
|
||||||
|
*/
|
||||||
|
private BigDecimal durationFee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免费时长(分钟)
|
||||||
|
*/
|
||||||
|
private Integer freeDurationMinutes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 时长(分钟)
|
||||||
|
*/
|
||||||
|
private Integer chargeDurationMinutes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 禁停区调度费(元)
|
||||||
|
*/
|
||||||
|
private BigDecimal noParkingZoneFee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 停车区外调度费(元)
|
||||||
|
*/
|
||||||
|
private BigDecimal outOfParkingAreaFee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运营区域外调度费(元)
|
||||||
|
*/
|
||||||
|
private BigDecimal outOfServiceAreaFee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 封顶金额(元)
|
||||||
|
*/
|
||||||
|
private BigDecimal maxFeeAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头盔管理费(元)
|
||||||
|
*/
|
||||||
|
private BigDecimal helmetManagementFee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 骑行起始点
|
||||||
|
*/
|
||||||
|
@Column(typeHandler = PGpointTypeHandler.class)
|
||||||
|
@JsonSerialize(using = PGpointSerializer.class)
|
||||||
|
@JsonDeserialize(using = PGpointDeserializer.class)
|
||||||
|
private PGpoint startLocation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 骑行结束点
|
||||||
|
*/
|
||||||
|
@Column(typeHandler = PGpointTypeHandler.class)
|
||||||
|
@JsonSerialize(using = PGpointSerializer.class)
|
||||||
|
@JsonDeserialize(using = PGpointDeserializer.class)
|
||||||
|
private PGpoint endLocation;
|
||||||
|
|
||||||
|
}
|
||||||
@ -3,6 +3,7 @@ package com.cdzy.user.service;
|
|||||||
import com.cdzy.user.model.dto.EbikeUserCyclingDto;
|
import com.cdzy.user.model.dto.EbikeUserCyclingDto;
|
||||||
import com.cdzy.user.model.dto.EbikeUserCyclingEndDto;
|
import com.cdzy.user.model.dto.EbikeUserCyclingEndDto;
|
||||||
import com.cdzy.user.model.entity.EbikeOrder;
|
import com.cdzy.user.model.entity.EbikeOrder;
|
||||||
|
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.FeignEbikeUserBikeInfo;
|
import com.ebike.feign.model.dto.FeignEbikeUserBikeInfo;
|
||||||
import com.ebike.feign.model.dto.FeignOrderPaymentDto;
|
import com.ebike.feign.model.dto.FeignOrderPaymentDto;
|
||||||
@ -100,4 +101,20 @@ public interface EbikeOrderService extends IService<EbikeOrder> {
|
|||||||
* @return 订单id
|
* @return 订单id
|
||||||
*/
|
*/
|
||||||
Long doneRide(EbikeUserCyclingEndDto endDto);
|
Long doneRide(EbikeUserCyclingEndDto endDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据订单Id查询订单状态
|
||||||
|
*
|
||||||
|
* @param orderId 订单ID
|
||||||
|
* @return 订单状态
|
||||||
|
*/
|
||||||
|
Integer getOrderStatus(Long orderId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户id获取用户所有订单
|
||||||
|
*
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return 用户订单
|
||||||
|
*/
|
||||||
|
List<EbikeUserAllOrdersVo> getUserAllOrder(Long userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import com.cdzy.user.model.dto.EbikeUserCyclingEndDto;
|
|||||||
import com.cdzy.user.model.entity.EbikeOrder;
|
import com.cdzy.user.model.entity.EbikeOrder;
|
||||||
import com.cdzy.user.model.entity.EbikeOrderDetail;
|
import com.cdzy.user.model.entity.EbikeOrderDetail;
|
||||||
import com.cdzy.user.model.entity.EbikePayment;
|
import com.cdzy.user.model.entity.EbikePayment;
|
||||||
|
import com.cdzy.user.model.vo.EbikeUserAllOrdersVo;
|
||||||
import com.cdzy.user.service.EbikeOrderDetailService;
|
import com.cdzy.user.service.EbikeOrderDetailService;
|
||||||
import com.cdzy.user.service.EbikeOrderService;
|
import com.cdzy.user.service.EbikeOrderService;
|
||||||
import com.cdzy.user.service.EbikePaymentService;
|
import com.cdzy.user.service.EbikePaymentService;
|
||||||
@ -244,6 +245,50 @@ public class EbikeOrderImpl extends ServiceImpl<EbikeOrderMapper, EbikeOrder> im
|
|||||||
return order.getOrderId();
|
return order.getOrderId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getOrderStatus(Long orderId) {
|
||||||
|
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||||
|
.select(EBIKE_ORDER.ORDER_STATUS)
|
||||||
|
.where(EBIKE_ORDER.ORDER_ID.eq(orderId));
|
||||||
|
EbikeOrder ebikeOrder = this.mapper.selectOneByQuery(queryWrapper);
|
||||||
|
if (Objects.isNull(ebikeOrder)) {
|
||||||
|
throw new EbikeException("订单不存在");
|
||||||
|
}
|
||||||
|
return ebikeOrder.getOrderStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EbikeUserAllOrdersVo> getUserAllOrder(Long userId) {
|
||||||
|
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||||
|
.select(
|
||||||
|
EBIKE_ORDER.ORDER_ID,
|
||||||
|
EBIKE_ORDER.OPERATOR_ID,
|
||||||
|
EBIKE_ORDER.BIKE_CODE,
|
||||||
|
EBIKE_ORDER.ORDER_TYPE,
|
||||||
|
EBIKE_ORDER.ORDER_STATUS,
|
||||||
|
EBIKE_ORDER.TOTAL_AMOUNT,
|
||||||
|
EBIKE_ORDER.ACTUAL_AMOUNT,
|
||||||
|
EBIKE_ORDER.START_TIME,
|
||||||
|
EBIKE_ORDER.END_TIME,
|
||||||
|
EBIKE_ORDER.PAYMENT_TIME,
|
||||||
|
EBIKE_ORDER.PAYMENT_METHOD,
|
||||||
|
EBIKE_ORDER.BASE_FEE,
|
||||||
|
EBIKE_ORDER.DURATION_FEE,
|
||||||
|
EBIKE_ORDER.FREE_DURATION_MINUTES,
|
||||||
|
EBIKE_ORDER.CHARGE_DURATION_MINUTES,
|
||||||
|
EBIKE_ORDER.NO_PARKING_ZONE_FEE,
|
||||||
|
EBIKE_ORDER.OUT_OF_PARKING_AREA_FEE,
|
||||||
|
EBIKE_ORDER.OUT_OF_SERVICE_AREA_FEE,
|
||||||
|
EBIKE_ORDER.MAX_FEE_AMOUNT,
|
||||||
|
EBIKE_ORDER.HELMET_MANAGEMENT_FEE,
|
||||||
|
EBIKE_ORDER.START_LOCATION,
|
||||||
|
EBIKE_ORDER.END_LOCATION
|
||||||
|
)
|
||||||
|
.where(EBIKE_ORDER.USER_ID.eq(userId))
|
||||||
|
.orderBy(EBIKE_ORDER.CREATE_TIME.desc());
|
||||||
|
return this.mapper.selectListByQueryAs(queryWrapper, EbikeUserAllOrdersVo.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<EbikeOrderDetail> buildOrderDetails(EbikeOrder order) {
|
private List<EbikeOrderDetail> buildOrderDetails(EbikeOrder order) {
|
||||||
List<EbikeOrderDetail> details = new ArrayList<>();
|
List<EbikeOrderDetail> details = new ArrayList<>();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user