From 84da413f4d3be1c8e2103c44bd53ace373ce8f23 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Mon, 21 Jul 2025 11:02:17 +0800 Subject: [PATCH] =?UTF-8?q?gateway=20=E7=9A=84=20=E7=B1=BB=E5=BA=93?= =?UTF-8?q?=E5=86=B2=E7=AA=81=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mall-common/pom.xml | 1 + .../common/config/RestTemplateConfig.java | 8 ++++ mall-gateway/pom.xml | 11 ++++++ mall-gateway/src/main/resources/bootstrap.yml | 2 + .../admin/ShopOrderBaseController.java | 26 +++++++++++-- .../impl/ShopOrderBaseServiceImpl.java | 38 +++++++++++++------ .../impl/ShopOrderInfoServiceImpl.java | 3 +- .../mapper/order/ShopOrderBaseMapper.xml | 4 +- .../mapper/order/ShopOrderInfoMapper.xml | 3 ++ 9 files changed, 80 insertions(+), 16 deletions(-) diff --git a/mall-common/pom.xml b/mall-common/pom.xml index 626e9b4c..367f9980 100644 --- a/mall-common/pom.xml +++ b/mall-common/pom.xml @@ -22,6 +22,7 @@ org.springframework.boot spring-boot-starter-web + true org.springframework.boot diff --git a/mall-common/src/main/java/com/suisung/mall/common/config/RestTemplateConfig.java b/mall-common/src/main/java/com/suisung/mall/common/config/RestTemplateConfig.java index 9da170dd..86d8ef74 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/config/RestTemplateConfig.java +++ b/mall-common/src/main/java/com/suisung/mall/common/config/RestTemplateConfig.java @@ -1,5 +1,6 @@ package com.suisung.mall.common.config; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -19,6 +20,13 @@ import java.time.Duration; @Configuration public class RestTemplateConfig { + // 显式声明RestTemplateBuilder bean + @Bean + @ConditionalOnMissingBean + public RestTemplateBuilder restTemplateBuilder() { + return new RestTemplateBuilder(); + } + /** * 企业级 RestTemplate 配置 * 1. 使用 OkHttp3 客户端(性能优化) diff --git a/mall-gateway/pom.xml b/mall-gateway/pom.xml index 4f8d618d..0358c814 100644 --- a/mall-gateway/pom.xml +++ b/mall-gateway/pom.xml @@ -16,10 +16,21 @@ + + + + + + + + + + org.springframework.cloud spring-cloud-starter-gateway + com.suisung.mall mall-common diff --git a/mall-gateway/src/main/resources/bootstrap.yml b/mall-gateway/src/main/resources/bootstrap.yml index 8b963a00..307e4daf 100644 --- a/mall-gateway/src/main/resources/bootstrap.yml +++ b/mall-gateway/src/main/resources/bootstrap.yml @@ -3,6 +3,8 @@ spring: active: @profiles.active@ application: name: mall-gateway + # main: + # web-application-type: reactive jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java index 5c878b6e..a27587b6 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java @@ -6,6 +6,7 @@ import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.api.ResultCode; import com.suisung.mall.common.api.StateCode; import com.suisung.mall.common.domain.UserDto; import com.suisung.mall.common.exception.ApiException; @@ -297,12 +298,31 @@ public class ShopOrderBaseController extends BaseControllerImpl { @ApiOperation(value = "查询移动商家端订单数据(新)", notes = "查询移动商家端订单数据(新)") @RequestMapping(value = "/mch/order/list", method = RequestMethod.POST) public CommonResult selectMchOrderPageList(@RequestBody JSONObject params) { + UserDto userDto = getCurrentUser(); + if (userDto == null) { + return CommonResult.failed(ResultCode.NEED_LOGIN); + } + + // 如果 storeId 有值,判断当前登录账号是否有权查看该店铺的订单(以后账号有多个店铺,需要更改判断方法) + Integer storeId = params.getInt("storeId"); + if (storeId != null && storeId > 0 && !storeId.equals(userDto.getStore_id())) { + return CommonResult.failed(ResultCode.FORBIDDEN); + } else { + storeId = Convert.toInt(userDto.getStore_id()); + } + + if (storeId == null || storeId <= 0) { + return CommonResult.failed(ResultCode.FORBIDDEN); + } + Map respMap = new HashMap<>(); // 订单分页数据 Long expireSeconds = 1500L; // 60秒*25分钟 = 1500秒 - respMap.put("order_page_list", shopOrderBaseService.selectMchOrderPageList(params.getInt("storeId"), params.getStr("keyword"), params.getInt("delivery"), params.getInt("status"), expireSeconds, params.getInt("pageNum"), params.getInt("pageSize"))); - // 订单数量 - respMap.put("order_count", shopOrderBaseService.mchOrderCountByStoreId(params.getInt("storeId"))); + + respMap.put("order_page_list", shopOrderBaseService.selectMchOrderPageList(storeId, params.getStr("keyword"), params.getInt("delivery"), params.getInt("status"), expireSeconds, params.getInt("pageNum"), params.getInt("pageSize"))); + + // 订单数量统计 + respMap.put("order_count", shopOrderBaseService.mchOrderCountByStoreId(storeId)); return CommonResult.success(respMap); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index 5a153267..71f6b6fd 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -8552,16 +8552,16 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl pageList = shopOrderBaseMapper.selectMchOrderPageList( storeId, keyword, delivery, status, expireSeconds, page); - if (pageList == null || CollUtil.isEmpty(pageList.getRecords())) { + if (CollUtil.isEmpty(pageList.getRecords())) { return pageList; } // 处理订单列表数据 pageList.getRecords().forEach(order -> { // 处理物流轨迹信息(仅限快递配送且已发货/已完成订单) - if (StateCode.DELIVERY_TYPE_EXP == order.getDelivery_type_id() - && (StateCode.ORDER_STATE_FINISH == order.getOrder_state_id() - || StateCode.ORDER_STATE_SHIPPED == order.getOrder_state_id())) { + if (StateCode.DELIVERY_TYPE_SELF_PICK_UP != order.getDelivery_type_id() + && StateCode.DELIVERY_TYPE_SAME_CITY != order.getDelivery_type_id() + && (StateCode.ORDER_STATE_FINISH == order.getOrder_state_id() || StateCode.ORDER_STATE_SHIPPED == order.getOrder_state_id())) { try { order.setLogistics_traces(kdApiExpressSearchService.getLogisticsTraces(order.getOrder_id())); } catch (Exception e) { @@ -8588,14 +8588,29 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl orderStatusIdList, List orderRefundStatusIdList, List deliveryTypeList, Long expireSeconds) { - if (ObjectUtil.isEmpty(storeId)) { + if (CheckUtil.isEmpty(storeId)) { return 0L; } diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml index b59056cf..aa6388ea 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml @@ -637,11 +637,13 @@ + // orderstatus 订单状态:2010-待付款;2011-待订单审核;2012-待发货;2013-待财务审核;2014-待配货/待出库审核;2020-待发货; + 2030-待发货/待收货确认;2040-已发货/待收货确认;2050-已签收;2060-已完成/已签收;2070-已取消/已作废;2080-自提-->