diff --git a/mer_java/crmeb-admin/src/main/java/com/zbkj/admin/service/impl/ManageOrderServiceImpl.java b/mer_java/crmeb-admin/src/main/java/com/zbkj/admin/service/impl/ManageOrderServiceImpl.java index 6224778..fa6fdfb 100644 --- a/mer_java/crmeb-admin/src/main/java/com/zbkj/admin/service/impl/ManageOrderServiceImpl.java +++ b/mer_java/crmeb-admin/src/main/java/com/zbkj/admin/service/impl/ManageOrderServiceImpl.java @@ -172,7 +172,7 @@ public class ManageOrderServiceImpl implements ManageOrderService { public List getDetailList(String orderNo) { SystemAdmin systemAdmin = SecurityUtil.getLoginUserVo().getUser(); Order order = orderService.getByOrderNo(orderNo); - if (!order.getMerId().equals(systemAdmin.getMerId())) { + if (systemAdmin.getMerId() > 0 && !order.getMerId().equals(systemAdmin.getMerId())) { throw new CrmebException(OrderResultCode.ORDER_NOT_EXIST); } List orderDetailList = orderService.getDetailList(orderNo, systemAdmin); diff --git a/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java b/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java index 4f6b23b..6245495 100644 --- a/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java +++ b/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java @@ -288,7 +288,10 @@ public class OrderServiceImpl extends ServiceImpl implements Or map.put("endTime", dateLimit.getEndTime()); } } - map.put("merId", systemAdmin.getMerId()); + // 平台管理员(mer_id=0)查看全部商户订单,商户管理员只查看自己的订单 + if (systemAdmin.getMerId() > 0) { + map.put("merId", systemAdmin.getMerId()); + } if (StrUtil.isNotBlank(request.getOrderNo())) { map.put("orderNo", URLUtil.decode(request.getOrderNo())); } @@ -354,7 +357,8 @@ public class OrderServiceImpl extends ServiceImpl implements Or @Override public OrderAdminDetailResponse adminDetail(String orderNo, SystemAdmin systemAdmin) { Order order = getByOrderNo(orderNo); - if (order.getIsMerchantDel() || !order.getMerId().equals(systemAdmin.getMerId())) { + // 平台管理员(mer_id=0)可查看所有商户订单,商户管理员只能查看自己的订单 + if (order.getIsMerchantDel() || (systemAdmin.getMerId() > 0 && !order.getMerId().equals(systemAdmin.getMerId()))) { throw new CrmebException(OrderResultCode.ORDER_NOT_EXIST); } OrderAdminDetailResponse orderAdminDetailResponse = new OrderAdminDetailResponse(); @@ -487,7 +491,7 @@ public class OrderServiceImpl extends ServiceImpl implements Or public Boolean send(OrderSendRequest request, SystemAdmin systemAdmin) { validateOrderSend(request); Order order = getByOrderNo(request.getOrderNo()); - if (!order.getMerId().equals(systemAdmin.getMerId())) { + if (systemAdmin.getMerId() > 0 && !order.getMerId().equals(systemAdmin.getMerId())) { throw new CrmebException(OrderResultCode.ORDER_NOT_EXIST); } if (order.getIsUserDel() || order.getIsMerchantDel()) { @@ -828,10 +832,12 @@ public class OrderServiceImpl extends ServiceImpl implements Or @Override public void printReceipt(String orderNo, SystemAdmin systemAdmin) { MerchantOrder merchantOrder = merchantOrderService.getOneByOrderNo(orderNo); - if (!systemAdmin.getMerId().equals(merchantOrder.getMerId())) { + if (systemAdmin.getMerId() > 0 && !systemAdmin.getMerId().equals(merchantOrder.getMerId())) { throw new CrmebException(OrderResultCode.ORDER_NOT_EXIST); } - Merchant merchant = merchantService.getByIdException(systemAdmin.getMerId()); + // 平台管理员使用订单所属商户信息 + Integer effectiveMerId = systemAdmin.getMerId() > 0 ? systemAdmin.getMerId() : merchantOrder.getMerId(); + Merchant merchant = merchantService.getByIdException(effectiveMerId); // 小票打印开关:0关闭,1=手动打印,2=自动打印,3=自动和手动 if (merchant.getReceiptPrintingSwitch() == 0) { throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "小票打印功能未开启"); @@ -1094,7 +1100,7 @@ public class OrderServiceImpl extends ServiceImpl implements Or throw new CrmebException(OrderResultCode.ORDER_INVOICE_LOGISTICS_NOT_EXIST); } MerchantOrder merchantOrder = merchantOrderService.getOneByOrderNo(orderInvoice.getOrderNo()); - if (ObjectUtil.isNull(merchantOrder) || !systemAdmin.getMerId().equals(merchantOrder.getMerId())) { + if (ObjectUtil.isNull(merchantOrder) || (systemAdmin.getMerId() > 0 && !systemAdmin.getMerId().equals(merchantOrder.getMerId()))) { throw new CrmebException(OrderResultCode.ORDER_NOT_EXIST); } return logisticService.info(orderInvoice.getTrackingNumber(), null, Optional.ofNullable(orderInvoice.getExpressCode()).orElse(""), merchantOrder.getUserPhone()); @@ -1133,7 +1139,7 @@ public class OrderServiceImpl extends ServiceImpl implements Or throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请输入正确的核销码"); } Order order = getByOrderNo(merchantOrder.getOrderNo()); - if (!systemAdmin.getMerId().equals(order.getMerId())) { + if (systemAdmin.getMerId() > 0 && !systemAdmin.getMerId().equals(order.getMerId())) { throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请输入正确的核销码"); } if (!order.getStatus().equals(OrderConstants.ORDER_STATUS_AWAIT_VERIFICATION)) { @@ -1152,7 +1158,9 @@ public class OrderServiceImpl extends ServiceImpl implements Or merchantOrder.setUpdateTime(DateUtil.date()); // 预约订单-到店核销订单-若工单开关开启,自动生成工单 List workOrderList = new ArrayList<>(); - MerchantInfo merchantInfo = merchantInfoService.getByMerId(systemAdmin.getMerId()); + // 平台管理员使用订单所属商户信息 + Integer effectiveMerId = systemAdmin.getMerId() > 0 ? systemAdmin.getMerId() : order.getMerId(); + MerchantInfo merchantInfo = merchantInfoService.getByMerId(effectiveMerId); if (merchantOrder.getSecondType().equals(OrderConstants.ORDER_SECOND_TYPE_RESERVATION) && merchantOrder.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_TO_STORE) @@ -1267,7 +1275,7 @@ public class OrderServiceImpl extends ServiceImpl implements Or throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请输入正确的核销码"); } Order order = getByOrderNo(merchantOrder.getOrderNo()); - if (!systemAdmin.getMerId().equals(order.getMerId())) { + if (systemAdmin.getMerId() > 0 && !systemAdmin.getMerId().equals(order.getMerId())) { throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请输入正确的核销码"); } if (!order.getStatus().equals(OrderConstants.ORDER_STATUS_AWAIT_VERIFICATION)) { @@ -1290,7 +1298,8 @@ public class OrderServiceImpl extends ServiceImpl implements Or merchantOrder.setUpdateTime(DateUtil.date()); // 预约订单-到店核销订单-若工单开关开启,自动生成工单 List workOrderList = new ArrayList<>(); - MerchantInfo merchantInfo = merchantInfoService.getByMerId(systemAdmin.getMerId()); + Integer effectiveMerId = systemAdmin.getMerId() > 0 ? systemAdmin.getMerId() : order.getMerId(); + MerchantInfo merchantInfo = merchantInfoService.getByMerId(effectiveMerId); List merOrderDetailList = orderDetailService.getByOrderNo(order.getOrderNo()); OrderDetail orderDetail = merOrderDetailList.get(0); @@ -1426,12 +1435,18 @@ public class OrderServiceImpl extends ServiceImpl implements Or */ @Override public MerchantOrderPageResponse getVerificationOrderByCode(String verifyCode, SystemAdmin systemAdmin) { - MerchantOrder merchantOrder = merchantOrderService.getByVerifyCodeForMerchant(verifyCode, systemAdmin.getMerId()); + // 平台管理员(mer_id=0)传0到商户核销码查询,需要特殊处理 + MerchantOrder merchantOrder; + if (systemAdmin.getMerId() > 0) { + merchantOrder = merchantOrderService.getByVerifyCodeForMerchant(verifyCode, systemAdmin.getMerId()); + } else { + merchantOrder = merchantOrderService.getOneByVerifyCode(verifyCode); + } if (ObjectUtil.isNull(merchantOrder)) { throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请输入正确的核销码"); } Order order = getByOrderNo(merchantOrder.getOrderNo()); - if (!systemAdmin.getMerId().equals(order.getMerId())) { + if (systemAdmin.getMerId() > 0 && !systemAdmin.getMerId().equals(order.getMerId())) { throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请输入正确的核销码"); } MerchantOrderPageResponse merchantOrderPageResponse = new MerchantOrderPageResponse(); @@ -1967,7 +1982,7 @@ public class OrderServiceImpl extends ServiceImpl implements Or @Override public Boolean updateInvoice(OrderInvoiceUpdateRequest request, SystemAdmin systemAdmin) { OrderInvoice invoice = orderInvoiceService.getById(request.getId()); - if (ObjectUtil.isNull(invoice) || !invoice.getMerId().equals(systemAdmin.getMerId())) { + if (ObjectUtil.isNull(invoice) || (systemAdmin.getMerId() > 0 && !invoice.getMerId().equals(systemAdmin.getMerId()))) { throw new CrmebException(OrderResultCode.ORDER_INVOICE_NOT_EXIST); } validateUpdateInvoice(invoice.getDeliveryType(), request); diff --git a/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/RefundOrderServiceImpl.java b/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/RefundOrderServiceImpl.java index 9a1f360..e494229 100644 --- a/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/RefundOrderServiceImpl.java +++ b/mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/RefundOrderServiceImpl.java @@ -151,7 +151,10 @@ public class RefundOrderServiceImpl extends ServiceImpl 0) { + map.put("merId", systemAdmin.getMerId()); + } if (StrUtil.isNotBlank(request.getRefundOrderNo())) { map.put("refundOrderNo", request.getRefundOrderNo()); } @@ -195,7 +198,7 @@ public class RefundOrderServiceImpl extends ServiceImpl 0 && !refundOrder.getMerId().equals(systemAdmin.getMerId())) { throw new CrmebException(OrderResultCode.REFUND_ORDER_NOT_EXIST); } refundOrder.setMerRemark(request.getRemark()); @@ -335,7 +338,7 @@ public class RefundOrderServiceImpl extends ServiceImpl 0 && !systemAdmin.getMerId().equals(refundOrder.getMerId())) { throw new CrmebException(OrderResultCode.REFUND_ORDER_NOT_EXIST); } RefundOrderInfo refundOrderInfo = refundOrderInfoService.getByRefundOrderNo(refundOrderNo); @@ -759,7 +762,7 @@ public class RefundOrderServiceImpl extends ServiceImpl 0 && !refundOrder.getMerId().equals(systemAdmin.getMerId())) { throw new CrmebException(OrderResultCode.REFUND_ORDER_NOT_EXIST); } Order order = orderService.getByOrderNo(refundOrder.getOrderNo()); @@ -837,7 +840,7 @@ public class RefundOrderServiceImpl extends ServiceImpl 0 && !refundOrder.getMerId().equals(systemAdmin.getMerId())) { throw new CrmebException(OrderResultCode.REFUND_ORDER_NOT_EXIST); } @@ -877,7 +880,7 @@ public class RefundOrderServiceImpl extends ServiceImpl 0 && !refundOrder.getMerId().equals(systemAdmin.getMerId())) { throw new CrmebException(OrderResultCode.REFUND_ORDER_NOT_EXIST); } if (!refundOrder.getRefundStatus().equals(OrderConstants.MERCHANT_REFUND_ORDER_STATUS_AWAIT_RECEIVING)) { diff --git a/mer_java/crmeb-service/src/main/resources/mapper/order/OrderMapper.xml b/mer_java/crmeb-service/src/main/resources/mapper/order/OrderMapper.xml index 6cd6e70..516ff14 100644 --- a/mer_java/crmeb-service/src/main/resources/mapper/order/OrderMapper.xml +++ b/mer_java/crmeb-service/src/main/resources/mapper/order/OrderMapper.xml @@ -132,7 +132,10 @@ from eb_order o left join eb_merchant_order as mo on o.order_no = mo.order_no left join eb_user as u on o.uid = u.id - where o.is_del = 0 and o.is_merchant_del = 0 and o.level = 1 and o.mer_id = #{merId} + where o.is_del = 0 and o.is_merchant_del = 0 and o.level = 1 + + and o.mer_id = #{merId} + and o.second_type in (0,2,5,6,7,8) diff --git a/mer_java/crmeb-service/src/main/resources/mapper/order/RefundOrderMapper.xml b/mer_java/crmeb-service/src/main/resources/mapper/order/RefundOrderMapper.xml index 8ddfe4d..d8e8626 100644 --- a/mer_java/crmeb-service/src/main/resources/mapper/order/RefundOrderMapper.xml +++ b/mer_java/crmeb-service/src/main/resources/mapper/order/RefundOrderMapper.xml @@ -103,7 +103,10 @@ u.nickname as userNickName from eb_refund_order ro left join eb_user u on ro.uid = u.id - where ro.mer_id = #{merId} + where 1=1 + + and ro.mer_id = #{merId} + and ro.order_no like CONCAT('%',#{orderNo},'%')