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.user.model.entity.EbikeOrder; import com.cdzy.user.service.EbikeOrderService; 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.validation.constraints.NotBlank; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Objects; import static com.cdzy.user.model.entity.table.EbikeOrderTableDef.EBIKE_ORDER; /** * 用户订单 控制层 * * @author: yanglei * @since: 2025-10-15 17:15 */ @RestController @RequestMapping("/ebikeOrder") public class EbikeOrderController { @Resource private EbikeOrderService ebikeOrderTransactionService; /** * 开始骑行(生成订单、开锁) * * @param orderDto 骑行信息 * @ {@code 200} 添加成功,{@code 500} 添加失败 */ // @PostMapping("saveRide") // public JsonResult saveRide(@RequestBody @Validated EbikeUserCyclingDto orderDto) { // Long orderId = ebikeOrderTransactionService.saveRide(orderDto); // return JsonResult.success(orderId); // } /** * 查看用户是否有未完成订单。 * * @param userId 用户id * @ {@code 200} 添加成功,{@code 500} 添加失败 */ @GetMapping("checkHistoryOrder") public JsonResult checkHistoryOrder(@Validated @NotBlank(message = "用户id不能为空") @RequestParam("userId") Long userId) { EbikeOrder userOrders = ebikeOrderTransactionService.checkHistoryOrder(userId); 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") Long orderId) { ebikeOrderTransactionService.refundApply(orderId); return JsonResult.success(); } /** * 订单退款。 * * @param orderId 订单ID * @ {@code 200} 添加成功,{@code 500} 添加失败 */ @GetMapping("refund") public JsonResult refund(@RequestParam("orderId") Long orderId) { ebikeOrderTransactionService.refund(orderId); return JsonResult.success(); } /** * 订单退款完成。 * * @param orderId 订单ID * @ {@code 200} 添加成功,{@code 500} 添加失败 */ @GetMapping("doneRefund") public JsonResult doneRefund(@RequestParam("orderId") Long orderId) { ebikeOrderTransactionService.doneRefund(orderId); return JsonResult.success(); } /** * 订单退款失败。 * * @param orderId 订单ID * @ {@code 200} 添加成功,{@code 500} 添加失败 */ @GetMapping("failRefund") public JsonResult failRefund(@RequestParam("orderId") Long orderId) { ebikeOrderTransactionService.failRefund(orderId); return JsonResult.success(); } /** * 订单退款驳回。 * * @param orderId 订单ID * @ {@code 200} 添加成功,{@code 500} 添加失败 */ @GetMapping("rejectRefund") public JsonResult rejectRefund(@RequestParam("orderId") Long orderId) { ebikeOrderTransactionService.rejectRefund(orderId); return JsonResult.success(); } /** * 根据用户订单表主键获取详细信。 * * @param transactionId 用户订单表主键 * @ 用户订单表详情 */ @GetMapping("getInfo/{transactionId}") public JsonResult getInfo(@PathVariable("transactionId") Long transactionId) { EbikeOrder 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.USER_ID.eq(userId)) .where(EBIKE_ORDER.ORDER_STATUS.eq(orderStatus, Objects.nonNull(orderStatus))) .orderBy(EBIKE_ORDER.CREATE_TIME, Boolean.TRUE); Page page = ebikeOrderTransactionService.page(pageParam.getPage(), queryWrapper); return JsonResult.success(page); } }