From 53c315297a3906e567b01107a85836528a664206 Mon Sep 17 00:00:00 2001 From: seatonwan9 Date: 星期二, 19 八月 2025 18:11:38 +0800 Subject: [PATCH] 产品订购sql --- src/main/java/com/webmanage/controller/OrderController.java | 27 +++++++++++++++++++++++---- 1 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/webmanage/controller/OrderController.java b/src/main/java/com/webmanage/controller/OrderController.java index 6680838..d2d30e7 100644 --- a/src/main/java/com/webmanage/controller/OrderController.java +++ b/src/main/java/com/webmanage/controller/OrderController.java @@ -3,7 +3,9 @@ import com.webmanage.common.Result; import com.webmanage.dto.CreateOrderDTO; import com.webmanage.dto.OrderQueryDTO; +import com.webmanage.entity.OrderInfo; import com.webmanage.service.OrderInfoService; +import com.webmanage.service.TokenService; import com.webmanage.service.OrderNoService; import com.webmanage.vo.OrderDetailVO; import io.swagger.annotations.Api; @@ -29,6 +31,7 @@ public class OrderController { @Resource private OrderInfoService orderInfoService; @Resource private OrderNoService orderNoService; + @Resource private TokenService tokenService; @PostMapping("/buyer/page") @ApiOperation("鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃") @@ -38,17 +41,33 @@ } @PostMapping("/create") - @ApiOperation("鍒涘缓璁㈠崟锛堝寘鍚鍗曡鎯咃級") - public Result<Object> createOrder(@Valid @RequestBody CreateOrderDTO createOrderDTO) { + @ApiOperation("鍒涘缓璁㈠崟锛堝寘鍚鍗曡鎯咃級锛岄渶鍦� Header 鎼哄甫 Idempotency-Token 闃查噸澶嶆彁浜�") + public Result<OrderInfo> createOrder(@RequestHeader(value = "Idempotency-Token", required = false) String token, + @Valid @RequestBody CreateOrderDTO createOrderDTO) { try { - String orderId = orderInfoService.createOrder(createOrderDTO); - return Result.success(orderId); + if (!tokenService.verifyAndConsume(token)) { + return Result.error("璇锋眰鏃犳晥鎴栭噸澶嶆彁浜わ紝璇峰埛鏂伴〉闈㈠悗閲嶈瘯"); + } + OrderInfo orderInfo = orderInfoService.createOrder(createOrderDTO); + return Result.success(orderInfo); } catch (Exception e) { log.error("鍒涘缓璁㈠崟澶辫触", e); return Result.error("鍒涘缓璁㈠崟澶辫触锛�" + e.getMessage()); } } + @GetMapping("/idempotency/token") + @ApiOperation("鑾峰彇涓�娆℃�ч槻閲嶅鎻愪氦 Token") + public Result<Object> getIdempotencyToken(@RequestParam(required = false) Long userId) { + try { + String token = tokenService.generateToken(userId); + return Result.success("token鐢熸垚",token); + } catch (Exception e) { + log.error("鐢熸垚闃查噸澶嶆彁浜� Token 澶辫触", e); + return Result.error("鐢熸垚闃查噸澶嶆彁浜� Token 澶辫触锛�" + e.getMessage()); + } + } + @GetMapping("/no/new") @ApiOperation("鐢熸垚鍞竴璁㈠崟鍙�") public Result<Object> generateOrderNo() { -- Gitblit v1.8.0