diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopCouponController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopCouponController.java index 3c7e65fd..93877760 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopCouponController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopCouponController.java @@ -4,6 +4,7 @@ import com.czg.account.entity.ShopActivateCouponRecord; import com.czg.account.service.ShopCouponService; import com.czg.account.vo.UserCouponVo; import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; import com.mybatisflex.core.paginate.Page; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; @@ -30,10 +31,9 @@ public class UserShopCouponController { */ @GetMapping("/findByUserId") public CzgResult> findByUserId( - @RequestParam Long userId, @RequestParam(required = false) Integer status, @RequestParam(required = false) Long shopId) { - return CzgResult.success(couponService.find(userId, shopId, status)); + return CzgResult.success(couponService.find(StpKit.USER.getLoginIdAsLong(), shopId, status)); } /** diff --git a/cash-api/order-server/src/main/java/com/czg/controller/admin/AdminOrderController.java b/cash-api/order-server/src/main/java/com/czg/controller/admin/AdminOrderController.java index 38d8c9cb..86d41fb6 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/admin/AdminOrderController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/admin/AdminOrderController.java @@ -16,6 +16,8 @@ import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Map; + /** * 订单管理 @@ -41,6 +43,11 @@ public class AdminOrderController { return CzgResult.success(orderInfoService.getOrderByPage(queryDTO)); } + @GetMapping("/getOrderById") + public CzgResult getOrderById(Long orderId) { + return orderInfoService.getOrderDetails(orderId); + } + @GetMapping("/historyOrder") public CzgResult historyOrder( @RequestParam(required = false) Long orderId, @@ -59,7 +66,7 @@ public class AdminOrderController { /** * 订单全额退款 只传订单id - * 部分退款 传参refundDetailMap {"详情id":"数量","详情id":"数量"} + * 部分退款 传参refundDetail */ @PostMapping("/refundOrder") public CzgResult refundOrder(@Validated @RequestBody OrderInfoRefundDTO refundDTO) { diff --git a/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java b/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java index 3111e884..095c8e75 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/user/UserOrderController.java @@ -14,6 +14,8 @@ import com.mybatisflex.core.paginate.Page; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; +import java.util.Map; + /** * 订单管理 @@ -38,6 +40,11 @@ public class UserOrderController { return CzgResult.success(orderInfoService.getOrderByPage(queryDTO)); } + @GetMapping("/getOrderById") + public CzgResult getOrderById(Long orderId) { + return orderInfoService.getOrderDetails(orderId); + } + @GetMapping("/historyOrder") public CzgResult historyOrder( @RequestParam(required = false) Long orderId, diff --git a/cash-api/product-server/src/main/java/com/czg/controller/admin/ShopStorageGoodController.java b/cash-api/product-server/src/main/java/com/czg/controller/admin/ShopStorageGoodController.java index 6bf94c31..a09865a4 100644 --- a/cash-api/product-server/src/main/java/com/czg/controller/admin/ShopStorageGoodController.java +++ b/cash-api/product-server/src/main/java/com/czg/controller/admin/ShopStorageGoodController.java @@ -80,8 +80,8 @@ public class ShopStorageGoodController { */ @SaAdminCheckPermission(value = "storageGood:del", name = "存酒商品删除") @DeleteMapping - public CzgResult del(@RequestBody @Validated({UpdateGroup.class}) ShopStorageGoodDTO shopStorageGoodDTO) { - return CzgResult.success(shopStorageGoodService.remove(new QueryWrapper().eq(ShopStorageGood::getShopId, StpKit.USER.getShopId()).eq(ShopStorageGood::getId, shopStorageGoodDTO.getId()))); + public CzgResult del(@RequestParam Integer id) { + return CzgResult.success(shopStorageGoodService.remove(new QueryWrapper().eq(ShopStorageGood::getShopId, StpKit.USER.getShopId()).eq(ShopStorageGood::getId, id))); } } diff --git a/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java b/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java index c9b559f3..09bfd707 100644 --- a/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java +++ b/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java @@ -4,6 +4,7 @@ import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.exception.NotPermissionException; import cn.dev33.satoken.exception.NotRoleException; import cn.hutool.core.exceptions.ValidateException; +import cn.hutool.core.io.resource.NoResourceException; import com.czg.resp.CzgRespCode; import com.czg.resp.CzgResult; import com.fasterxml.jackson.databind.exc.InvalidFormatException; @@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.resource.NoResourceFoundException; import java.util.List; import java.util.stream.Collectors; @@ -37,6 +39,14 @@ public class CzgControllerAdvice { return CzgResult.failure(CzgRespCode.SYSTEM_ERROR.getCode(), ex.getMessage()); } + @ResponseBody + @ExceptionHandler(value = NoResourceFoundException.class) + @ResponseStatus(HttpStatus.OK) + public CzgResult errorHandler(NoResourceFoundException ex) { + log.error("资源不存在"); + return CzgResult.failure(CzgRespCode.SYSTEM_ERROR.getCode(), ex.getMessage()); + } + @ResponseBody @ExceptionHandler(value = NotLoginException.class) @ResponseStatus(HttpStatus.OK) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderDetail.java b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderDetail.java index 2495c715..26015c3e 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderDetail.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderDetail.java @@ -201,4 +201,8 @@ public class OrderDetail implements Serializable { public String getRefundRemark() { return StrUtil.isBlank(refundRemark) ? "" : refundRemark + " "; } + + public BigDecimal getCouponNum() { + return couponNum == null ? BigDecimal.ZERO : couponNum; + } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java index 6bfd4466..37d27453 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java @@ -10,6 +10,7 @@ import com.czg.order.entity.OrderInfo; import com.czg.order.enums.PayEnums; import com.czg.order.vo.HistoryOrderVo; import com.czg.order.vo.OrderInfoVo; +import com.czg.resp.CzgResult; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; import jakarta.validation.constraints.NotBlank; @@ -30,6 +31,8 @@ public interface OrderInfoService extends IService { Page getOrderByPage(OrderInfoQueryDTO param); + CzgResult getOrderDetails(Long orderId); + HistoryOrderVo historyOrder(Long orderId, String tableCode); OrderInfo createOrder(OrderInfoAddDTO param); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index 788be3ce..fdc188e8 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -30,6 +30,7 @@ import com.czg.order.service.OrderPaymentService; import com.czg.order.vo.HistoryOrderVo; import com.czg.order.vo.OrderDetailSmallVO; import com.czg.order.vo.OrderInfoVo; +import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.service.RedisService; import com.czg.order.dto.BigDecimalDTO; @@ -128,6 +129,12 @@ public class OrderInfoServiceImpl extends ServiceImpl getOrderDetails(Long orderId) { + AssertUtil.isNull(orderId, "订单id不能为空"); + return CzgResult.success(historyOrder(orderId, null)); + } + @Override public HistoryOrderVo historyOrder(Long orderId, String tableCode) { if (orderId == null && StrUtil.isBlank(tableCode)) { @@ -142,7 +149,8 @@ public class OrderInfoServiceImpl extends ServiceImpl new ArrayList<>()).add(orderDetail); - } historyOrderVo.setDetailMap(resultMap); return historyOrderVo; @@ -212,13 +219,13 @@ public class OrderInfoServiceImpl extends ServiceImpl 0) { if (couponNum.compareTo(orderDetail.getNum()) >= 0) { orderDetail.setCouponNum(orderDetail.getNum()); @@ -658,7 +669,7 @@ public class OrderInfoServiceImpl extends ServiceImpl 0) { throw new ValidateException("退单失败," + orderDetail.getProductName() + "退单金额不正确"); } + if (orderDetail.getNum().compareTo(orderDetail.getRefundNum().add(orderDetail.getReturnNum())) == 0) { + orderDetail.setStatus(OrderStatusEnums.REFUND.getCode()); + } else { + orderDetail.setStatus(OrderStatusEnums.PART_REFUND.getCode()); + } } else { orderDetail.setReturnNum(orderDetail.getRefundNum().add(refNum)); orderDetail.setPayAmount((orderDetail.getNum().subtract(orderDetail.getRefundNum()).subtract(orderDetail.getReturnNum()) @@ -537,21 +542,15 @@ public class PayServiceImpl implements PayService { } orderDetail.setRefundNo(refPayOrderNo); orderDetail.setRefundRemark(orderDetail.getRefundRemark() + param.getRefundReason()); - if (orderDetail.getNum().compareTo(orderDetail.getRefundNum().add(orderDetail.getReturnNum())) == 0) { - orderDetail.setStatus(OrderStatusEnums.REFUND.getCode()); - } else { - orderDetail.setStatus(OrderStatusEnums.PART_REFUND.getCode()); - - } orderDetailService.updateById(orderDetail); returnProMap.put(orderDetail.getProductId(), refundDetail.getNum()); } long count = orderDetailService.queryChain() .eq(OrderDetail::getOrderId, orderInfo.getId()) .ne(OrderDetail::getStatus, OrderStatusEnums.REFUND.getCode()).count(); - if (count > 0) { + if (count > 0 && isPay) { orderInfo.setStatus(OrderStatusEnums.PART_REFUND.getCode()); - } else { + } else if (isPay) { orderInfo.setStatus(OrderStatusEnums.REFUND.getCode()); } } else { @@ -566,11 +565,12 @@ public class PayServiceImpl implements PayService { returnProMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(orderDetail.getRefundNum())); orderDetail.setRefundNum(orderDetail.getNum().subtract(orderDetail.getReturnNum())); orderDetail.setReturnAmount(orderDetail.getPayAmount()); + orderDetail.setStatus(OrderStatusEnums.REFUND.getCode()); } else { returnProMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum())); orderDetail.setReturnNum(orderDetail.getNum()); + orderDetail.setStatus(OrderStatusEnums.CANCELLED.getCode()); } - orderDetail.setStatus(OrderStatusEnums.REFUND.getCode()); } orderDetailService.updateBatch(orderDetails); } diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopStorageServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopStorageServiceImpl.java index 43c9e8eb..c478c882 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopStorageServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopStorageServiceImpl.java @@ -54,7 +54,18 @@ public class ShopStorageServiceImpl extends ServiceImpl shopStoragePage = page(PageUtil.buildPage(), queryWrapper); + shopStoragePage.getRecords().forEach(item -> { + if (item.getNum() == 0) { + item.setStatus(0); + } + + if (item.getExpTime().isBefore(DateUtil.date().toLocalDateTime())) { + item.setStatus(2); + } + }); + updateBatch(shopStoragePage.getRecords()); + return shopStoragePage; } @Override @@ -104,9 +115,13 @@ public class ShopStorageServiceImpl extends ServiceImpl