package com.doumee.api.business; import com.doumee.api.BaseController; import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Orders; import com.doumee.dao.dto.ConfirmArriveDTO; import com.doumee.dao.dto.DispatchDTO; import com.doumee.dao.vo.OrderDetailVO; import com.doumee.dao.vo.OrderDispatchVO; import com.doumee.dao.vo.OrderSummaryVO; import com.doumee.service.business.OrdersService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * 寄存订单管理 * @author rk * @date 2026/04/10 */ @Api(tags = "寄存订单") @RestController @RequestMapping("/business/orders") public class OrdersController extends BaseController { @Autowired private OrdersService ordersService; @ApiOperation("根据ID删除") @GetMapping("/delete/{id}") @RequiresPermissions("business:orders:delete") public ApiResponse deleteById(@PathVariable Integer id) { ordersService.deleteById(id); return ApiResponse.success(null); } @ApiOperation("批量删除") @GetMapping("/delete/batch") @RequiresPermissions("business:orders:delete") public ApiResponse deleteByIdInBatch(@RequestParam String ids) { String[] idArray = ids.split(","); List idList = new ArrayList<>(); for (String id : idArray) { idList.add(Integer.valueOf(id)); } ordersService.deleteByIdInBatch(idList); return ApiResponse.success(null); } @ApiOperation("根据ID修改") @PostMapping("/updateById") @RequiresPermissions("business:orders:update") public ApiResponse updateById(@RequestBody Orders orders) { ordersService.updateById(orders); return ApiResponse.success(null); } @ApiOperation("分页查询") @PostMapping("/page") @RequiresPermissions("business:orders:query") public ApiResponse> findPage(@RequestBody PageWrap pageWrap) { return ApiResponse.success(ordersService.findPage(pageWrap)); } @ApiOperation("订单汇总统计") @PostMapping("/summary") @RequiresPermissions("business:orders:query") public ApiResponse findSummary(@RequestBody PageWrap pageWrap) { return ApiResponse.success(ordersService.findSummary(pageWrap)); } @ApiOperation("导出Excel") @PostMapping("/exportExcel") @RequiresPermissions("business:orders:exportExcel") public void exportExcel(@RequestBody PageWrap pageWrap, HttpServletResponse response) { ExcelExporter.build(Orders.class).export(ordersService.findPage(pageWrap).getRecords(), "寄存订单", response); } @ApiOperation("根据ID查询") @GetMapping("/{id}") @RequiresPermissions("business:orders:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(ordersService.findById(id)); } @ApiOperation("订单详情") @GetMapping("/detail/{id}") @RequiresPermissions("business:orders:query") public ApiResponse findDetail(@PathVariable Integer id) { return ApiResponse.success(ordersService.findDetail(id)); } @ApiOperation("手动派单信息") @GetMapping("/dispatch/{id}") @RequiresPermissions("business:orders:query") public ApiResponse findDispatchInfo(@PathVariable Integer id) { return ApiResponse.success(ordersService.findDispatchInfo(id)); } @ApiOperation("订单派单") @PostMapping("/dispatch") @RequiresPermissions("business:orders:update") public ApiResponse dispatch(@RequestBody DispatchDTO dto) { ordersService.dispatch(dto); return ApiResponse.success(null); } @ApiOperation("确认顾客到店") @PostMapping("/confirmArrived") @RequiresPermissions("business:orders:update") public ApiResponse confirmArrived(@RequestBody ConfirmArriveDTO dto) { ordersService.confirmCustomerArrived(dto.getOrderId(), dto.getShopId()); return ApiResponse.success(null); } @ApiOperation("手动触发订单结算") @PostMapping("/settle") @RequiresPermissions("business:orders:update") public ApiResponse settleOrders() { ordersService.settleOrders(); return ApiResponse.success("结算完成"); } }