fix: mask random order details for non-owner clerks

This commit is contained in:
irving
2025-12-28 19:31:56 -05:00
parent c29f76c2fc
commit f39b560a05
2 changed files with 166 additions and 25 deletions

View File

@@ -122,25 +122,27 @@ public class WxOrderInfoController {
if (vo == null) {
throw new CustomException("订单不存在");
}
// Privacy protection: Hide customer info for pending random orders that current clerk hasn't accepted
String currentClerkId = ThreadLocalRequestDetail.getClerkUserInfo().getId();
if (OrderConstant.PlaceType.RANDOM.getCode().equals(vo.getPlaceType()) && OrderConstant.OrderStatus.PENDING.getCode().equals(vo.getOrderStatus())) {
// Random order pending - customer info already hidden by service layer
vo.setWeiChatCode("");
} else if (StringUtils.isNotEmpty(vo.getAcceptBy()) && !vo.getAcceptBy().equals(currentClerkId)) {
// Order accepted by another clerk - hide WeChat and customer info
vo.setWeiChatCode("");
vo.setCustomNickname("匿名用户");
vo.setCustomAvatar("");
vo.setCustomId("");
}
if(vo.getOrderStatus().equals("4")){
vo.setWeiChatCode("");
if (OrderConstant.PlaceType.RANDOM.getCode().equals(vo.getPlaceType())) {
boolean acceptedByCurrentClerk = StringUtils.isNotEmpty(vo.getAcceptBy())
&& vo.getAcceptBy().equals(currentClerkId);
if (!acceptedByCurrentClerk) {
maskRandomOrderForNonOwner(vo, currentClerkId);
}
}
return R.ok(vo);
}
private void maskRandomOrderForNonOwner(PlayOrderDetailsReturnVo vo, String currentClerkId) {
vo.setWeiChatCode("");
vo.setCustomNickname("匿名用户");
vo.setCustomAvatar("");
vo.setCustomId("");
if (StringUtils.isNotEmpty(vo.getAcceptBy()) && !vo.getAcceptBy().equals(currentClerkId)) {
vo.setOrderStatus("");
}
}
/**
* 店员查询打赏动态
*