package com.zsElectric.boot.business.controller.applet; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zsElectric.boot.business.model.entity.RechargeLevel; import com.zsElectric.boot.business.model.form.applet.LevelOrderForm; import com.zsElectric.boot.business.model.form.applet.UserPayForm; import com.zsElectric.boot.business.service.RechargeLevelService; import com.zsElectric.boot.business.service.UserOrderInfoService; import com.zsElectric.boot.common.annotation.RepeatSubmit; import com.zsElectric.boot.common.constant.SystemConstants; import com.zsElectric.boot.core.web.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; import java.util.Map; @Tag(name = "订单相关接口") @Slf4j @RestController @RequestMapping("/applet/v1/order") @RequiredArgsConstructor public class AppletOrderController { private final RechargeLevelService rechargeLevelService; private final UserOrderInfoService userOrderInfoService; /** * 获取充电档位 * * @return */ @Operation(summary = "获取充电档位") @GetMapping("/getReChargeLevel") public Result> getReChargeLevel() { List list = rechargeLevelService.list(Wrappers.lambdaQuery(RechargeLevel.class).eq(RechargeLevel::getStatus, SystemConstants.STATUS_ONE)); return Result.success(list); } /** * 创建订单 * * @param levelOrderForm * @return */ @Operation(summary = "创建订单") @PostMapping("/createOrder") public Result createOrder(@RequestBody LevelOrderForm levelOrderForm) { UserPayForm payForm = userOrderInfoService.createOrder(levelOrderForm); return Result.success(payForm); } /** * 订单-支付 * * @param orderId * @return */ @Operation(summary = "订单-支付") @PutMapping("/payOrder/{orderId}") public Result payOrder(@PathVariable("orderId") String orderId) { return Result.success(userOrderInfoService.payOrder(orderId)); } /** * 支付回调 * * @param request * @return */ @Operation(summary = "支付回调") @RequestMapping("/wechatPayNotify") public Map wechatPayNotify(HttpServletRequest request, HttpServletResponse response) throws InterruptedException { log.info("--------------------------------------------支付回调"); return userOrderInfoService.wechatPayNotify(request, response); } /** * 订单支付是否成功查询 * * @param orderNo * @return */ @Operation(summary = "订单支付是否成功查询") @GetMapping("/orderQuery/{orderNo}") public Result orderQuery(@PathVariable("orderNo") String orderNo) throws IOException { return Result.success(userOrderInfoService.orderQuery(orderNo)); } }