|
|
@@ -55,6 +55,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "获取购物车", notes = "根据桌号ID获取购物车信息")
|
|
|
@GetMapping("/cart/{tableId}")
|
|
|
public R<CartDTO> getCart(@ApiParam(value = "桌号ID", required = true) @PathVariable Integer tableId) {
|
|
|
+ log.info("StoreOrderController.getCart?tableId={}", tableId);
|
|
|
try {
|
|
|
// 验证 token
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -71,6 +72,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "添加商品到购物车", notes = "添加商品到购物车,并推送SSE和WebSocket消息")
|
|
|
@PostMapping("/cart/add")
|
|
|
public R<CartDTO> addCartItem(@Valid @RequestBody AddCartItemDTO dto) {
|
|
|
+ log.info("StoreOrderController.addCartItem?dto={}", dto);
|
|
|
try {
|
|
|
// 验证 token(用户信息在 CartService 中从 token 获取)
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -94,6 +96,7 @@ public class StoreOrderController {
|
|
|
@ApiParam(value = "桌号ID", required = true) @RequestParam Integer tableId,
|
|
|
@ApiParam(value = "菜品ID", required = true) @RequestParam Integer cuisineId,
|
|
|
@ApiParam(value = "数量", required = true) @RequestParam Integer quantity) {
|
|
|
+ log.info("StoreOrderController.updateCartItem?tableId={}, cuisineId={}, quantity={}", tableId, cuisineId, quantity);
|
|
|
try {
|
|
|
// 验证 token
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -116,6 +119,7 @@ public class StoreOrderController {
|
|
|
public R<CartDTO> removeCartItem(
|
|
|
@ApiParam(value = "桌号ID", required = true) @RequestParam Integer tableId,
|
|
|
@ApiParam(value = "菜品ID", required = true) @RequestParam Integer cuisineId) {
|
|
|
+ log.info("StoreOrderController.removeCartItem?tableId={}, cuisineId={}", tableId, cuisineId);
|
|
|
try {
|
|
|
// 验证 token
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -137,6 +141,7 @@ public class StoreOrderController {
|
|
|
@DeleteMapping("/cart/clear")
|
|
|
public R<CartDTO> clearCart(
|
|
|
@ApiParam(value = "桌号ID", required = true) @RequestParam Integer tableId) {
|
|
|
+ log.info("StoreOrderController.clearCart?tableId={}", tableId);
|
|
|
try {
|
|
|
// 验证 token
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -166,6 +171,7 @@ public class StoreOrderController {
|
|
|
public R<CartDTO> setDinerCount(
|
|
|
@ApiParam(value = "桌号ID", required = true) @RequestParam Integer tableId,
|
|
|
@ApiParam(value = "用餐人数", required = true) @RequestParam Integer dinerCount) {
|
|
|
+ log.info("StoreOrderController.setDinerCount?tableId={}, dinerCount={}", tableId, dinerCount);
|
|
|
try {
|
|
|
// 验证 token
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -191,6 +197,7 @@ public class StoreOrderController {
|
|
|
public R<CartDTO> updateTablewareQuantity(
|
|
|
@ApiParam(value = "桌号ID", required = true) @RequestParam Integer tableId,
|
|
|
@ApiParam(value = "餐具数量", required = true) @RequestParam Integer quantity) {
|
|
|
+ log.info("StoreOrderController.updateTablewareQuantity?tableId={}, quantity={}", tableId, quantity);
|
|
|
try {
|
|
|
// 验证 token
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -214,6 +221,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "创建订单(下单)", notes = "从购物车创建订单,不立即支付")
|
|
|
@PostMapping("/create")
|
|
|
public R<shop.alien.entity.store.vo.OrderSuccessVO> createOrder(@Valid @RequestBody CreateOrderDTO dto) {
|
|
|
+ log.info("StoreOrderController.createOrder?dto={}", dto);
|
|
|
try {
|
|
|
// 验证 token(用户信息在 StoreOrderService 中从 token 获取)
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -252,6 +260,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "加餐", notes = "在已有订单基础上添加菜品")
|
|
|
@PostMapping("/add-dish")
|
|
|
public R<StoreOrder> addDishToOrder(@Valid @RequestBody shop.alien.entity.store.dto.AddDishDTO dto) {
|
|
|
+ log.info("StoreOrderController.addDishToOrder?dto={}", dto);
|
|
|
try {
|
|
|
// 验证 token(用户信息在 StoreOrderService 中从 token 获取)
|
|
|
if (!TokenUtil.hasValidToken()) {
|
|
|
@@ -270,6 +279,7 @@ public class StoreOrderController {
|
|
|
public R<Object> payOrder(
|
|
|
@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId,
|
|
|
@ApiParam(value = "支付方式(1:微信, 2:支付宝, 3:现金)", required = true) @RequestParam Integer payType) {
|
|
|
+ log.info("StoreOrderController.payOrder?orderId={}, payType={}", orderId, payType);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -308,6 +318,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "取消订单", notes = "取消订单")
|
|
|
@PostMapping("/cancel/{orderId}")
|
|
|
public R<Boolean> cancelOrder(@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId) {
|
|
|
+ log.info("StoreOrderController.cancelOrder?orderId={}", orderId);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -325,6 +336,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "查询订单详情", notes = "根据订单ID查询订单详情,包含订单基本信息和按批次分组的变更记录,用于展示每次下单/加餐都加了什么商品")
|
|
|
@GetMapping("/detail/{orderId}")
|
|
|
public R<OrderDetailWithChangeLogVO> getOrderDetail(@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId) {
|
|
|
+ log.info("StoreOrderController.getOrderDetail?orderId={}", orderId);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -342,6 +354,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "查询订单明细", notes = "根据订单ID查询订单明细列表")
|
|
|
@GetMapping("/detail/list/{orderId}")
|
|
|
public R<List<StoreOrderDetail>> getOrderDetailList(@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId) {
|
|
|
+ log.info("StoreOrderController.getOrderDetailList?orderId={}", orderId);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -364,6 +377,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "查询订单信息", notes = "根据订单ID查询订单完整信息(包含订单基本信息、菜品清单、价格明细)")
|
|
|
@GetMapping("/info/{orderId}")
|
|
|
public R<OrderInfoVO> getOrderInfo(@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId) {
|
|
|
+ log.info("StoreOrderController.getOrderInfo?orderId={}", orderId);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -381,6 +395,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "查询订单变更记录", notes = "根据订单ID查询订单的所有变更记录(按批次分组),用于展示每次下单/加餐都加了什么商品")
|
|
|
@GetMapping("/change-log/{orderId}")
|
|
|
public R<List<OrderChangeLogBatchVO>> getOrderChangeLogs(@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId) {
|
|
|
+ log.info("StoreOrderController.getOrderChangeLogs?orderId={}", orderId);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -405,6 +420,7 @@ public class StoreOrderController {
|
|
|
@ApiParam(value = "桌号ID") @RequestParam(required = false) Integer tableId,
|
|
|
@ApiParam(value = "订单状态") @RequestParam(required = false) Integer orderStatus,
|
|
|
@ApiParam(value = "搜索关键词(订单编号或菜品名称,限15字)") @RequestParam(required = false) String keyword) {
|
|
|
+ log.info("StoreOrderController.getOrderPage?current={}, size={}, storeId={}, tableId={}, orderStatus={}, keyword={}", current, size, storeId, tableId, orderStatus, keyword);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -426,6 +442,7 @@ public class StoreOrderController {
|
|
|
@ApiParam(value = "页码", required = true) @RequestParam(defaultValue = "1") Long current,
|
|
|
@ApiParam(value = "每页数量", required = true) @RequestParam(defaultValue = "10") Long size,
|
|
|
@ApiParam(value = "订单类型(0或unpaid:未支付订单, 1或history:历史订单)", required = true) @RequestParam String type) {
|
|
|
+ log.info("StoreOrderController.getMyOrders?current={}, size={}, type={}", current, size, type);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -444,6 +461,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "换桌", notes = "换桌并迁移购物车、未完成的订单以及其他关联表数据")
|
|
|
@PostMapping("/change-table")
|
|
|
public R<CartDTO> changeTable(@Valid @RequestBody ChangeTableDTO dto) {
|
|
|
+ log.info("StoreOrderController.changeTable?dto={}", dto);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -476,6 +494,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "完成订单", notes = "完成订单,将已支付状态的订单改为已完成状态。订单状态:0-待支付,1-已支付,3-已完成。只有已支付状态的订单才能完成")
|
|
|
@PostMapping("/complete/{orderId}")
|
|
|
public R<Boolean> completeOrder(@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId) {
|
|
|
+ log.info("StoreOrderController.completeOrder?orderId={}", orderId);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -493,6 +512,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "商家手动完成订单", notes = "供商家使用,手动点击完成订单。不校验订单是否处于已支付状态,直接将订单状态改为已完成。订单状态:0-待支付,1-已支付,2-已取消,3-已完成")
|
|
|
@PostMapping("/complete-by-merchant/{orderId}")
|
|
|
public R<Boolean> completeOrderByMerchant(@ApiParam(value = "订单ID", required = true) @PathVariable Integer orderId) {
|
|
|
+ log.info("StoreOrderController.completeOrderByMerchant?orderId={}", orderId);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -510,6 +530,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "更新订单优惠券", notes = "重新选择优惠券")
|
|
|
@PostMapping("/update-coupon")
|
|
|
public R<StoreOrder> updateOrderCoupon(@Valid @RequestBody shop.alien.entity.store.dto.UpdateOrderCouponDTO dto) {
|
|
|
+ log.info("StoreOrderController.updateOrderCoupon?dto={}", dto);
|
|
|
try {
|
|
|
// 从 token 获取用户信息
|
|
|
Integer userId = TokenUtil.getCurrentUserId();
|
|
|
@@ -527,6 +548,7 @@ public class StoreOrderController {
|
|
|
@ApiOperation(value = "管理员重置餐桌", notes = "管理员重置餐桌:删除购物车数据、未支付/已取消的订单数据,并重置餐桌表初始化。已支付/已完成的订单会被保留,避免数据丢失")
|
|
|
@PostMapping("/admin/reset-table/{tableId}")
|
|
|
public R<Boolean> resetTable(@ApiParam(value = "餐桌ID", required = true) @PathVariable Integer tableId) {
|
|
|
+ log.info("StoreOrderController.resetTable?tableId={}", tableId);
|
|
|
try {
|
|
|
// TODO: 这里可以添加管理员权限验证
|
|
|
// if (!isAdmin(userId)) {
|