用户订单退款
This commit is contained in:
parent
ddc647c7f5
commit
be4559dace
@ -37,13 +37,13 @@ public class EbikeOrderTransaction implements Serializable {
|
|||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单ID
|
* 主键ID
|
||||||
*/
|
*/
|
||||||
@Id
|
@Id
|
||||||
private Long transactionId;
|
private Long transactionId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单Id
|
* 订单id
|
||||||
*/
|
*/
|
||||||
private String orderId;
|
private String orderId;
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ public class EbikeOrderTransaction implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 支付方式:wechat/alipay/balance
|
* 支付方式:wechat/alipay/balance
|
||||||
*/
|
*/
|
||||||
private String paymentMethod;
|
private Integer paymentMethod;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 使用卡券ID集合(JSON数组)
|
* 使用卡券ID集合(JSON数组)
|
||||||
|
|||||||
@ -1,14 +1,22 @@
|
|||||||
package com.cdzy.user.controller;
|
package com.cdzy.user.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import com.cdzy.common.model.request.PageParam;
|
||||||
import com.cdzy.common.model.response.JsonResult;
|
import com.cdzy.common.model.response.JsonResult;
|
||||||
import com.cdzy.user.model.dto.EbikeUserCyclingDto;
|
|
||||||
import com.cdzy.user.model.entity.EbikeOrderTransaction;
|
import com.cdzy.user.model.entity.EbikeOrderTransaction;
|
||||||
import com.cdzy.user.service.EbikeOrderTransactionService;
|
import com.cdzy.user.service.EbikeOrderTransactionService;
|
||||||
|
import com.ebike.feign.model.dto.FeignOrderPaymentDto;
|
||||||
|
import com.mybatisflex.core.paginate.Page;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import static com.cdzy.user.model.entity.table.EbikeOrderTransactionTableDef.EBIKE_ORDER_TRANSACTION;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户订单 控制层
|
* 用户订单 控制层
|
||||||
*
|
*
|
||||||
@ -47,6 +55,30 @@ public class EbikeOrderTransactionController {
|
|||||||
return JsonResult.success(userOrders);
|
return JsonResult.success(userOrders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单支付。
|
||||||
|
*
|
||||||
|
* @param orderPaymentDto 支付信息
|
||||||
|
* @ {@code 200} 添加成功,{@code 500} 添加失败
|
||||||
|
*/
|
||||||
|
@PostMapping("payment")
|
||||||
|
public JsonResult<?> payment(@RequestBody @Validated FeignOrderPaymentDto orderPaymentDto) {
|
||||||
|
ebikeOrderTransactionService.payment(orderPaymentDto);
|
||||||
|
return JsonResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单退款申请。
|
||||||
|
*
|
||||||
|
* @param orderId 订单ID
|
||||||
|
* @ {@code 200} 添加成功,{@code 500} 添加失败
|
||||||
|
*/
|
||||||
|
@GetMapping("refundApply")
|
||||||
|
public JsonResult<?> refundApply(@RequestParam("orderId") String orderId) {
|
||||||
|
ebikeOrderTransactionService.refundApply(orderId);
|
||||||
|
return JsonResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单退款。
|
* 订单退款。
|
||||||
*
|
*
|
||||||
@ -82,4 +114,47 @@ public class EbikeOrderTransactionController {
|
|||||||
ebikeOrderTransactionService.failRefund(orderId);
|
ebikeOrderTransactionService.failRefund(orderId);
|
||||||
return JsonResult.success();
|
return JsonResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单退款驳回。
|
||||||
|
*
|
||||||
|
* @param orderId 订单ID
|
||||||
|
* @ {@code 200} 添加成功,{@code 500} 添加失败
|
||||||
|
*/
|
||||||
|
@GetMapping("rejectRefund")
|
||||||
|
public JsonResult<?> rejectRefund(@RequestParam("orderId") String orderId) {
|
||||||
|
ebikeOrderTransactionService.rejectRefund(orderId);
|
||||||
|
return JsonResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户订单表主键获取详细信。
|
||||||
|
*
|
||||||
|
* @param transactionId 用户订单表主键
|
||||||
|
* @ 用户订单表详情
|
||||||
|
*/
|
||||||
|
@GetMapping("getInfo/{transactionId}")
|
||||||
|
public JsonResult<?> getInfo(@PathVariable("transactionId") Long transactionId) {
|
||||||
|
EbikeOrderTransaction userOrder = ebikeOrderTransactionService.getById(transactionId);
|
||||||
|
return JsonResult.success(userOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询用户用户订单
|
||||||
|
*
|
||||||
|
* @param pageParam 分页对象
|
||||||
|
* @param orderStatus 订单状态
|
||||||
|
*/
|
||||||
|
@GetMapping("page")
|
||||||
|
public JsonResult<?> page(@Validated PageParam pageParam, @RequestParam(value = "orderStatus", required = false) Integer orderStatus) {
|
||||||
|
long userId = StpUtil.getLoginIdAsLong();
|
||||||
|
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||||
|
.where(EBIKE_ORDER_TRANSACTION.USER_ID.eq(userId))
|
||||||
|
.where(EBIKE_ORDER_TRANSACTION.ORDER_STATUS.eq(orderStatus, Objects.nonNull(orderStatus)))
|
||||||
|
.orderBy(EBIKE_ORDER_TRANSACTION.CREATE_TIME, Boolean.TRUE);
|
||||||
|
Page<EbikeOrderTransaction> page = ebikeOrderTransactionService.page(pageParam.getPage(), queryWrapper);
|
||||||
|
return JsonResult.success(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,9 +104,9 @@ public class EbikeOrderTransaction implements Serializable {
|
|||||||
private LocalDateTime paymentTime;
|
private LocalDateTime paymentTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付方式:wechat/alipay/balance
|
* 支付方式:1-wechat 2-alipay 3-balance
|
||||||
*/
|
*/
|
||||||
private String paymentMethod;
|
private Integer paymentMethod;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 使用卡券ID集合(JSON数组)
|
* 使用卡券ID集合(JSON数组)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package com.cdzy.user.service;
|
package com.cdzy.user.service;
|
||||||
|
|
||||||
import com.cdzy.user.model.dto.EbikeUserCyclingDto;
|
|
||||||
import com.cdzy.user.model.entity.EbikeOrderTransaction;
|
import com.cdzy.user.model.entity.EbikeOrderTransaction;
|
||||||
|
import com.ebike.feign.model.dto.FeignOrderPaymentDto;
|
||||||
import com.mybatisflex.core.service.IService;
|
import com.mybatisflex.core.service.IService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,6 +28,18 @@ public interface EbikeOrderTransactionService extends IService<EbikeOrderTransac
|
|||||||
*/
|
*/
|
||||||
EbikeOrderTransaction checkHistoryOrder(Long userId);
|
EbikeOrderTransaction checkHistoryOrder(Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单支付
|
||||||
|
* @param orderPaymentDto 订单支付信息
|
||||||
|
*/
|
||||||
|
void payment(FeignOrderPaymentDto orderPaymentDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单发起退款
|
||||||
|
* @param orderId 订单ID
|
||||||
|
*/
|
||||||
|
void refundApply(String orderId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单退款
|
* 订单退款
|
||||||
* @param orderId 订单ID
|
* @param orderId 订单ID
|
||||||
@ -45,4 +57,11 @@ public interface EbikeOrderTransactionService extends IService<EbikeOrderTransac
|
|||||||
* @param orderId 订单ID
|
* @param orderId 订单ID
|
||||||
*/
|
*/
|
||||||
void failRefund(String orderId);
|
void failRefund(String orderId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单退款驳回
|
||||||
|
* @param orderId 订单ID
|
||||||
|
*/
|
||||||
|
void rejectRefund(String orderId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import com.cdzy.user.model.entity.EbikeOrderTransaction;
|
|||||||
import com.cdzy.user.service.EbikeOrderTransactionService;
|
import com.cdzy.user.service.EbikeOrderTransactionService;
|
||||||
import com.cdzy.user.utils.RedisUtil;
|
import com.cdzy.user.utils.RedisUtil;
|
||||||
import com.ebike.feign.clients.OperationsFeignClient;
|
import com.ebike.feign.clients.OperationsFeignClient;
|
||||||
|
import com.ebike.feign.model.dto.FeignOrderPaymentDto;
|
||||||
import com.ebike.feign.model.vo.FeignEbikeBikeInfoVo;
|
import com.ebike.feign.model.vo.FeignEbikeBikeInfoVo;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
@ -25,7 +26,7 @@ import static com.cdzy.user.model.entity.table.EbikeOrderTransactionTableDef.EBI
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class EbikeOrderTransactionServiceImpl extends ServiceImpl<EbikeOrderTransactionMapper, EbikeOrderTransaction> implements EbikeOrderTransactionService {
|
public class EbikeOrderTransactionImpl extends ServiceImpl<EbikeOrderTransactionMapper, EbikeOrderTransaction> implements EbikeOrderTransactionService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisUtil redisUtil;
|
private RedisUtil redisUtil;
|
||||||
@ -43,14 +44,14 @@ public class EbikeOrderTransactionServiceImpl extends ServiceImpl<EbikeOrderTran
|
|||||||
// public Long saveRide(EbikeUserCyclingDto orderDto) {
|
// public Long saveRide(EbikeUserCyclingDto orderDto) {
|
||||||
// Long userId = orderDto.getUserId();
|
// Long userId = orderDto.getUserId();
|
||||||
// // 校验用户当前是否存在订单
|
// // 校验用户当前是否存在订单
|
||||||
// EbikeOrderTransaction history = checkHistoryOrder(userId);
|
// EbikeOrder history = checkHistoryOrder(userId);
|
||||||
// if (history != null && history.getOrderStatus() == OrderStatus.IN_PROGRESS) {
|
// if (history != null && history.getOrderStatus() == OrderStatus.IN_PROGRESS) {
|
||||||
// throw new RuntimeException("请完成当前订单后再试");
|
// throw new RuntimeException("请完成当前订单后再试");
|
||||||
// }
|
// }
|
||||||
// if (history != null && history.getOrderStatus() == OrderStatus.PENDING_PAYMENT) {
|
// if (history != null && history.getOrderStatus() == OrderStatus.PENDING_PAYMENT) {
|
||||||
// throw new RuntimeException("请完成未支付订单后再试");
|
// throw new RuntimeException("请完成未支付订单后再试");
|
||||||
// }
|
// }
|
||||||
// EbikeOrderTransaction userOrders = new EbikeOrderTransaction();
|
// EbikeOrder userOrders = new EbikeOrder();
|
||||||
// userOrders.setUserId(userId);
|
// userOrders.setUserId(userId);
|
||||||
// userOrders.setBikeCode(orderDto.getBikeCode());
|
// userOrders.setBikeCode(orderDto.getBikeCode());
|
||||||
// userOrders.setOrderType(OrderType.ONCE);
|
// userOrders.setOrderType(OrderType.ONCE);
|
||||||
@ -96,7 +97,7 @@ public class EbikeOrderTransactionServiceImpl extends ServiceImpl<EbikeOrderTran
|
|||||||
// operationsFeignClient.riding(bikeInfoDto.getBikeId());
|
// operationsFeignClient.riding(bikeInfoDto.getBikeId());
|
||||||
// userOrders.setBikeId(bikeInfoDto.getBikeId());
|
// userOrders.setBikeId(bikeInfoDto.getBikeId());
|
||||||
// String stringBuilder = resGpsDto.getLongitude() + "," + resGpsDto.getLatitude();
|
// String stringBuilder = resGpsDto.getLongitude() + "," + resGpsDto.getLatitude();
|
||||||
// userOrders.setRidePoint(stringBuilder);
|
// userOrders.setStartLocation(stringBuilder);
|
||||||
// ebikeOrderTransactionMapper.insert(userOrders);
|
// ebikeOrderTransactionMapper.insert(userOrders);
|
||||||
// //处理车辆
|
// //处理车辆
|
||||||
// return userOrders.getOrderId();
|
// return userOrders.getOrderId();
|
||||||
@ -110,34 +111,41 @@ public class EbikeOrderTransactionServiceImpl extends ServiceImpl<EbikeOrderTran
|
|||||||
return ebikeOrderTransactionMapper.selectOneByQuery(queryWrapper);
|
return ebikeOrderTransactionMapper.selectOneByQuery(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* 从 退款申请中 更新为 退款中
|
public void payment(FeignOrderPaymentDto orderPaymentDto) {
|
||||||
*
|
EbikeOrderTransaction ebikeOrderTransaction = this.mapper.selectOneById(orderPaymentDto.getOrderId());
|
||||||
* @param orderId 订单ID
|
ebikeOrderTransaction.setOrderStatus(OrderStatus.PAID);
|
||||||
*/
|
ebikeOrderTransaction.setPaymentTime(orderPaymentDto.getPaymentTime());
|
||||||
|
ebikeOrderTransaction.setPaymentMethod(orderPaymentDto.getPaymentMethod());
|
||||||
|
this.mapper.update(ebikeOrderTransaction);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void refundApply(String orderId) {
|
||||||
|
updateOrderStatus(orderId, OrderStatus.PAID, OrderStatus.REFUND_APPLYING);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refund(String orderId) {
|
public void refund(String orderId) {
|
||||||
updateOrderStatus(orderId, OrderStatus.REFUND_APPLYING, OrderStatus.REFUNDING);
|
updateOrderStatus(orderId, OrderStatus.REFUND_APPLYING, OrderStatus.REFUNDING);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 从 退款中 更新为 已退款
|
|
||||||
* @param orderId 订单ID
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void doneRefund(String orderId) {
|
public void doneRefund(String orderId) {
|
||||||
updateOrderStatus(orderId, OrderStatus.REFUNDING, OrderStatus.REFUNDED);
|
updateOrderStatus(orderId, OrderStatus.REFUNDING, OrderStatus.REFUNDED);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 从 退款中 更新为 退款失败
|
|
||||||
* @param orderId 订单ID
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void failRefund(String orderId) {
|
public void failRefund(String orderId) {
|
||||||
updateOrderStatus(orderId, OrderStatus.REFUNDING, OrderStatus.REFUND_FAILED);
|
updateOrderStatus(orderId, OrderStatus.REFUNDING, OrderStatus.REFUND_FAILED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rejectRefund(String orderId) {
|
||||||
|
updateOrderStatus(orderId, OrderStatus.REFUND_APPLYING, OrderStatus.REFUND_REJECTED);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验车辆是否可用
|
* 校验车辆是否可用
|
||||||
*
|
*
|
||||||
@ -168,8 +176,8 @@ public class EbikeOrderTransactionServiceImpl extends ServiceImpl<EbikeOrderTran
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param orderId 订单id
|
* @param orderId 订单id
|
||||||
* @param currentStatus 当前状态
|
* @param currentStatus 订单当前状态
|
||||||
* @param targetStatus 目标状态
|
* @param targetStatus 订单目标状态
|
||||||
*/
|
*/
|
||||||
private void updateOrderStatus(String orderId, Integer currentStatus, Integer targetStatus) {
|
private void updateOrderStatus(String orderId, Integer currentStatus, Integer targetStatus) {
|
||||||
EbikeOrderTransaction order = mapper.selectOneByQuery(
|
EbikeOrderTransaction order = mapper.selectOneByQuery(
|
||||||
Loading…
x
Reference in New Issue
Block a user