From 97f8282494eb04986077e8fcb72845a547618bc8 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Thu, 24 Jul 2025 00:41:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=20redis=20=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=B8=BA=207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mall-common/pom.xml | 2 + .../mall/common/constant/CommonConstant.java | 12 +- .../admin/ShopOrderBaseController.java | 51 +++- .../mobile/UserReturnController.java | 13 +- .../order/listener/OrderPayedListener.java | 13 + .../order/mapper/ShopOrderBaseMapper.java | 10 + .../order/service/ShopOrderBaseService.java | 9 + .../order/service/ShopOrderReturnService.java | 7 +- .../impl/ShopOrderBaseServiceImpl.java | 25 +- .../impl/ShopOrderReturnServiceImpl.java | 222 ++++++++++-------- .../service/impl/SFExpressApiServiceImpl.java | 8 +- .../user/service/ShopUserCartService.java | 3 +- .../service/impl/ShopUserCartServiceImpl.java | 10 +- .../mapper/order/ShopOrderBaseMapper.xml | 46 +++- pom.xml | 21 +- 15 files changed, 310 insertions(+), 142 deletions(-) diff --git a/mall-common/pom.xml b/mall-common/pom.xml index 367f9980..ba2b25bb 100644 --- a/mall-common/pom.xml +++ b/mall-common/pom.xml @@ -24,10 +24,12 @@ spring-boot-starter-web true + org.springframework.boot spring-boot-starter-data-redis + org.apache.commons commons-pool2 diff --git a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java index b10966c9..bc30edbf 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java +++ b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java @@ -69,8 +69,16 @@ public class CommonConstant { /** * 推送消息类别:Contract-商家入驻合同;orderList-商家订单列表;orderDetail-商家订单详情 + * * mchContract-商家入驻合同; + * * mchOrderDetail-商家订单详情; + * * mchOnLineOrderList-商家进行中订单列表; + * * mchAbnormalOrderList-商家异常订单列表; + * * mchRetrunOrderList-商家退款订单列表 */ public static final String PUSH_MSG_CATE_EC = "mchContract"; - public static final String PUSH_MSG_CATE_ORDER_LIST = "mchOrderList"; - public static final String PUSH_MSG_CATE_ORDER_DETAIL = "mchOrderDetail"; + + public static final String PUSH_MSG_CATE_MCH_ORDER_DETAIL = "mchOrderDetail"; + public static final String PUSH_MSG_CATE_MCH_ONLINE_ORDER_LIST = "mchOnLineOrderList"; + public static final String PUSH_MSG_CATE_MCH_ABNORMAL_ORDER_LIST = "mchAbnormalOrderList"; + public static final String PUSH_MSG_CATE_MCH_RETURN_ORDER_LIST = "mchRetrunOrderList"; } 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 7224b886..6a2ad517 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 @@ -1,6 +1,7 @@ package com.suisung.mall.shop.order.controller.admin; import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -11,6 +12,7 @@ import com.suisung.mall.common.api.StateCode; import com.suisung.mall.common.domain.UserDto; import com.suisung.mall.common.exception.ApiException; import com.suisung.mall.common.modules.order.*; +import com.suisung.mall.common.modules.order.dto.MchOrderInfoDTO; import com.suisung.mall.common.service.impl.BaseControllerImpl; import com.suisung.mall.common.utils.CheckUtil; import com.suisung.mall.common.utils.I18nUtil; @@ -40,6 +42,8 @@ import java.util.stream.Collectors; @Slf4j public class ShopOrderBaseController extends BaseControllerImpl { + private static final long mchOrderExpireSeconds = 1500; // 25分钟超时,60秒*25分钟 = 1500秒 + @Autowired private ShopOrderBaseService shopOrderBaseService; @@ -296,7 +300,7 @@ public class ShopOrderBaseController extends BaseControllerImpl { // 商家版接口 开始 - @ApiOperation(value = "查询移动商家端订单数据(新)", notes = "查询移动商家端订单数据(新)") + @ApiOperation(value = "查询商家端订单分页数据(新)", notes = "查询商家端订单分页数据(新)") @RequestMapping(value = "/mch/order/list", method = RequestMethod.POST) public CommonResult selectMchOrderPageList(@RequestBody JSONObject params) { // === 用户验证 === @@ -321,14 +325,13 @@ public class ShopOrderBaseController extends BaseControllerImpl { // === 构建响应数据 === Map respMap = new HashMap<>(); // 订单列表数据(缓存时间25分钟) - long expireSeconds = 1500L;// 60秒*25分钟 = 1500秒 respMap.put("order_page_list", shopOrderBaseService.selectMchOrderPageList( storeId, params.getStr("keyword"), params.getInt("delivery"), params.getInt("status"), params.getInt("logistics_status"), - expireSeconds, + mchOrderExpireSeconds, params.getLong("begin_time"), params.getLong("end_time"), params.getInt("pageNum"), @@ -336,11 +339,51 @@ public class ShopOrderBaseController extends BaseControllerImpl { )); // 订单数量统计 - respMap.put("order_count", shopOrderBaseService.mchOrderCountByStoreId(storeId, expireSeconds, params.getLong("begin_time"), params.getLong("end_time"))); + respMap.put("order_count", shopOrderBaseService.mchOrderCountByStoreId(storeId, mchOrderExpireSeconds, params.getLong("begin_time"), params.getLong("end_time"))); return CommonResult.success(respMap); } + @ApiOperation(value = "获取商家端订单详情数据(新)", notes = "获取商家端订单详情数据(新)") + @PostMapping(value = "/mch/order/detail") + public CommonResult getMchOrderDetail(@RequestBody JSONObject params) { + try { + // 1. 参数校验 + String orderId = params.getStr("orderId"); + if (StrUtil.isBlank(orderId)) { + log.warn("订单ID不能为空"); + return CommonResult.failed(ResultCode.VALIDATE_FAILED); + } + + // 2. 获取订单详情 + MchOrderInfoDTO mchOrderInfoDTO = shopOrderBaseService.getMchOrderDetail(orderId, mchOrderExpireSeconds); + if (mchOrderInfoDTO == null) { + log.info("未查询到订单ID:{}的详情", orderId); + return CommonResult.success(null); + } + + // 3. 用户认证 + UserDto userDto = getCurrentUser(); + if (userDto == null) { + log.warn("未获取到当前用户信息"); + return CommonResult.failed(ResultCode.NEED_LOGIN); + } + + // 4. 店铺权限校验 + Integer storeId = Convert.toInt(userDto.getStore_id()); + if (storeId != null && storeId > 0 && !storeId.equals(mchOrderInfoDTO.getOrder_state_id())) { + log.warn("用户{}无权限访问订单{}", userDto.getId(), orderId); + return CommonResult.failed(ResultCode.FORBIDDEN); + } + + // 5. 返回结果 + return CommonResult.success(mchOrderInfoDTO); + } catch (Exception e) { + log.error("获取商家端订单详情异常", e); + return CommonResult.failed(); + } + } + // 商家版接口 结束 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserReturnController.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserReturnController.java index 54da69cd..95db5e8d 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserReturnController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserReturnController.java @@ -3,11 +3,10 @@ package com.suisung.mall.shop.order.controller.mobile; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.api.ResultCode; import com.suisung.mall.common.domain.UserDto; -import com.suisung.mall.common.exception.ApiUserException; import com.suisung.mall.common.modules.order.ShopOrderReturnReason; import com.suisung.mall.common.service.impl.BaseControllerImpl; -import com.suisung.mall.common.utils.I18nUtil; import com.suisung.mall.shop.order.service.ShopOrderReturnReasonService; import com.suisung.mall.shop.order.service.ShopOrderReturnService; import com.suisung.mall.shop.order.vo.OrderReturnInputVo; @@ -61,6 +60,11 @@ public class UserReturnController extends BaseControllerImpl { @ApiOperation(value = "添加退款退货-部分退货,卖家也可以决定不退货退款,买家申请退款不支持。卖家可以主动退款。", notes = "添加退款退货-发货退货,卖家也可以决定不退货退款,买家申请退款不支持。卖家可以主动退款。") @RequestMapping(value = "/addItem", method = RequestMethod.GET) public CommonResult addItem(OrderReturnVo orderReturnVo) { + UserDto user = getCurrentUser(); + if (user == null) { + return CommonResult.failed(ResultCode.NEED_LOGIN); + } + OrderReturnInputVo orderReturnInputVo = BeanUtil.copyProperties(orderReturnVo, OrderReturnInputVo.class); OrderReturnItemInputVo orderReturnItemInputVo = new OrderReturnItemInputVo(); @@ -70,16 +74,15 @@ public class UserReturnController extends BaseControllerImpl { orderReturnInputVo.getReturn_items().add(orderReturnItemInputVo); - return shopOrderReturnService.addItem(orderReturnInputVo); + return shopOrderReturnService.addItem(orderReturnInputVo, true); } @ApiOperation(value = "添加退款退货-整单退货", notes = "添加退款退货-整单退货") @RequestMapping(value = "/addWholeItems", method = RequestMethod.POST) public CommonResult addWholeItems(@RequestParam(name = "order_id") String order_id) { UserDto user = getCurrentUser(); - if (user == null) { - throw new ApiUserException(I18nUtil._("用户信息异常!")); + return CommonResult.failed(ResultCode.NEED_LOGIN); } return shopOrderReturnService.addWholeItems(order_id, false, ""); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java index 46f05de6..7ca0325a 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java @@ -1,10 +1,13 @@ package com.suisung.mall.shop.order.listener; import cn.hutool.core.convert.Convert; +import cn.hutool.json.JSONObject; import com.rabbitmq.client.Channel; import com.suisung.mall.common.api.StateCode; +import com.suisung.mall.common.constant.CommonConstant; import com.suisung.mall.common.constant.MqConstant; import com.suisung.mall.common.modules.order.ShopOrderInfo; +import com.suisung.mall.common.utils.DateTimeUtils; import com.suisung.mall.shop.message.service.PushMessageService; import com.suisung.mall.shop.order.service.ShopOrderBaseService; import com.suisung.mall.shop.order.service.ShopOrderInfoService; @@ -21,6 +24,7 @@ import org.springframework.data.util.Pair; import org.springframework.stereotype.Service; import java.io.IOException; +import java.time.LocalDateTime; import java.util.Collections; import java.util.List; @@ -119,6 +123,15 @@ public class OrderPayedListener { logger.info("顺丰同城下单成功"); } + + // 同城配送或普通快递,都发送 unipush 推送:您有一个新的订单,请查收! + String orderType = orderInfoOld.getDelivery_type_id() == StateCode.DELIVERY_TYPE_SAME_CITY ? "同城" : ""; + String title = String.format("您有一个新的%s订单,请注意查收!", orderType); + String content = String.format("新%s订单号:%s,用户在%s下的单,请注意查收!", orderId, DateTimeUtils.formatDateTime(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss")); + JSONObject payload = new JSONObject(); + payload.put("category", CommonConstant.PUSH_MSG_CATE_MCH_ONLINE_ORDER_LIST); + payload.put("orderId", orderId); + pushMessageService.noticeMerchantEmployeeOrderAction(orderInfoOld.getStore_id(), orderId, title, content, payload); } } } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java index 020a8278..1b1f5a32 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java @@ -93,6 +93,16 @@ public interface ShopOrderBaseMapper extends BaseMapper { */ Long countMchOrderByCondition(@Param("storeId") Integer storeId, @Param("keyword") String keyword, @Param("delivery") Integer delivery, @Param("status") Integer status, @Param("logisticsStatus") Integer logisticsStatus, @Param("expireSeconds") Long expireSeconds, @Param("beginTime") Long beginTime, @Param("endTime") Long endTime); + + /** + * 获取商家版订单详情(新) + * + * @param orderId + * @param expireSeconds 配送超时的秒数,单位秒 + * @return + */ + MchOrderInfoDTO getMchOrderDetail(@Param("orderId") String orderId, @Param("expireSeconds") Long expireSeconds); + /** * 获取微信发货订单基本信息 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java index f56adde2..5097f9c6 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java @@ -568,6 +568,15 @@ public interface ShopOrderBaseService extends IBaseService { */ Long countMchOrderByCondition(Integer storeId, String keyword, Integer delivery, Integer status, Integer logisticsStatus, Long expireSeconds, Long beginTime, Long endTime); + /** + * 获取商家订单详情 + * + * @param orderId + * @param expireSeconds 配送超时的秒数,单位秒 + * @return + */ + MchOrderInfoDTO getMchOrderDetail(String orderId, Long expireSeconds); + /** * 商家订单各个分类和状态的订单数量 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java index 7ff68865..dd4b6b63 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java @@ -41,17 +41,20 @@ public interface ShopOrderReturnService extends IBaseService { long getReturnNum(List return_state_id, Integer store_id, Integer subsite_id); /** + * 提交一条退货订单,等待商家审核处理(同意或不同意) + * * @param orderReturnInputVo + * @param needSendMsg 是否需要发(站内 推送)消息 * @return */ - CommonResult addItem(OrderReturnInputVo orderReturnInputVo); + CommonResult addItem(OrderReturnInputVo orderReturnInputVo, Boolean needSendMsg); Map getReturnDetail(String return_id); boolean processReviewList(ShopOrderReturn shopOrderReturn, Integer receiving_address); /** - * 退单审核 + * 退单审核,商家审核处理(同意或不同意) * * @param return_ids 退单编号 * @param return_rows 退单数据 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 b0a637b1..d578da54 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 @@ -2801,7 +2801,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl shopOrderReturnItems = new ArrayList<>(); + for (OrderReturnItemInputVo returnItemInputVo : orderReturnInputVo.getReturn_items()) { + ShopOrderItem shopOrderItem = shopOrderItemService.get(returnItemInputVo.getOrder_item_id()); + + if (shopOrderItem == null) { + throw new ApiException(I18nUtil._("此订单商品订单数据有误!")); + } + ShopProductIndex shopProductIndex = shopProductIndexService.get(shopOrderItem.getProduct_id()); + + if (shopProductIndex == null) { + throw new ApiException(I18nUtil._("此订单商品数据有误!")); } - Date curTime = new Date(); + boolean is_denyreturn = ifDenyReturn(shopOrderInfo, shopOrderItem, shopProductIndex); + if (is_denyreturn) { + throw new ApiException(I18nUtil._("此商品不允许退货!")); + } + ShopOrderReturnItem orderReturnItem = new ShopOrderReturnItem(); + Integer return_item_num = returnItemInputVo.getReturn_item_num(); - ShopOrderReturn orderReturn = new ShopOrderReturn(); - - orderReturn.setReturn_id(return_id); - orderReturn.setOrder_id(order_id); - orderReturn.setBuyer_user_id(user_id); - orderReturn.setBuyer_store_id(buyer_store_id); - orderReturn.setReturn_reason_id(return_reason_id); - orderReturn.setReturn_buyer_message(return_buyer_message); - orderReturn.setStore_id(store_id); - orderReturn.setReturn_refund_amount(BigDecimal.ZERO); - orderReturn.setReturn_commision_fee(BigDecimal.ZERO); - orderReturn.setReturn_state_id(StateCode.RETURN_PROCESS_CHECK); - orderReturn.setReturn_tel(return_tel); - orderReturn.setReturn_year(DateUtil.year(curTime)); // 退单年份-索引查询 - orderReturn.setReturn_month(DateUtil.month(curTime) + 1); // 退单月份-索引查询 - orderReturn.setReturn_day(DateUtil.dayOfMonth(curTime)); // 退单日-索引查询 - orderReturn.setReturn_reason_id(0); - orderReturn.setReturn_store_user_id(0); - orderReturn.setReturn_mobile(0L); - orderReturn.setReturn_telephone(""); - orderReturn.setSubsite_id(shopOrderInfo.getSubsite_id()); - - List shopOrderReturnItems = new ArrayList<>(); - for (OrderReturnItemInputVo returnItemInputVo : orderReturnInputVo.getReturn_items()) { - ShopOrderItem shopOrderItem = shopOrderItemService.get(returnItemInputVo.getOrder_item_id()); - - if (shopOrderItem == null) { - throw new ApiException(I18nUtil._("此订单商品订单数据有误!")); - } - ShopProductIndex shopProductIndex = shopProductIndexService.get(shopOrderItem.getProduct_id()); - - if (shopProductIndex == null) { - throw new ApiException(I18nUtil._("此订单商品数据有误!")); - } - - boolean is_denyreturn = ifDenyReturn(shopOrderInfo, shopOrderItem, shopProductIndex); - if (is_denyreturn) { - throw new ApiException(I18nUtil._("此商品不允许退货!")); - } - ShopOrderReturnItem orderReturnItem = new ShopOrderReturnItem(); - Integer return_item_num = returnItemInputVo.getReturn_item_num(); - - if (return_item_num <= 0) { - throw new ApiException(I18nUtil._("退款数量不正确!")); - } - - BigDecimal return_refund_amount = returnItemInputVo.getReturn_refund_amount(); - String return_item_image = ObjectUtil.defaultIfBlank(orderReturnInputVo.getRefund_pic(), orderReturnInputVo.getUpload_img()); - - orderReturnItem.setOrder_item_id(returnItemInputVo.getOrder_item_id()); // 退货商品编号(DOT):0为退款 - orderReturnItem.setOrder_id(order_id); // 订单编号 - orderReturnItem.setReturn_item_num(return_item_num); // 退货商品编号(DOT):0为退款 - orderReturnItem.setReturn_item_subtotal(return_refund_amount); // 退款金额 = goods_payment_amount/goods_quantity, 因为涉及到折扣等等 或者 为订单中 order_payment_amount - orderReturnItem.setReturn_reason_id(return_reason_id); // 退款理由id - orderReturnItem.setReturn_item_note(return_buyer_message); // 买家退货备注 - orderReturnItem.setReturn_item_image(return_item_image); - orderReturnItem.setReturn_state_id(StateCode.RETURN_PROCESS_CHECK); - orderReturnItem.setReturn_reason_id(0); - - shopOrderReturnItems.add(orderReturnItem); + if (return_item_num <= 0) { + throw new ApiException(I18nUtil._("退款数量不正确!")); } - if (!addReturnByItem(orderReturn, shopOrderReturnItems)) { - throw new ApiException(ResultCode.FAILED); - } + BigDecimal return_refund_amount = returnItemInputVo.getReturn_refund_amount(); + String return_item_image = ObjectUtil.defaultIfBlank(orderReturnInputVo.getRefund_pic(), orderReturnInputVo.getUpload_img()); - // 退货单提交成功,对商家进行提醒 -// String message_id = "return-reminder"; -// Map args = new HashMap(); -// args.put("order_id", return_id); -// args.put("id", order_id); -// args.put("return_id", return_id); -// args.put("order_item", String.format(("退货商品编号:[%s]"), order_item_id)); -// messageService.sendNoticeMsg(0, store_id, message_id, args); + orderReturnItem.setOrder_item_id(returnItemInputVo.getOrder_item_id()); // 退货商品编号(DOT):0为退款 + orderReturnItem.setOrder_id(order_id); // 订单编号 + orderReturnItem.setReturn_item_num(return_item_num); // 退货商品编号(DOT):0为退款 + orderReturnItem.setReturn_item_subtotal(return_refund_amount); // 退款金额 = goods_payment_amount/goods_quantity, 因为涉及到折扣等等 或者 为订单中 order_payment_amount + orderReturnItem.setReturn_reason_id(return_reason_id); // 退款理由id + orderReturnItem.setReturn_item_note(return_buyer_message); // 买家退货备注 + orderReturnItem.setReturn_item_image(return_item_image); + orderReturnItem.setReturn_state_id(StateCode.RETURN_PROCESS_CHECK); + orderReturnItem.setReturn_reason_id(0); - data.put("return", orderReturn); - data.put("items", shopOrderReturnItems); + shopOrderReturnItems.add(orderReturnItem); + } - //暂时注释 - // 七天无理由自动退货 + if (!addReturnByItem(orderReturn, shopOrderReturnItems)) { + throw new ApiException(ResultCode.FAILED); + } + + + data.put("return", orderReturn); + data.put("items", shopOrderReturnItems); + + //暂时注释 + // 七天无理由自动退货 /*if (contractTypeIds.contains(StateCode.CONTRACT_TYPE_7_RETURN) && shopOrderInfo.getOrder_is_out().equals(StateCode.ORDER_PICKING_STATE_NO)) { ShopOrderReturn shopOrderReturn = new ShopOrderReturn(); shopOrderReturn.setReturn_id(orderReturn.getReturn_id()); @@ -572,15 +569,34 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl { * 7.4、计算每样商品的佣金 * 7.5、计算最终运费,运费根据重量计费,同一店铺一次发货,商品独立计算快递费用不合理。 * 9、计算总价 - * 9、 * * @access public */ @@ -139,7 +138,7 @@ public interface ShopUserCartService extends IBaseService { * * @param cart_data 最终数据 * @param district_id 配送地区(城市id) - * @param canThrow 关键数据缺失,抛出 api 异常错误 + * @param canThrow 关键数据缺失,抛出 api 异常错误 */ void tryCalTransportFreight(Map cart_data, Integer district_id, boolean canThrow); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java index d34fb277..553e1b98 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java @@ -48,7 +48,6 @@ import com.suisung.mall.shop.product.pojo.vo.FixOrderVo; import com.suisung.mall.shop.product.pojo.vo.ProductVo; import com.suisung.mall.shop.product.service.*; import com.suisung.mall.shop.store.service.*; -import com.suisung.mall.shop.store.service.impl.ShopStorePrinterLogServiceImpl; import com.suisung.mall.shop.user.mapper.ShopUserCartMapper; import com.suisung.mall.shop.user.service.ShopUserCartService; import com.suisung.mall.shop.user.service.ShopUserDeliveryAddressService; @@ -59,7 +58,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; import java.io.Serializable; import java.math.BigDecimal; import java.util.*; @@ -765,10 +763,10 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl storeDistrictId = Convert.toList(Integer.class, store_row.get("store_district_id")); - if (canThrow && uAddress!=null && storeDistrictId != null && storeDistrictId.size() > 0 && !CollUtil.contains(storeDistrictId, uAddress.getUd_city_id())) { + if (canThrow && uAddress != null && storeDistrictId != null && storeDistrictId.size() > 0 && !CollUtil.contains(storeDistrictId, uAddress.getUd_city_id())) { throw new ApiException(I18nUtil._("订单不在同一城市,请检查您下单所在店铺的具体位置!")); } diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml index 1513ccc4..25c80256 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml @@ -693,7 +693,7 @@ - + AND oi.delivery_type_id IN (1,2,3,4,10) @@ -737,15 +737,23 @@ - - + + from shop_order_base ob join shop_order_info oi on ob.order_id=oi.order_id join shop_order_data od on ob.order_id=od.order_id @@ -832,6 +846,26 @@ + +