| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.ruoyi.app.flashdelivery.controller;
- import com.ruoyi.app.flashdelivery.dto.*;
- import com.ruoyi.app.flashdelivery.service.FlashDeliveryApplicationService;
- import com.ruoyi.common.annotation.Anonymous;
- import com.ruoyi.common.core.controller.BaseController;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.system.utils.Auth;
- import com.ruoyi.system.utils.JwtUtil;
- import org.springframework.web.bind.annotation.*;
- /** 用户端闪送接口;用户身份始终从请求头 token 解析。 */
- @RestController
- @RequestMapping("/system/flashDelivery")
- @Anonymous
- public class FlashDeliveryUserController extends BaseController {
- private final FlashDeliveryApplicationService service;
- public FlashDeliveryUserController(FlashDeliveryApplicationService service) { this.service = service; }
- /** 获取当前启用的服务类型和公开计价摘要。 */
- @GetMapping("/home")
- @Auth
- public AjaxResult home(@RequestHeader String token) { return success(service.home()); }
- /** 根据取送坐标获取服务端实时报价。 */
- @PostMapping("/quote")
- @Auth
- public AjaxResult quote(@RequestHeader String token, @RequestBody FlashDeliveryQuoteRequest request) {
- userId(token);
- return success(service.quote(request));
- }
- /** 幂等创建闪送订单,客户端不能指定用户、距离或金额。 */
- @PostMapping("/orders")
- @Auth
- public AjaxResult create(@RequestHeader String token, @RequestBody FlashDeliveryCreateRequest request) {
- return success(service.create(userId(token), request));
- }
- /** 分页查询当前用户自己的闪送订单。 */
- @GetMapping("/orders")
- @Auth
- public AjaxResult orders(@RequestHeader String token,
- @RequestParam(defaultValue = "1") int pageNum,
- @RequestParam(defaultValue = "10") int pageSize,
- @RequestParam(required = false) String status,
- @RequestParam(required = false) String scene,
- @RequestParam(required = false) String serviceType) {
- return success(service.userOrders(userId(token), pageNum, pageSize, status, scene, serviceType));
- }
- /** 查询本人订单详情、履约图片和状态日志。 */
- @GetMapping("/orders/{id}")
- @Auth
- public AjaxResult detail(@RequestHeader String token, @PathVariable Long id) {
- return success(service.userDetail(userId(token), id));
- }
- /** 在待接单或已接单阶段取消本人订单。 */
- @PostMapping("/orders/{id}/cancel")
- @Auth
- public AjaxResult cancel(@RequestHeader String token, @PathVariable Long id,
- @RequestBody FlashDeliveryReasonRequest request) {
- service.userCancel(userId(token), id, request);
- return success();
- }
- /** 用户确认已经收到物品,将已送达订单置为已完成。 */
- @PostMapping("/orders/{id}/confirmReceipt")
- @Auth
- public AjaxResult confirmReceipt(@RequestHeader String token, @PathVariable Long id) {
- service.confirmReceipt(userId(token), id);
- return success();
- }
- private Long userId(String token) { return Long.valueOf(new JwtUtil().getusid(token)); }
- }
|