fix: 修复平台端商户订单与打印页测试问题
修复平台管理员在商户订单页查看详情等操作时出现“订单不存在”的问题,并完善商户订单查询筛选逻辑。同步修复商户订单打印页电话展示与积分信息展示,满足测试项要求。 Made-with: Cursor
This commit is contained in:
@@ -288,11 +288,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
map.put("endTime", dateLimit.getEndTime());
|
||||
}
|
||||
}
|
||||
// 平台管理员(mer_id=0)可按商户筛选或查看全部,商户管理员只查看自己的订单
|
||||
if (systemAdmin.getMerId() > 0) {
|
||||
map.put("merId", systemAdmin.getMerId());
|
||||
} else if (ObjectUtil.isNotNull(request.getMerId()) && request.getMerId() > 0) {
|
||||
map.put("merId", request.getMerId());
|
||||
Integer effectiveMerId = resolveMerchantFilterMerId(systemAdmin.getMerId(), request.getMerId());
|
||||
if (ObjectUtil.isNotNull(effectiveMerId)) {
|
||||
map.put("merId", effectiveMerId);
|
||||
}
|
||||
if (StrUtil.isNotBlank(request.getOrderNo())) {
|
||||
map.put("orderNo", URLUtil.decode(request.getOrderNo()));
|
||||
@@ -858,7 +856,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
*/
|
||||
@Override
|
||||
public Boolean merchantDeleteByOrderNo(String orderNo, SystemAdmin systemAdmin) {
|
||||
Order order = getByOrderNoAndMerId(orderNo, systemAdmin.getMerId());
|
||||
Order order = getByOrderNoForAdminScope(orderNo, systemAdmin);
|
||||
if (!order.getIsUserDel()) {
|
||||
throw new CrmebException(OrderResultCode.ORDER_USER_NOT_DELETE);
|
||||
}
|
||||
@@ -875,7 +873,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
*/
|
||||
@Override
|
||||
public Boolean merchantMark(OrderRemarkRequest request, SystemAdmin systemAdmin) {
|
||||
Order order = getByOrderNoAndMerId(request.getOrderNo(), systemAdmin.getMerId());
|
||||
Order order = getByOrderNoForAdminScope(request.getOrderNo(), systemAdmin);
|
||||
MerchantOrder merchantOrder = merchantOrderService.getOneByOrderNo(order.getOrderNo());
|
||||
merchantOrder.setMerchantRemark(request.getRemark());
|
||||
merchantOrder.setUpdateTime(DateUtil.date());
|
||||
@@ -1584,7 +1582,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
*/
|
||||
@Override
|
||||
public List<OrderInvoiceResponse> getInvoiceListByMerchant(String orderNo, SystemAdmin systemAdmin) {
|
||||
getByOrderNoAndMerId(orderNo, systemAdmin.getMerId());
|
||||
getByOrderNoForAdminScope(orderNo, systemAdmin);
|
||||
return getInvoiceList(orderNo);
|
||||
}
|
||||
|
||||
@@ -1909,7 +1907,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
if (request.getReturnType().equals(2) && CollUtil.isEmpty(request.getDetailList())) {
|
||||
throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请选择要退款的商品");
|
||||
}
|
||||
Order order = getByOrderNoAndMerId(request.getOrderNo(), systemAdmin.getMerId());
|
||||
Order order = getByOrderNoForAdminScope(request.getOrderNo(), systemAdmin);
|
||||
if (order.getRefundStatus().equals(OrderConstants.ORDER_REFUND_STATUS_ALL)) {
|
||||
throw new CrmebException(OrderResultCode.ORDER_REFUND_ED);
|
||||
}
|
||||
@@ -2603,6 +2601,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
return order;
|
||||
}
|
||||
|
||||
/**
|
||||
* 商户订单操作范围校验
|
||||
* 平台管理员可操作任意商户订单,商户管理员仅可操作自己商户订单
|
||||
*/
|
||||
private Order getByOrderNoForAdminScope(String orderNo, SystemAdmin systemAdmin) {
|
||||
Order order = getByOrderNo(orderNo);
|
||||
if (order.getIsMerchantDel() || (systemAdmin.getMerId() > 0 && !order.getMerId().equals(systemAdmin.getMerId()))) {
|
||||
throw new CrmebException(OrderResultCode.ORDER_NOT_EXIST);
|
||||
}
|
||||
return order;
|
||||
}
|
||||
|
||||
/**
|
||||
* 拆单发货
|
||||
*
|
||||
@@ -2944,10 +2954,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
map.put("endTime", dateLimit.getEndTime());
|
||||
}
|
||||
}
|
||||
if (merId > 0) {
|
||||
map.put("merId", merId);
|
||||
} else if (ObjectUtil.isNotNull(request.getMerId()) && request.getMerId() > 0) {
|
||||
map.put("merId", request.getMerId());
|
||||
Integer effectiveMerId = resolveMerchantFilterMerId(merId, request.getMerId());
|
||||
if (ObjectUtil.isNotNull(effectiveMerId)) {
|
||||
map.put("merId", effectiveMerId);
|
||||
}
|
||||
if (StrUtil.isNotBlank(request.getOrderNo())) {
|
||||
map.put("orderNo", URLUtil.decode(request.getOrderNo()));
|
||||
@@ -2958,6 +2967,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
return dao.getMerchantAdminPageCount(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商户订单筛选归一化:
|
||||
* - 商户管理员始终锁定当前商户;
|
||||
* - 平台管理员仅在显式选择有效商户ID时按商户过滤;
|
||||
* - 非法或空商户ID不参与过滤。
|
||||
*/
|
||||
private Integer resolveMerchantFilterMerId(Integer loginMerId, Integer requestMerId) {
|
||||
if (ObjectUtil.isNotNull(loginMerId) && loginMerId > 0) {
|
||||
return loginMerId;
|
||||
}
|
||||
if (ObjectUtil.isNotNull(requestMerId) && requestMerId > 0) {
|
||||
return requestMerId;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取订单总数(平台端)
|
||||
*
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
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
|
||||
left join eb_merchant as m on o.mer_id = m.id
|
||||
where o.is_del = 0 and o.is_merchant_del = 0 and o.level = 1
|
||||
where o.is_del = 0 and o.is_merchant_del = 0 and o.mer_id > 0
|
||||
<if test="merId != null">
|
||||
and o.mer_id = #{merId}
|
||||
</if>
|
||||
@@ -317,7 +317,7 @@
|
||||
select count(*)
|
||||
from eb_order o
|
||||
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
|
||||
where o.is_del = 0 and o.is_merchant_del = 0 and o.mer_id > 0
|
||||
and o.second_type in (0,2,5,6,7,8)
|
||||
<if test="merId != null">
|
||||
and o.mer_id = #{merId}
|
||||
|
||||
Reference in New Issue
Block a user