From 4f9b9c29a32c39504c0e1f246c40c811d9d75795 Mon Sep 17 00:00:00 2001 From: liwq <122639653@qq.com> Date: Mon, 3 Nov 2025 10:15:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AE=A2=E5=8D=95=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud/productapi/api/product/ProdApi.java | 13 ++++++++----- .../web/web/config/WebAutoConfiguration.java | 6 ++++-- .../admin/dict/DictDataController.java | 3 +-- .../admin/order/TradeOrderController.java | 10 +++++----- .../admin/order/vo/TradeOrderCancelReqVo.java | 17 +++++++++++++++++ .../admin/order/vo/TradeOrderDetailRespVO.java | 2 ++ .../admin/order/vo/TradeOrderPageRespVO.java | 4 ++++ .../trade/convert/order/TradeOrderConvert.java | 5 ++++- .../service/order/TradeOrderUpdateService.java | 7 ++----- .../order/TradeOrderUpdateServiceImpl.java | 16 +++++++++------- .../handler/TradeProductSkuOrderHandler.java | 14 ++++++++++---- 11 files changed, 66 insertions(+), 31 deletions(-) create mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderCancelReqVo.java diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/ProdApi.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/ProdApi.java index 3969302..cd329e9 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/ProdApi.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/ProdApi.java @@ -10,7 +10,7 @@ import com.tashow.cloud.productapi.enums.ApiConstants; import jakarta.annotation.security.PermitAll; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = @@ -52,15 +52,18 @@ public interface ProdApi { * @param skuId 单品ID * @param stocksNum 扣减数量 */ - @GetMapping(PREFIX + "/reduceStocks") - CommonResult reduceStocks(Long skuId, Integer stocksNum) ; + @PostMapping(PREFIX + "/reduceStocks") + CommonResult reduceStocks(@RequestParam(value = "skuId", required = false)Long skuId + ,@RequestParam(value = "stocksNum", required = false) Integer stocksNum + ) ; /** * 增加库存 * @param skuId 单品ID * @param stocksNum 增加数量 */ - @GetMapping(PREFIX + "/increaseStocks") - CommonResult increaseStocks(Long skuId, Integer stocksNum); + @PostMapping(PREFIX + "/increaseStocks") + CommonResult increaseStocks(@RequestParam(value = "skuId", required = false)Long skuId + ,@RequestParam(value = "stocksNum", required = false) Integer stocksNum); } diff --git a/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/config/WebAutoConfiguration.java b/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/config/WebAutoConfiguration.java index ad26e57..43862a5 100644 --- a/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/config/WebAutoConfiguration.java +++ b/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/config/WebAutoConfiguration.java @@ -53,8 +53,10 @@ public class WebAutoConfiguration implements WebMvcConfigurer { */ private void configurePathMatch(PathMatchConfigurer configurer, WebProperties.Api api) { AntPathMatcher antPathMatcher = new AntPathMatcher("."); - configurer.addPathPrefix(api.getPrefix(), clazz -> clazz.isAnnotationPresent(RestController.class) - && antPathMatcher.match(api.getController(), clazz.getPackage().getName())); // 仅仅匹配 controller 包 + configurer.addPathPrefix(api.getPrefix(), + clazz -> clazz.isAnnotationPresent(RestController.class) + && antPathMatcher.match(api.getController(), clazz.getPackage().getName()) + ); // 仅仅匹配 controller 包 } @Bean diff --git a/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/dict/DictDataController.java b/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/dict/DictDataController.java index d2ac0e4..ee91c21 100644 --- a/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/dict/DictDataController.java +++ b/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/dict/DictDataController.java @@ -70,9 +70,8 @@ public class DictDataController { /** * 获得全部字典数据列表", description = "一般用于管理后台缓存字典数据在本地 */ - @GetMapping(value = {"/list-all-simple", "simple-list"}) - // 无需添加权限认证,因为前端全局都需要 + @GetMapping(value = {"/list-all-simple", "simple-list"}) public CommonResult> getSimpleDictDataList() { List list = dictDataService.getDictDataList(CommonStatusEnum.ENABLE.getStatus(), null); diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java index c2101ce..c827d8f 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java @@ -113,15 +113,15 @@ public class TradeOrderController { @PutMapping("/cancel") @PermitAll // @PreAuthorize("@ss.hasPermission('trade:order:query')") - public CommonResult cancel(@RequestParam("id") Long id) { - return success(tradeOrderUpdateService.cancelOrderByAdmin(id)); + public CommonResult cancel(@RequestBody TradeOrderCancelReqVo reqVO) { + return success(tradeOrderUpdateService.cancelOrderByAdmin(reqVO)); } /** * 接单确认 - * - * @return + *, */ + @PutMapping("/acceptConfirm") @PermitAll // @PreAuthorize("@ss.hasPermission('trade:order:query')") @@ -147,7 +147,7 @@ public class TradeOrderController { @PutMapping("/update-remark") @PermitAll // @PreAuthorize("@ss.hasPermission('trade:order:update')") - public CommonResult updateOrderRemark(@RequestBody TradeOrderRemarkReqVO reqVO) { + public CommonResult updateOrderRemark(@Valid @RequestBody TradeOrderRemarkReqVO reqVO) { tradeOrderUpdateService.updateOrderRemark(reqVO); return success(true); } diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderCancelReqVo.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderCancelReqVo.java new file mode 100644 index 0000000..50806bd --- /dev/null +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderCancelReqVo.java @@ -0,0 +1,17 @@ +package com.tashow.cloud.trade.controller.admin.order.vo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class TradeOrderCancelReqVo { + + //订单id + @NotNull(message = "订单编号不能为空") + private Long id; + //取消原因 + private String cancelReason; + //取消备注 + private String cancelRemark; + +} diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java index b544893..4fa0ed0 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java @@ -24,6 +24,8 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO{ //取消原因 private String cancelReason; + //取消备注 + private String cancelRemark; //商家备注 private String merchantRemark; //退款时间 diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderPageRespVO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderPageRespVO.java index 39f2d18..2a48e70 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderPageRespVO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderPageRespVO.java @@ -20,6 +20,10 @@ public class TradeOrderPageRespVO extends TradeOrderBaseVO { private String shopLogo; //支付剩余时间 private String payLastTime; + //客服备注 + private String merchantRemark; + //取消备注 + private String cancelRemark; @Data diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java index 1b21bbe..c98e49e 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java @@ -14,7 +14,6 @@ import com.tashow.cloud.memberapi.api.user.dto.MemberUserRespDTO; import com.tashow.cloud.payapi.api.order.dto.PayOrderCreateReqDTO; import com.tashow.cloud.payapi.enums.DictTypeConstants; import com.tashow.cloud.productapi.api.product.dto.ProdDO; -import com.tashow.cloud.productapi.api.product.vo.prod.ProdRespVO; import com.tashow.cloud.trade.controller.admin.base.member.user.MemberUserRespVO; import com.tashow.cloud.trade.controller.admin.order.vo.*; import com.tashow.cloud.trade.controller.app.order.vo.*; @@ -73,6 +72,7 @@ public interface TradeOrderConvert { @Mappings({ @Mapping(source = "order.id", target = "id"), @Mapping(source = "order.userId", target = "userId"), + @Mapping(source = "order.merchantRemark", target = "merchantRemark"), }) TradeOrderPageRespVO convert(TradeOrderDO order, List items); //endregion @@ -112,6 +112,9 @@ public interface TradeOrderConvert { //region修改订单 + @Mappings({ + @Mapping(target = "merchantRemark",source = "remark") + }) TradeOrderDO convert(TradeOrderRemarkReqVO reqVO); //endregion diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java index 1d3044a..b17e408 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java @@ -1,9 +1,6 @@ package com.tashow.cloud.trade.service.order; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderRemarkReqVO; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO; +import com.tashow.cloud.trade.controller.admin.order.vo.*; import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO; import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO; @@ -107,7 +104,7 @@ public interface TradeOrderUpdateService { * * @param id 订单编号 */ - boolean cancelOrderByAdmin(Long id); + boolean cancelOrderByAdmin(TradeOrderCancelReqVo reqVo); /** * 【系统】自动取消订单 diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java index 87080c1..7940cf1 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java @@ -21,10 +21,7 @@ import com.tashow.cloud.payapi.enums.order.PayOrderStatusEnum; import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO; import com.tashow.cloud.systemapi.api.social.SocialClientApi; import com.tashow.cloud.systemapi.api.social.dto.SocialWxaSubscribeMessageSendReqDTO; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderRemarkReqVO; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO; -import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO; +import com.tashow.cloud.trade.controller.admin.order.vo.*; import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO; import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO; @@ -547,9 +544,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @Override @Transactional(rollbackFor = Exception.class) @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_CANCEL) - public boolean cancelOrderByAdmin(Long id) { + public boolean cancelOrderByAdmin(TradeOrderCancelReqVo reqVo) { // 1.1 校验存在 - TradeOrderDO order = tradeOrderMapper.selectById(id); + TradeOrderDO order = tradeOrderMapper.selectById(reqVo.getId()); if (order == null) { throw exception(ORDER_NOT_FOUND); } @@ -558,6 +555,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID); } + order.setCancelReason(reqVo.getCancelReason()); + order.setMerchantRemark(reqVo.getCancelRemark()); // 2. 取消订单 cancelOrder0(order, TradeOrderCancelTypeEnum.MEMBER_CANCEL); return true; @@ -607,7 +606,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { // 1. 更新 TradeOrderDO 状态为已取消 int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(), new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.CANCELED.getStatus()) - .setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now())); + .setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now()) + .setCancelReason(order.getCancelReason()) + .setMerchantRemark(order.getMerchantRemark()) + ); if (updateCount == 0) { throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID); } diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/handler/TradeProductSkuOrderHandler.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/handler/TradeProductSkuOrderHandler.java index 12829d5..0428649 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/handler/TradeProductSkuOrderHandler.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/handler/TradeProductSkuOrderHandler.java @@ -1,8 +1,10 @@ package com.tashow.cloud.trade.service.order.handler; import cn.hutool.core.collection.CollUtil; +import com.tashow.cloud.productapi.api.product.ProdApi; import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO; import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO; +import jakarta.annotation.Resource; import org.springframework.stereotype.Component; import java.util.List; @@ -15,12 +17,14 @@ import java.util.List; @Component public class TradeProductSkuOrderHandler implements TradeOrderHandler { -// @Resource -// private ProductSkuApi productSkuApi; + @Resource + private ProdApi prodApi; @Override public void beforeOrderCreate(TradeOrderDO order, List orderItems) { -// productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convertNegative(orderItems)).checkError(); + for (TradeOrderItemDO orderItem : orderItems) { + prodApi.increaseStocks(orderItem.getSkuId(),orderItem.getCount()).checkError(); + } } @Override @@ -30,7 +34,9 @@ public class TradeProductSkuOrderHandler implements TradeOrderHandler { if (CollUtil.isEmpty(orderItems)) { return; } -// productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convert(orderItems)).checkError(); + for (TradeOrderItemDO orderItem : orderItems) { + prodApi.reduceStocks(orderItem.getSkuId(),orderItem.getCount()).checkError(); + } } @Override