From 7eebfc8a64d2cbbd73453a2b653d5a5bfd66a32f Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 16 四月 2026 20:10:44 +0800
Subject: [PATCH] 代码生成

---
 server/web/src/main/java/com/doumee/api/web/OrdersApi.java |  218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 218 insertions(+), 0 deletions(-)

diff --git a/server/web/src/main/java/com/doumee/api/web/OrdersApi.java b/server/web/src/main/java/com/doumee/api/web/OrdersApi.java
new file mode 100644
index 0000000..5292cb9
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/OrdersApi.java
@@ -0,0 +1,218 @@
+package com.doumee.api.web;
+
+import com.doumee.core.annotation.LoginRequired;
+import com.doumee.core.annotation.LoginShopRequired;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.dto.CancelOrderDTO;
+import com.doumee.dao.dto.CommentOrderDTO;
+import com.doumee.dao.dto.ConfirmArriveDTO;
+import com.doumee.dao.dto.CreateOrderDTO;
+import com.doumee.dao.dto.DriverVerifyDTO;
+import com.doumee.dao.dto.ShopVerifyDTO;
+import com.doumee.dao.dto.StoreOutDTO;
+import com.doumee.dao.dto.MyOrderDTO;
+import com.doumee.dao.vo.MyOrderDetailVO;
+import com.doumee.dao.vo.MyOrderVO;
+import com.doumee.dao.vo.OverdueFeeVO;
+import com.doumee.dao.vo.PayResponse;
+import com.doumee.service.business.OrdersService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * 璁㈠崟鎺ュ彛
+ *
+ * @Author : Rk
+ * @create 2025/7/15 15:49
+ */
+@Api(tags = "璁㈠崟鎺ュ彛")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/web/order")
+@Slf4j
+public class OrdersApi extends ApiController {
+
+    @Autowired
+    private OrdersService ordersService;
+
+    @Autowired
+    private RedisTemplate<String, Object> redisTemplate;
+
+    @LoginRequired
+    @ApiOperation(value = "鍒涘缓璁㈠崟", notes = "鍒涘缓灏卞湴/寮傚湴瀵勫瓨璁㈠崟锛岃繑鍥炲井淇℃敮浠樺弬鏁�")
+    @PostMapping("/create")
+    public ApiResponse<PayResponse> createOrder(@RequestBody @Valid CreateOrderDTO dto) {
+        PayResponse payResponse = ordersService.createOrder(dto, getMemberId());
+        if (Objects.nonNull(payResponse) && StringUtils.isNotBlank(payResponse.getLockKey())) {
+            redisTemplate.delete(payResponse.getLockKey());
+        }
+        return ApiResponse.success("鎿嶄綔鎴愬姛", payResponse);
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "缁х画鏀粯", notes = "寰呮敮浠樿鍗曢噸鏂板敜璧峰井淇℃敮浠�")
+    @PostMapping("/continuePay/{orderId}")
+    public ApiResponse<PayResponse> continuePay(@PathVariable Integer orderId) {
+        return ApiResponse.success("鎿嶄綔鎴愬姛", ordersService.continuePay(orderId, getMemberId()));
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "浼氬憳璁㈠崟鍒嗛〉", notes = "灏忕▼搴忕锛屾寜鐘舵�佺瓫閫�")
+    @PostMapping("/myPage")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+    })
+    public ApiResponse<PageData<MyOrderVO>> myPage(@RequestBody @Validated PageWrap<MyOrderDTO> pageWrap) {
+        return ApiResponse.success("鏌ヨ鎴愬姛", ordersService.findMyOrderPage(pageWrap, getMemberId()));
+    }
+
+    @LoginShopRequired
+    @ApiOperation(value = "闂ㄥ簵璁㈠崟鍒嗛〉", notes = "闂ㄥ簵绔紝鏌ヨ瀛樹欢/鍙栦欢闂ㄥ簵涓哄綋鍓嶉棬搴楃殑璁㈠崟")
+    @PostMapping("/shopPage")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "闂ㄥ簵token鍊�", required = true)
+    })
+    public ApiResponse<PageData<MyOrderVO>> shopPage(@RequestBody @Validated PageWrap<MyOrderDTO> pageWrap) {
+        return ApiResponse.success("鏌ヨ鎴愬姛", ordersService.findShopOrderPage(pageWrap, getShopId()));
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "浼氬憳璁㈠崟璇︽儏", notes = "灏忕▼搴忕锛屾煡璇㈠綋鍓嶄細鍛樼殑璁㈠崟璇︽儏")
+    @GetMapping("/detail/{orderId}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "orderId", value = "璁㈠崟涓婚敭", required = true),
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse<MyOrderDetailVO> detail(@PathVariable Integer orderId) {
+        return ApiResponse.success("鏌ヨ鎴愬姛", ordersService.findMyOrderDetail(orderId, getMemberId()));
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "浼氬憳鍙栨秷璁㈠崟", notes = "浠呭紓鍦板瘎瀛樿鍗曞彲鍙栨秷")
+    @PostMapping("/cancel")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse cancel(@RequestBody @Validated CancelOrderDTO dto) {
+        ordersService.cancelOrder(dto.getOrderId(), getMemberId(), dto.getCancelReason());
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "鏌ヨ瓒呮椂璐圭敤", notes = "鏌ヨ璁㈠崟閫炬湡澶╂暟鍜岄�炬湡璐圭敤")
+    @GetMapping("/overdueFee/{orderId}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "orderId", value = "璁㈠崟涓婚敭", required = true),
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse<OverdueFeeVO> overdueFee(@PathVariable Integer orderId) {
+        return ApiResponse.success("鏌ヨ鎴愬姛", ordersService.calculateOverdueFee(orderId));
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "閫炬湡璐圭敤鏀粯", notes = "閫炬湡璁㈠崟鍞よ捣寰俊鏀粯")
+    @PostMapping("/payOverdueFee/{orderId}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "orderId", value = "璁㈠崟涓婚敭", required = true),
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse<PayResponse> payOverdueFee(@PathVariable Integer orderId) {
+        return ApiResponse.success("鎿嶄綔鎴愬姛", ordersService.payOverdueFee(orderId, getMemberId()));
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "浼氬憳鍒犻櫎璁㈠崟", notes = "浠呭凡瀹屾垚/宸插彇娑�/宸查��娆捐鍗曞彲鍒犻櫎锛岄�昏緫鍒犻櫎")
+    @PostMapping("/delete/{orderId}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "orderId", value = "璁㈠崟涓婚敭", required = true),
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse deleteOrder(@PathVariable Integer orderId) {
+        ordersService.deleteMyOrder(orderId, getMemberId());
+        return ApiResponse.success("鍒犻櫎鎴愬姛");
+    }
+
+    @LoginShopRequired
+    @ApiOperation(value = "闂ㄥ簵鏍搁攢鏀朵欢", notes = "闂ㄥ簵閫氳繃鏍搁攢鐮佺‘璁ゆ敹浠�/鍙栦欢")
+    @PostMapping("/shopVerify")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "闂ㄥ簵token鍊�", required = true)
+    })
+    public ApiResponse shopVerify(@RequestBody @Validated ShopVerifyDTO dto) {
+        ordersService.shopVerifyOrder(dto.getVerifyCode(), getShopId(), dto.getImages(), dto.getRemark());
+        return ApiResponse.success("鏍搁攢鎴愬姛");
+    }
+
+    @LoginShopRequired
+    @ApiOperation(value = "鏍搁攢鍙告満鐮�", notes = "寮傚湴瀵勫瓨涓旀湁鍙栦欢闂ㄥ簵鐨勮鍗曪紝閫氳繃鍙告満鏍搁攢鐮佺‘璁ゅ埌搴�")
+    @PostMapping("/driverVerify")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse driverVerify(@RequestBody @Validated DriverVerifyDTO dto) {
+        ordersService.driverVerifyOrder(dto.getVerifyCode(), dto.getImages(), dto.getRemark(), getShopId());
+        return ApiResponse.success("鏍搁攢鎴愬姛");
+    }
+
+    @LoginShopRequired
+    @ApiOperation(value = "闂ㄥ簵璁㈠崟璇︽儏", notes = "闂ㄥ簵绔煡璇㈣鍗曡鎯咃紝鏀寔璁㈠崟涓婚敭鎴栨牳閿�鐮佹煡璇�")
+    @GetMapping("/shopDetail")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "闂ㄥ簵token鍊�", required = true),
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "orderId", value = "璁㈠崟涓婚敭"),
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "verifyCode", value = "鏍搁攢鐮�")
+    })
+    public ApiResponse<MyOrderDetailVO> shopDetail(@RequestParam(required = false) Integer orderId,
+                                                    @RequestParam(required = false) String verifyCode) {
+        return ApiResponse.success("鏌ヨ鎴愬姛", ordersService.findShopOrderDetail(orderId, verifyCode));
+    }
+
+    @LoginShopRequired
+    @ApiOperation(value = "闂ㄥ簵纭鍑哄簱", notes = "鍙栦欢闂ㄥ簵纭鍑哄簱锛岃鍗曞畬鎴�")
+    @PostMapping("/storeOut")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "闂ㄥ簵token鍊�", required = true)
+    })
+    public ApiResponse storeOut(@RequestBody @Validated StoreOutDTO dto) {
+        ordersService.confirmStoreOut(dto.getOrderId(), getShopId(), dto.getImages(), dto.getRemark());
+        return ApiResponse.success("鍑哄簱鎴愬姛");
+    }
+
+    @LoginShopRequired
+    @ApiOperation(value = "纭椤惧鍒板簵", notes = "闂ㄥ簵纭椤惧宸插埌搴楀彇浠讹紝妫�鏌ラ�炬湡/閫�娆�")
+    @PostMapping("/confirmArrived")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "闂ㄥ簵token鍊�", required = true)
+    })
+    public ApiResponse confirmArrived(@RequestBody @Validated ConfirmArriveDTO dto) {
+        ordersService.confirmCustomerArrived(dto.getOrderId(), getShopId());
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "璁㈠崟璇勪环", notes = "宸插畬鎴愪笖鏈瘎浠风殑璁㈠崟鍙繘琛岃瘎浠�")
+    @PostMapping("/comment")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse comment(@RequestBody @Validated CommentOrderDTO dto) {
+        ordersService.commentOrder(dto, getMemberId());
+        return ApiResponse.success("璇勪环鎴愬姛");
+    }
+
+
+}

--
Gitblit v1.9.3